# 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 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)を参照してください。