summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md72
1 files changed, 72 insertions, 0 deletions
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 <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)を参照してください。