codeagent-memory について
codeagent-memory(cam)は、コーディングエージェント向けのローカルなコードグラフと会話メモリのシステムです。Rust 製の単一バイナリでシンボル単位のコード参照と検索可能なプロジェクト知識を扱い、メインエージェントは MCP、サブエージェントは CLI を使います。
主な機能
- 01Tree-sitter によるコードグラフとシンボル参照
- 02増分インデックス作成とファイル監視
- 03ベクトル検索と BM25 によるハイブリッド検索
- 04分岐するメモリ階層と改訂履歴の関連付け
- 05ローカル SQLite ストレージと埋め込み
活用シーン
- 01関数を探し、呼び出し元を追跡
- 02セッションをまたいでプロジェクトの決定事項を想起
- 03CLI でサブエージェントにコード参照機能を提供
MCP 対応
`cam mcp` でメインエージェント向けの stdio MCP サーバーを起動し、コードグラフとメモリ操作を提供します。サブエージェントは対応する CLI を利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/hanochzhu/codeagent-memory:0.1.5ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/hanochzhu/codeagent-memory:0.1.5stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
cam
English · 中文 · 日本語 · 한국어 · العربية · 🌐 Web サイト
コーディングエージェント向けに構築された、ローカルのマルチターン会話メモリーシステム
コードグラフ+メモリー · 必要な箇所だけを読み取り · 100%ローカル · MCP+CLI
Rust で記述されたカーネル
目次
ガイド:インタラクティブショーケース(Web サイト) · メインエージェントとサブエージェント · IDE 別の MCP 設定 · 中文说明
cam を選ぶ理由
AI コーディングエージェントがリポジトリを調べる際、通常はファイルを 1 つずつ grep、glob、全文の Read を実行するという遠回りな方法で構造を再発見し、次のセッションではそれをすべて忘れてしまいます。
cam は、単一のバイナリで 2 つのローカル検索基盤をエージェントに提供します。
| 基盤 | 保存する内容 | エージェントによる使用方法 |
|---|---|---|
| コードグラフ | Tree-sitter のシンボル(関数、型、メソッド)を仮想ファイルシステムとして保存し、1 ホップ先の呼び出し元/呼び出し先も保持 | ls、find、read src/file.rs/symbol、ref symbol --dir in|out を使い、ファイル全体をダンプする代わりに必要なシンボルだけを読み取ります |
| メモリーツリー | プロジェクトの事実、アーキテクチャ上の決定、デバッグ記録、ユーザーの習慣 | recall(Vector と BM25 を RRF で融合)と add(分岐に対応した --parent と改訂用の --supersedes を指定) |
1 つのバイナリに 2 つのインターフェース: メインエージェントは MCP(
cam mcp)経由でcamを呼び出します。サブエージェント(MCP ツールを引き継ぐことがほとんどありません)は、まったく同じ CLI(cam --json …)を使います。どちらもディスク上の.cam/cam.dbを共有し、100%ローカルで、API コストはゼロです。
はじめに
オプション 1:一文でエージェントにインストール(推奨)
このプロンプトをコーディングエージェント(Cursor、Claude Code、Codex、Windsurf、GitHub Copilot、Cline など)に直接貼り付けると、インストール、インデックス作成、cam の接続までエージェントが行います。
Install cam from https://github.com/HanochZhu/codeagent_memory: require a working Rust toolchain (rustup), run `cargo install --git https://github.com/HanochZhu/codeagent_memory --locked`, ensure ~/.cargo/bin (or %USERPROFILE%\.cargo\bin on Windows) is on PATH, then verify with `cam --help`. In this repo run `cam index`. For the main agent, register MCP stdio: command `cam`, args `["mcp"]` (Cursor: .cursor/mcp.json; Claude Code: .mcp.json). Subagents call `cam --json` in the shell. Do not add extra docs.
各 IDE/エージェントでのこのプロンプトの使い方
| 環境 | 操作 |
|---|---|
| Cursor / Windsurf / Claude Code / Codex | エージェント/チャットに貼り付けます。エージェントがターミナルでインストールを実行し、.cam/cam.db を作成して、MCP 設定を書き込みます |
| VS Code(Copilot / Continue / Cline) | ターミナルへのアクセスを有効にした状態で、エージェント/チャットモードに貼り付けます |
| JetBrains(IntelliJ / RustRover / GoLand) | AI Assistant に貼り付けるか、内蔵ターミナルで cargo install を実行します |
注:cargo install により、cam は ~/.cargo/bin(Windows:%USERPROFILE%\.cargo\bin)に配置されます。cam が PATH からすぐに見つからない場合は、ターミナルまたは IDE を再起動してください。
オプション 2:手動でセットアップ
1. CLI をインストールする
Rust ツールチェーンが必要です。
cargo install --git https://github.com/HanochZhu/codeagent_memory --locked
cam --help
別の方法:ローカルのクローンからビルドする、または Docker で実行する
ローカルのクローンから:
git clone https://github.com/HanochZhu/codeagent_memory.git
cd codeagent_memory
cargo install --path . --locked
Docker(Rust ツールチェーンは不要):
docker pull ghcr.io/hanochzhu/codeagent-memory:0.1.5
docker run -i --rm -v "$PWD:/work" -w /work ghcr.io/hanochzhu/codeagent-memory:0.1.5
または、ローカルでビルドします:docker build -t cam https://github.com/HanochZhu/codeagent_memory.git
2. プロジェクトのインデックスを作成してクエリする
cd your-project
cam index # parse repo into .cam/cam.db
# Query the code graph
cam ls src/ # list files or symbols in a file
cam read src/main.rs/main # read a single symbol body
cam ref main --dir in # 1-hop callers (in) or callees (out)
# Query & write to the memory tree
cam recall "how does hybrid recall fuse BM25 and vectors"
cam add --summary "..." < notes.md
cam は初回使用時に .cam/ を自動で初期化します。ファイルの変更時にグラフをライブで増分更新するには、バックグラウンドで cam watch を実行してください。
3. メインエージェント用に MCP を接続する
ホストの MCP 設定(例:.cursor/mcp.json または .mcp.json)に cam mcp を追加します。
{
"mcpServers": {
"cam": {
"command": "cam",
"args": ["mcp"]
}
}
}
ホストごとの設定ファイルパスについては docs/mcp.md を、メインエージェント/サブエージェントのプロンプトルールについては docs/agents.md を参照してください。
初回の recall または add の実行時に、デフォルトの埋め込みモデル(potion-multilingual-128M)が ~/.cam/models/ にダウンロードされます。オフラインの場合は、字句ハッシュ埋め込み器にフォールバックします。
主な機能
| 機能 | 詳細 |
|---|---|
| SQLite コードグラフ | Tree-sitter が関数、型、呼び出しエッジを解析し、.cam/cam.db に格納することで、シンボル単位のナビゲーションを即座に行えます |
| 仮想パス | src/main.rs はファイルのアウトラインを指定し、src/main.rs/main はシンボル本体を直接指定します |
| ライブ増分同期 | cam sync はファイルの内容をハッシュ化し、cam watch は保存時にグラフを更新します |
| ハイブリッド想起(RRF) | ローカルの高密度埋め込み(model2vec)と、識別子を考慮した BM25 を Reciprocal Rank Fusion($k=60$)で組み合わせます |
| リビジョンチェーンとツリー | --parent は分岐するトピック階層を作成し、--supersedes は直線的なリビジョンをリンクして、古いエントリーを自動的に折りたたみます |
| エビングハウス保持率 | 保持率 $R = e^{-t / S}$ はランキングに穏やかに重み付け($\le 10%$)し、履歴を削除せずに stale/needs_update のメモリをフラグ付けします |
| 二重インターフェース(MCP + CLI) | メインエージェントは cam_* MCP ツールを使用し、サブエージェントはシェルで cam --json … を実行します |
| 100% ローカル&プライベート | 外部 API キーは不要です。ローカルの SQLite とディスク上の埋め込みのみで動作します |
| 9 言語 | Rust、Python、TypeScript、JavaScript、Go、Java、C、C++、C# |
動作の仕組み
- 抽出 —
tree-sitterがワークスペースを走査し、シンボル定義と呼び出し関係を.cam/cam.dbに保存します。 - ピンポイントな読み取り — エージェントは仮想パス(
ls→find→read→ref)を使って移動します。ファイルを読み取るとシンボルの概要が返され、file/symbolを読み取ると、そのシンボルのソース部分のみが返されます。 - ハイブリッド検索 —
recallは英語のクエリを受け取り、ローカルで埋め込みを生成し、識別子を考慮した BM25(snake_case、kebab-case、camelCaseの分割と英語の語幹処理)を実行して、信頼度の低い候補を除外し、両方のリストを RRF($k=60$)で統合します。スコアは $0.9 + 0.1 \times R$ で調整されます。置き換えられた過去のリビジョンは、最新の置き換え先まで自動的に展開されます。 - 書き戻し — エージェントが簡単ではないタスクを解決したときは、事実を原子的な単位に分け、各
addに1つの事実だけを保存します(英語の要約。本文では非ラテン文字にも対応します)。関連する事実は--link/linksで結び付けてナレッジグラフを作成します(mem showで確認できます。現時点ではrecallはグラフのリンクをたどりません)。--parentはメモリーを構造上のトピックに関連付け、--supersedesは系譜を保持したまま古いメモリーを置き換えます。
アーキテクチャの詳細(中国語):DESIGN.md。
エージェントのワークフロー
すべてのコーディングタスクで、次の4段階のループに従います。
- まず検索する — grep を実行する前に、英語で
cam_recall/cam recallを検索します。検索結果がlatestでneeds_updateではない場合は、再利用します。 - インデックスを確認する — グラフツールが
not_indexedを返した場合は、プロジェクトに対して一度cam_index/cam indexを実行します。 - グラフをたどる — メモリーが見つからない場合は、
findまたはlsでシンボルを特定し、read <file>/<symbol>でシンボルの本文を読み、ref <symbol> --dir in|outで呼び出し元/呼び出し先を追跡します。 - 書き戻す — 新たに判明したアーキテクチャ上の事実や修正を、
cam_add/cam addで原子的な事実として保存します(1つのメモリーにつき1つの事実、英語の要約。本文では非ラテン文字にも対応します)。links/--linkで関連する事実を結び付けます。
| 役割 | インターフェース | 一般的な使い方 |
|---|---|---|
| メインエージェント(チャット/IDE セッション) | MCP(cam mcp) | cam_recall、cam_find、cam_ls、cam_read、cam_ref、cam_add、cam_mem_tree、cam_mem_show を直接呼び出します |
| サブエージェント(タスク/調査/CLI) | CLI(cam --json) | シェルで cam --json --project <dir> <cmd> を実行します(サブエージェントは通常、MCP ツールを引き継ぎません) |
エージェントのルールとコピーして使えるシステムプロンプトの全文:docs/agents.md。
CLI リファレンス
コードグラフのコマンド
| コマンド | 説明 |
|---|---|
cam index | tree-sitter でプロジェクトを解析し、.cam/cam.db に保存します(必要に応じて .cam/ を作成します) |
cam sync | コンテンツハッシュを使って、変更されたファイルのグラフを増分更新します |
cam watch [--debounce-ms N] | ソースファイルを監視して自動同期します(--json は同期ごとに1つの JSON レポートをストリーム出力します) |
cam ls [virt_path] | ディレクトリ、ファイル、またはファイル内のシンボルを一覧表示します |
cam read <virt_path> [--full] | ファイルのシンボル概要、特定のシンボル本文(path/symbol)、または --full ファイル全体を読み取ります |
cam find <query> [--kind K] [--file S] [--scope D] [--limit N] | シンボル名を大文字と小文字を区別せず部分一致検索します(完全一致を先に表示し、次に前方一致を表示します) |
cam ref <symbol> --dir in|out [--file S] [--kind K] [--scope D] | 1ホップ先の呼び出し元(in / --callers)または呼び出し先(out / --callees)を返します。名前が曖昧な場合は、順位付けされた candidates を返します |
メモリーコマンド
| コマンド | 説明 |
|---|---|
cam recall "<query>" [--limit N] [--no-expand] [--include-superseded] [--snippets] | ハイブリッド RRF 検索(英語のクエリ)。--no-expand は最新リビジョンへの展開をスキップします。--include-superseded は古いリビジョンを含めます。--snippets はランク 1 より下にある長い本文を切り詰めます |
cam add --summary "..." [--parent ID] [--supersedes ID] [--link ID]... [--body TEXT | --file PATH] | 1 件のアトミックな事実をメモリーとして保存します(英語の要約が必須です。本文は非ラテン文字に対応し、--body、--file、または stdin から指定できます)。--link は関連する事実をナレッジグラフで接続します。--parent はトピック階層に使用し、--supersedes は古いメモリーの置き換えに使用します |
cam mem tree | メモリー階層とリビジョンチェーンを表示します |
cam mem show <id> | 単一のメモリーエントリの全内容を確認します |
サーバーと設定のコマンド
| コマンド | 説明 |
|---|---|
cam mcp | メインエージェント用の stdio MCP サーバーを起動します(docs/mcp.md を参照) |
cam status | 解決済みのプロジェクトルート、データベースパス、ノード/エッジ/メモリーの数、アクティブな設定を表示します |
cam config get | 現在の ~/.cam/config.toml 設定を出力します |
cam config set stale_days <N> | メモリーを stale とマークする経過日数のしきい値を設定します |
cam config set embedding_model <model> | Hugging Face model2vec のリポジトリ、ローカルモデルディレクトリ、hash、または default を設定します |
グローバルフラグと規則:
--project <dir>(またはCAM_PROJECT環境変数)を指定すると、自動的な上位ディレクトリへの.cam/.gitルート検出が上書きされます。--jsonはコンパクトな JSON を出力します(整形された JSON を出力するには--prettyを指定します)。--json使用時のエラーはstdoutに{"error":{"code":…,"message":…}}を出力し、ゼロ以外の終了コードで終了します。- 曖昧なシンボル:
readまたはrefが複数の定義に一致する場合、camは候補となるノード ID(例:src/main.rs:function:main:12)とともにstatus: "ambiguous"を返します。候補のノード ID はそのままreadまたはrefに渡せます。 - 無視ルールと複数リポジトリのディレクトリ: 任意の階層にある
.gitignoreと.camignoreを尊重します。Git サブモジュールとリンクされたワークツリーはスキップし、ネストされた独立クローンはkind: "project"としてインデックス化します(--scopeに渡せます)。
メモリーのルール
- アトミックな事実とナレッジグラフのリンク: 1 つのエントリに情報を詰め込みすぎないよう、各メモリーにはアトミックな事実を 1 つだけ保存します。複数の事実に関連がある場合は、
--link/linksで接続し、ナレッジグラフを形成します(グラフ検索はまだ有効になっていません)。 - 英語のクエリと要約: 検索クエリとメモリーの要約は英語で記述する必要があります。メモリーの本文は非ラテン文字に対応しています。
- 保持と強化: エビングハウスの保持率 $R = e^{-t / S}$ によって、検索スコアは $\text{relevance} \times (0.9 + 0.1 \times R)$ に調整されます。$R < 0.3$ のエントリは
needs_updateとマークされ、stale_days(デフォルトは30)より古いエントリはstaleとマークされます。有効な検索ヒット(needs_update = false)があるたびに最終アクセス時刻が更新され、安定性 $S$ に1.7が乗算されます。 - 非破壊的な系譜: メモリーは削除されません。
--parentは分岐ツリーを形成し、--supersedesは直線的なリビジョンチェーンを形成します。latestとマークされるのは末尾のリビジョンのみで、古いリビジョンはデフォルトの検索結果から除外されます。
設定
グローバル設定は ~/.cam/config.toml に保存されます。
stale_days = 30
# embedding_model = "minishlab/potion-multilingual-128M" # default (cached under ~/.cam/models/)
# embedding_model = "minishlab/potion-base-8M" # lighter Hugging Face model2vec repo
# embedding_model = "/path/to/local/model2vec" # dir with tokenizer.json, config.json, model.safetensors
# embedding_model = "hash" # zero-download lexical hash embedder
CAM_EMBED_MODEL を使用すると、単一プロセスでモデルを上書きできます。または cam config set embedding_model default を実行してリセットします。埋め込みモデルを変更すると、次回の recall でスコアリングの前に既存のメモリーが自動的に再埋め込みされます。
ベンチマーク
cam は、同一のコーパスを使い、最も近いオープンソースシステムと比較して、コードグラフとメモリプレーンを個別に評価します。
| プレーン | ベースライン/類似システム | ベンチマークコーパス | 主な結果 |
|---|---|---|---|
| メモリ | agentmemory のハイブリッド検索+トークン化 grep | coding-agent-life-v1 | 1.000 R@5 / 0.240 P@5(ハイブリッド検索の上限と一致し、リビジョンチェーンでは 1.000 newest R@5) |
| 長期メモリ | BM25/密ベクトル検索 | LongMemEval-S | potion-multilingual-128M で 0.909 R@5 / 0.980 Hit@5 / 0.840 MRR |
| コードグラフ | codegraph v0.9.6 | LongMemCode(clap) | サポート対象の1ホップタスクで 0.769(比較対象は0.768)、P95 ≈ 5.2 ms、$0 |
| ワークフロー検索 | 字句検索/BM25 ファイル検索 | Agent Retrieval Bench V2 edit2ripple | 0.297 MRR(初回ヒット順位で最高、P95 7.3 ms) |
| マルチターンのトークン数 | コンテキスト全体のダンプ | DeepSeek マルチターン | メモリトラックで トークン数を57%削減、コードトラックで トークン数を98%削減 |
一般的なチャットメモリフレームワーク(Mem0、Zep、Letta)は、これらのコーディングエージェント用コーパスではなく会話ログを対象とするため、以下の表から除外しています。
システム比較
| cam | agentmemory | codegraph | |
|---|---|---|---|
| 保存する内容 | コードグラフ+メモリツリー | セッション/チャットのメモリ | コードグラフ |
| クエリの基本操作 | recall / ls / find / read / ref | smart-search / remember | explore / callers / callees |
| インターフェース | MCP+CLI | MCP+REST+フック | MCP+CLI |
| ランキング/統合 | ベクトル+BM25+RRF+保持 | BM25+埋め込み+再ランキング | FTS5+グラフ探索 |
| コスト | すべてローカル($0) | ローカルサーバー | ローカル |
1. メモリ — coding-agent-life-v1
15セッション、15クエリ、$k=5$(agentmemory の score.ts と同じスコアリング方式。P@5 の上限は 0.240 です)。
| システム | ヒット率 | R@5 | P@5 | 出典 |
|---|---|---|---|---|
grep(トークン化部分文字列検索) | 15 / 15 | 0.967 | 0.227 | 本リポジトリ、2026-09-23 |
cam min-max sum(レガシー) | 15 / 15 | 0.933 | 0.213 | 過去のデータ、ハッシュ埋め込み |
cam RRF | 15 / 15 | 1.000 | 0.240 | 本リポジトリ、ハッシュ埋め込み |
agentmemory ハイブリッド検索 | 15 / 15 | 1.000 | 0.240 | 公開済み v0.9.26 |
リビジョンチェーン(--lineage): 各ターンを --supersedes リビジョンとして再取り込みし、top-$k$ が各正解チェーンの最新ノードを返すか(newest R@k)、また置き換えられたノードが誤って latest を名乗っていないか(stale latest)を検証します。
| k | R@k | P@k | newest R@k | stale latest |
|---|---|---|---|---|
| 5 | 1.000 | 0.240 | 1.000 | 0 |
| 10 | 1.000 | 0.120 | 1.000 | 0 |
2. 長期メモリ — LongMemEval-S
クリーニング済みの LongMemEval-S からシード42で抽出した、回答を棄権しない質問100件です。検索では埋め込みと BM25 を $k=10$ の RRF で統合し、LLM リーダーは使用しません。
| 埋め込みモデル | R@1 | R@5 | R@10 | Hit@1 | Hit@5 | Hit@10 | MRR | 検索 P50 / P95 |
|---|---|---|---|---|---|---|---|---|
hash(オフラインテスト) | 0.382 | 0.803 | 0.922 | 0.580 | 0.910 | 0.970 | 0.718 | 24.1 / 35.5 ms |
potion-multilingual-128M | 0.474 | 0.909 | 0.952 | 0.740 | 0.980 | 0.990 | 0.840 | 1.12 / 1.34 s |
3. ワークフロー検索 — Agent Retrieval Bench V2(edit2ripple)
44 件の固定されたリポジトリスナップショットに対する、58 件の変更箇所指定クエリ(LLM 不使用。BCY は、標準の 8K トークンファイルパッキングプロトコルにおける予算内コンテキスト利得です)。
| システム | Recall@5 | Recall@10 | Recall@20 | MRR | BCY@8k |
|---|---|---|---|---|---|
cam graph | 0.300 | 0.335 | 0.378 | 0.297 | 0.300 |
| 語彙検索 | 0.412 | 0.536 | 0.588 | 0.243 | 0.447 |
| BM25 | 0.207 | 0.287 | 0.499 | 0.154 | 0.243 |
cam graph は最初にヒットする順位が最も高く(MRR 0.297、クエリ P95 7.3 ms)、一方で語彙検索は複数ファイルをより広くカバーするため、グラフと語彙検索の順位融合が有効です。
4. コードグラフ — LongMemCode(clap)
SCIP のゴールドデータに対する clap v4.6.1 の 536 シナリオ(LLM 不使用、P95 ≈ 5.2 ms、$/1k = 0)。
| 分類 | n | cam | codegraph 0.9.6 |
|---|---|---|---|
| 対応済み(1 ホップ) | 478 | 0.769 | 0.768 |
lookup / file_symbols | 293 / 55 | 0.808 / 0.915 | 0.808 / 0.915 |
callers / callees | 67 / 18 | 0.397 / 0.811 | 0.355 / 0.867 |
implementors | 40 | 0.119 | 0.094 |
| 生値 / 加重値(全 536 件) | 536 | 0.709 / 0.704 | 0.704 / 0.700 |
5. マルチターンでのトークン削減 — DeepSeek
完全なコンテキストのダンプと、ターンごとの cam 検索の比較(deepseek-flash、ハッシュ埋め込み、2026-10-13):
| トラック | n | 完全版の精度 | cam の精度 | 完全版のトークン数 | cam のトークン数 | トークン削減率 |
|---|---|---|---|---|---|---|
メモリ(coding-agent-life) | 15 | 1.00 | 0.87 | 22,796 | 9,904 | 57%(1 ターンあたり 1,471 → 616) |
| コード(このリポジトリをインデックス化) | 6 | 0.83 | 0.33 | 379,066 | 6,342 | 98%(1 ターンあたり 63,076 → 1,000) |
すべてのベンチマークを再現する
データセットのパスは eval/datasets.toml で設定します(coding-agent-life-v1 のデフォルトは ../agentmemory または CAM_EVAL_CODING_LIFE です)。
python3 eval/coding_life/run.py --adapter grep
python3 eval/coding_life/run.py # potion; errors if the model fails
python3 eval/coding_life/run.py --hash-embed # hash embedder
python3 eval/longmemeval/run.py --sample 100 --seed 42 --workers 8 # potion
python3 eval/longmemeval/run.py --sample 100 --seed 42 --workers 8 --hash-embed
python3 eval/locomo/run.py --workers 4 # potion, evidence recall
git clone --depth 1 https://github.com/eyuansu62/agent-retrieval-bench \
eval/agent_retrieval/vendor/agent-retrieval-bench
python3 -m pip install -e eval/agent_retrieval/vendor/agent-retrieval-bench
arb download-benchmark --version v2_edit2ripple --local-dir eval/agent_retrieval/data --force
python3 eval/agent_retrieval/run.py --workers 8
python3 eval/llm_multiturn/run.py --track both # potion; requires DEEPSEEK_API_KEY
python3 eval/longmemcode/run.py --corpus clap
python3 eval/charts/generate.py
対応エージェント
メインエージェントには cam mcp(stdio)を登録します。サブエージェントは追加設定なしで cam --json CLI を直接使用します。
| ホスト | MCP 設定 | サブエージェント/備考 |
|---|---|---|
| Cursor | .cursor/mcp.json、~/.cursor/mcp.json、または .cursor-plugin/plugin.json | Task/explore サブエージェントは CLI を使用 |
| Claude Code | .mcp.json、~/.claude.json、または claude mcp add cam -- cam mcp | ツールが制限されたサブエージェントは CLI を使用 |
| Codex | ~/.codex/config.toml → [mcp_servers.cam] | codex exec は CLI を使用 |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | Cascade は MCP を使用 |
| GitHub Copilot | .vscode/mcp.json または ~/.copilot/mcp-config.json | チャットは MCP を使用。CLI スクリプトは CLI を使用 |
| Continue / Cline | ~/.continue/config.yaml / ~/.cline/mcp.json | |
| JetBrains | AI Assistant → MCP(cam / mcp) | IDE の PATH が空の場合は、cam の絶対パスを使用 |
| Gemini CLI / Antigravity / OpenCode / Zed / Droid | docs/mcp.md を参照 |
コピーして使える設定例:docs/mcp.md · システムプロンプト:docs/agents.md。
対応言語
| 言語 | 拡張子 | インデックス対象のノードとエッジ |
|---|---|---|
| Rust | .rs | 関数、構造体、列挙型、トレイト、呼び出し |
| Python | .py | 関数、クラス、呼び出し |
| TypeScript | .ts、.tsx | 関数、メソッド、クラス、呼び出し |
| JavaScript | .js、.jsx | 関数、メソッド、クラス、呼び出し |
| Go | .go | 関数、メソッド、構造体、呼び出し |
| Java | .java | 関数、メソッド、クラス、インターフェース、呼び出し |
| C | .c | 関数、構造体、呼び出し |
| C++ | .cc、.cpp、.cxx、.h、.hpp | 関数、メソッド、クラス、構造体、呼び出し |
| C# | .cs | 関数、メソッド、クラス、インターフェース、呼び出し |
対応プラットフォーム
cam は、cargo install --git https://github.com/HanochZhu/codeagent_memory --locked を使って macOS、Linux、Windows 上でネイティブにコンパイルするか、Docker(ghcr.io/hanochzhu/codeagent-memory:0.1.5)を使ってどこでも実行できます。使い始めるをご覧ください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。