From 8d38b06f11c713e547d70468340242f23322152c Mon Sep 17 00:00:00 2001 From: tanaka takashi Date: Mon, 29 Jun 2026 01:28:01 +0900 Subject: first commit --- README.md | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..ab9b94c --- /dev/null +++ b/README.md @@ -0,0 +1,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 +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)を参照してください。 -- cgit v1.2.3