blob: ab9b94cf10e6ead3e41f694f443f70d1ea5ac624 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
# tiny-convmem-mcp
LLMとの会話履歴を扱うための、小さなC言語製MCPサーバです。現在は設計前の
基盤段階で、stdioによるMCP初期化と`health` toolだけを実装しています。
## 必要環境
- Windows x64
- Visual Studio Community 2026(Desktop development with C++)
- CMake 4.3以降
- Git
- vcpkg(PATHから`vcpkg`を実行できること)
vcpkgはコンパイラを導入するためではなく、今後SQLite等のライブラリを管理する
ためにmanifest modeで使用します。現時点の`vcpkg.json`に外部依存はありません。
## 初回構築
PowerShellで次を実行します。スクリプトは不足ツールを自動インストールしません。
```powershell
git submodule update --init --recursive
.\scripts\bootstrap.ps1 -Configuration Debug
```
Releaseも確認する場合は次を実行します。
```powershell
.\scripts\bootstrap.ps1 -Configuration Release
```
## 手動ビルドとテスト
presetを直接使う場合は、先にvcpkgルートを設定します。
```powershell
$config = vcpkg z-print-config | ConvertFrom-Json
$env:VCPKG_ROOT = $config.'vcpkg-root'
cmake --preset windows-vs2026
cmake --build --preset windows-vs2026-debug
ctest --preset windows-vs2026-debug
```
成果物は`build/windows-vs2026/`以下に生成されます。サーバはstdoutをMCP
プロトコル専用、stderrを診断メッセージ専用として使用します。
## mcpcの管理
mcpcは`third_party/mcpc`のGit submoduleとしてコミット
`4025fddfedcfa7573803a47236b147733fcb3c07`へ固定しています。更新時は新しい
コミットを明示的にcheckoutし、Debug/Releaseのsmoke testを両方実行してください。
```powershell
git -C third_party/mcpc fetch origin
git -C third_party/mcpc checkout <reviewed-commit>
git add third_party/mcpc
```
固定コミットの上流CMakeには、欠落fixtureの参照、Makefileに対するソース列挙漏れ、
MSVC互換マクロ名の不整合があります。そのため上流を変更せず、
`cmake/mcpc.cmake`でMakefileと同じ13ソースを静的ライブラリ化しています。
また、上流は同じ階層に`LICENSE`ファイルと`license/`ディレクトリを保持しており、
Windowsでは名前が衝突します。`bootstrap.ps1`はライセンス本文を含む`license/`を
維持し、checkoutできないトップレベル`LICENSE`だけをローカルsubmodule indexで
`skip-worktree`に設定します。上流の追跡ファイルやコミットは変更しません。
## 現在の境界
会話・メッセージのデータモデル、保持期限、検索方式、ストレージAPI、SQLite採用は
未決定です。責務の境界は[docs/architecture.md](docs/architecture.md)を参照してください。
|