要するに: codebase-memory-mcp はリポジトリを永続的なナレッジグラフとしてインデックス化するため、コーディングエージェントはファイルをgrepしたり読み込んだりするのではなく、グラフから構造的な質問に答えます。このプロジェクトでは、5つの構造的なクエリについて、グラフ経由で約3,400トークン、ファイルごとの探索で約412,000トークンを消費した結果、99.2%の削減を達成しました。C言語で書かれており、ランタイムやAPIキーなしの単一のネイティブバイナリとして提供され、160以上の言語をカバーし、完全にローカルマシン上で動作します。2026年9月1日現在で41,536スターを獲得し、MITライセンスです。2026年のエージェントツールブームで何か一つインストールするなら、これにしてください。
これは、2026年にインストールする価値のある5つのオープンソースAIエージェントツールのまとめから、一つのツールを深く掘り下げたものです。
関数がどこで呼び出されているかをエージェントに尋ねてみてください。するとどうなるか見てみましょう。grepを実行し、3つのファイルを読み込みます。別のパターンで再度grepを実行し、さらに4つのファイルを読み込みます。最終的には、セッションが終了するとすぐに忘れてしまうソースコードでコンテキストを満たすために数万ものトークンを消費しながらも、正しく回答します。
そして、続けて質問すると、また同じことを繰り返します。
そのループこそが、長いセッションでほとんどの使用制限が消費される原因であり、午後の間に回答の質が低下する理由でもあります。ファイルの内容で埋め尽くされたコンテキストウィンドウでは、推論のためのスペースが少なくなります。codebase-memory-mcpは、同じ動きでこの両方の問題に対処します。
機能
これは、リポジトリを関数、クラス、呼び出しチェーン、HTTPルート、サービス間リンクの永続的なナレッジグラフに解析し、そのグラフから構造的な質問に答えます。

解析は、160以上の言語にわたるtree-sitterのAST解析を通じて行われ、ハイブリッドLSPレイヤーが、READMEバッジで10と数えられている主要グループ(Python、JSXおよびTSXを含むTypeScriptとJavaScriptファミリー、PHP、C#、Go、C、C++、Java、Kotlin、Rust、Perl)に対して意味論的な型解決を追加します。この区別は重要です。AST解析は、saveという名前のメソッドが呼び出されていることを伝えますが、型解決はそれがどのクラスに属するかを伝えます。
その結果は、検索、呼び出しチェーン追跡、アーキテクチャ概要、影響分析、インデックスカバレッジチェック、グラフに対するCypherクエリ、デッドコード検出、サービス間HTTPリンク、ADR管理をカバーする15のMCPツールとして公開されています。Model Context Protocolに対応するクライアントであればどれでも使用でき、プロジェクトではClaude Code、Codex、Cursor、Windsurf、OpenCode、Gemini CLI、Aider、Kilocodeを含む45のエージェントサーフェスがサポートされていると記載されています。
数値
独立した2つのセットがあり、どちらも注意深く読む価値があります。
プロジェクト自身の測定によると、5つの構造的クエリは、グラフ経由で約3,400トークンを消費したのに対し、ファイルごとのgrep探索では約412,000トークンを消費しました。これは99.2%の削減、つまり同じ回答に対して約120分の1のトークン消費量です。
学術版はプレプリントCodebase-Memory: Tree-Sitter-Based Knowledge Graphs for LLM Code Exploration via MCPにあり、31の実世界のレポジトリで評価されています。ファイルごとの探索と比較して、83%の回答品質、10分の1のトークン消費量、2.1分の1のツール呼び出し数を報告しています。
120倍と10倍の差は正直な部分です。120倍の数値は5つの構造的クエリに関するもので、グラフの得意な分野であり、グラフはまさに構造的な質問のために存在します。10倍の数値は31のリポジトリにわたるより広範な組み合わせであり、日常的な使用で目にするものに近いでしょう。どちらも大きな削減です。10倍を計画の基準とし、それよりも良い結果はすべてプラスアルファと見なしてください。
もう一つの側面は速度です。2800万行、75,000ファイルにわたるLinuxカーネルのインデックス作成には3分かかります。平均的なリポジトリはミリ秒単位でインデックスされます。構造的クエリは1ミリ秒未満で結果を返します。パイプラインはRAMファーストで、LZ4圧縮、インメモリSQLite、および融合されたAho-Corasickパターンマッチングを使用しており、インデックス作成後にメモリは解放されます。
TypeScriptやPythonではなくC言語で書かれていることが、これらの数値が存在する理由であり、ランタイムをインストールする必要がない理由でもあります。
インストール
macOSおよびLinux:
curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash
Windows(プロジェクトが推奨する手順。一行で済むものではありません):
Invoke-WebRequest -Uri https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.ps1 -OutFile install.ps1
notepad install.ps1 # read it first
Unblock-File .\install.ps1
.\install.ps1
オプションには、エージェント設定なしでバイナリ単体をインストールするための--skip-configと、カスタムロケーションを指定するための--dir=<path>があります。インストーラーは、インストールされているコーディングエージェントを自動検出して、文書化されたMCPエントリ、指示、スキル、クライアントがサポートするライフサイクル・フックを書き込みます。macOSでは、検疫属性を削除し、バイナリにアドホック署名を行うため、手動でのxattrやcodesign作業は不要です。
その後、エージェントを再起動し、プロジェクトのインデックスを作成するように指示します。
初日に設定する価値のある2つの設定フラグ:
# index new projects automatically on first connection
codebase-memory-mcp config set auto_index true
codebase-memory-mcp config set auto_index_limit 50000
# graph visualization, built into the binary
codebase-memory-mcp --ui=true --port=9749
localhost:9749のUIは、ナレッジグラフを3Dでレンダリングします。これは、これまで知らなかった構造を発見するのに非常に役立ち、インデックスが期待どおりの内容をカバーしているかを確認する良い健全性チェックにもなります。
多くのリポジトリで作業する場合、auto_watch falseを設定すると、セッションがそのプロジェクトをバックグラウンドウォッチャーに登録するのを防ぎ、watcher_enabled falseを設定すると、ポーリングスレッドが完全にオフになります。後者の設定はデーモン起動時に一度読み込まれるため、変更後はデーモンを停止してください。
実行前に確認すべき2つのこと
どちらもプロジェクトによって文書化されており、これは良い兆候です。両方とも30秒間注意を払う価値があります。
Microsoft DefenderがリリースバイナリをTrojan:Script/Wacatac.B!mlと誤検出する場合があります。プロジェクトではこれを既知の誤検出として文書化しており、通常62エンジンのうち約61エンジンがクリーンな結果を返すこと、そして同じ検出ファミリーがGitHub CLI、llama.cpp、Godot、およびMicrosoft独自のGoツールチェインにも影響を与えていることを指摘しています。すべてのリリースは公開前にVirusTotalでスキャンされ、リリースノートにはその結果へのリンクが記載されています。これはほとんどのプロジェクトよりも透明性の高い姿勢であり、根底にある問題は、署名のない小さなネイティブバイナリに特有のよく知られたヒューリスティックの問題です。
これは、あなたのコードベースを読み取り、エージェントの設定ファイルに書き込みます。それがこのツールの役割であり、プロジェクトはそれを隠すことなく明確に述べています。緩和策は実際に存在します。完全なソースはMITライセンスの下で利用可能であり、リリースはOpenSSFスコアカードとSLSAレベル3のプロベナンスを保持し、処理は完全にローカルで行われます。プロジェクトはまた、それ自体でネットワークリクエストを行わず、バックグラウンドでアップデートをチェックせず、電話もしないと述べています。アップデートは、実行中のプロセス内からではなく、バイナリの隣に配置されたインストールスクリプトから実行されます。これはREADMEで詳しく説明されている意図的な設計選択です。
どちらに対する適切な対応も同じです。インストールスクリプトをbashにパイプする前に読み、ローカルのみという主張が気になる場合はご自身で確認してください。多くのスターが付いていることは人気を意味しますが、監査を意味するものではありません。
これを最初にインストールすべき理由
現在のエージェントブームにおける他のすべてのツールは、あなたのワークフローを変更します。ペルソナはプロンプトの仕方を変え、並列ワークツリーは作業の整理方法を変え、ウェブアクセスはあなたが求めるものを変えます。
このツールは、あなたの作業方法を何も変えることなく、すべてのセッションをより安価でより良いものにします。新しい習慣を学ぶ必要はありません。これをインストールし、プロジェクトをインデックス化するだけで、エージェントはgrepループでコンテキストを消費するのをやめます。長時間のコードリファクタリングにおいて、午後2時に限界に達するか、一日を終えるかという違いは些細なことではありません。
品質効果は見過ごされがちなもう半分です。ファイルを読み込むために40万トークンを費やすエージェントは、実際に問題について考えるためのスペースがそれだけ少なくなり、セッションの早い段階で読み込んだ内容の記憶が低下します。グラフから回答することで、コンテキストは自由なまま保たれます。同じ力学は、ツールがそのコンテキストに返すものにも当てはまります。これはエージェントツールの応答コンテキストウィンドウの主題であり、エージェントワークフローで肥大化したAPI応答をコスト高にするのと同じ失敗です。
実際に使用するツール
15ものMCPツールは学ぶべきことがたくさんあるように聞こえます。実際には、エージェントが選択するため、それらを学ぶ必要はありません。知っておくべきことは、どの質問が安価な回答を得られるようになったかであり、そうすればそれらの質問をし始めるでしょう。
- 影響分析は最も価値が高く、最も使用頻度の低いものです。関数シグネチャを変更する前に、何が壊れるかを尋ねてください。グラフは、リポジトリ全体にわたるすべての呼び出し元を1ミリ秒未満で追跡します。grepバージョンでは動的ディスパッチを見落とし、間接的なものには対応できません。これにより、「これは安全だと思う」がリストに変わります。
- 呼び出しチェーン追跡は、実行が実際にコードの一部にどのように到達するかを答えます。不慣れなリポジトリで役立ち、エントリポイントを見つけるために5つのファイルを遡って読むよりもはるかに優れています。
- アーキテクチャ概要は、エージェントがツリー全体を読み込むことなく構造マップを提供します。これにより、未知のコードベースへのオンボーディングが異なり、読み取り専用の探索ペルソナと相性が良いです。
- デッドコード検出は、何も呼び出されないものを見つけます。クリーンアップのスプリントの前に実行し、議論するのを避けましょう。
- サービス間HTTPリンクは、あるサービス内の呼び出しを別のサービスのハンドラにトレースします。マイクロサービスコードベースでは、これは1つのリポジトリを理解するエージェントと、システム全体を理解するエージェントとの違いです。また、まさに以下に示される契約のギャップが現れる場所でもあります。
- Cypherクエリはエスケープハッチです。他のツールではカバーされない特定の何かを必要とする場合、グラフを直接クエリできます。
実用的な変化は、プロンプトの仕方です。以前は50,000トークンと2分かかっていたため避けていた質問が、今ではほぼ無料でできるようになりました。ですから、どんどん質問しましょう。リファクタリングの前には「これは何を呼び出しているのか?」、デバッグの前には「このエンドポイントのリクエストパスはどのようになっているのか?」などです。このツールは好奇心の経済学を変え、これは個々の機能よりも重要です。
グラフが知っていること、そして知らないこと
ここに境界線があります。ツールを過信しすぎる前に理解しておくべき明確な境界線です。
グラフはあなたのコードから構築されます。それはあなたのコードが何であるかを知っています。15のツールの中には、あるサービス内の呼び出しを別のサービスのハンドラにトレースするサービス間HTTPリンクがあり、これはエージェントにとって本当に役立つ情報です。
グラフが教えてくれないのは、契約が何を言っているかです。/v1/invoices/{id}というルートが存在し、どの関数がそれを提供するかは知っています。しかし、べき等性キーが再利用されたときに異なるエラーエンベロープで409を返すこと、statusフィールドが厳密に5つの有効な値を持つこと、カーソルがオフセットではなく不透明であること、またはあるフィールドが非推奨で来四半期には消えることなどは知りません。それらのどれもハンドラのソースから導き出すことはできません。なぜなら、そのほとんどは実装ではなく合意事項だからです。
そのため、完璧な構造的記憶を備えたエージェントでも、まだ契約を推測します。推測された形状に対してクライアントを書き、自身が作成したモックに対してテストを行い、ステージングまではすべてグリーンです。
これが、Apidogとこのようなツールが重なるのではなく、うまく連携する理由です。
- グラフは「どこで」に答えます。どのハンドラ、どの呼び出しチェーン、このシグネチャが変更されたら何が壊れるか。
- 仕様は「何を」に答えます。エージェントによって再構築されるのではなく、実際のスキーマ、実際のステータスコード、実際のエラーエンベロープを読み取ります。その根拠はOpenAPI仕様をエージェントツールとして使用することにあります。
- モックは仕様から生成されます。エージェントが偽装することを考えもしないようなエラーブランチも含まれます。
- 実装と合意が乖離している場合、CIで契約テストが失敗します。これはAPIの変更がAIエージェントを破壊するときに何が起こるかで説明されている失敗モードです。
これには心地よい対称性があります。codebase-memory-mcpは、構造的な質問に答えるためにソースを読むことが高価で信頼できないために存在します。契約を推測するためにソースを読むことについても同じことが言え、答えは同じです。一度、質問のために構築された形式でインデックスを作成することです。誰も書き留めていない形状に対してエージェントがAPIクライアントを作成している場合は、Apidogをダウンロードしてください。関連: エージェント向けAPIツールスキーマの設計およびAIエージェント時代にAPIツールはまだ必要か。
コードの記憶は作業の記憶ではない
2つ目の境界線は組織的なものです。
インデックスは、1つのマシンの1つのアカウント下のキャッシュディレクトリに存在します。それは、調整デーモンを介してローカルのClaude Code、Codex、OpenCodeセッション間で共有されます。これは素晴らしいエンジニアリングですが、そのマシンの境界を越えることはありません。
さらに重要なのは、グラフはコードベースの記憶であり、作業の記憶ではないということです。それは、リトライヘルパーが決済クライアントを呼び出すことを教えてくれます。しかし、7月にバックオフが変更された理由、誰がそれを決定したのか、代替案は何だったのか、あるいは誰かがそれをレビューしたのかを教えてくれることはありません。その履歴は、すでに消えたターミナルセッション内に存在しました。
チームはこれを奇妙なギャップとして感じます。エージェントはチーム内のどの人間よりもコードの記憶が良いにもかかわらず、そのコードを生成した決定については全く記憶がないのです。
Sharklyは、プロンプトではなくタスクを永続的な記録とすることで、もう半分をカバーします。
- 作業はタスクとして存在し、エージェントの出力は返信するコメントとして残ります。進捗とツール呼び出しはタスクにストリームされます。推論はセッション後も残ります。
- エージェントは保存された構成です。指示、ランタイム、スキル、リポジトリ、環境。エージェントがインデックス、仕様、適切な権限を持つ設定は、マシンごとに再構築されるのではなく再利用されます。
- 実行は持参方式です。ラップトップ、サーバー、またはコンテナであるコンピュータを接続すると、Sharklyはそれに既にインストールされているランタイムを使用します。これは、インデックスがマシンごとであるため、ここでの関連性が高いです。インデックス化されたリポジトリを保持するコンピュータを知っているかどうかが、温かいグラフと3分間のコールドスタートの違いになります。
- リポジトリ作業はタスクごとに個別のワークツリーで実行されます。そのため、同じリポジトリに対する並列タスクが衝突することはありません。
- バックログ内のタスクは実行を開始しません。そのため、何も実行される前に作業が準備されます。
- チームが既に理解している構造: スペース、プロジェクト、スプリント、タスク(Jira同期付き)。

コードの記憶と作業の記憶が組み合わさります。一方のツールはエージェントにリポジトリの記憶力を与え、もう一方のツールはチームにエージェントがそこで何をしたかの記憶力を与えます。
よくある質問
- Cursor、Codex、OpenCodeでも動作しますか、それともClaude Code専用ですか? これはMCPサーバーなので、任意のMCPクライアントで動作します。プロジェクトでは45のサポートされるエージェントサーフェスがリストされており、インストーラーがあなたの環境を自動検出します。API作業用のエージェントクライアントを検討している場合は、CursorとCopilotにおけるAPIクライアントの調査をご覧ください。
- 私のコードがマシンから離れることはありますか? いいえ。処理は完全にローカルで行われ、プロジェクトはそれ自体でネットワークリクエストを行わず、バックグラウンドでアップデートをチェックしないと述べています。信じるのではなく検証したい場合は、ソースはMITライセンスで公開されています。
- 私のリポジトリにとって99%のトークン削減は現実的ですか? 99.2%という数字は、グラフが最も得意とする5つの構造的クエリに関するものです。31のリポジトリにわたる査読済みの数値は、トークンが10分の1、ツール呼び出しが2.1分の1です。10倍を計画の目安としてください。構造的な質問が多い作業では、それを上回るでしょう。
- どのくらい大きなリポジトリを扱えますか? 明記されている最大ケースは、2800万行、75,000ファイルのLinuxカーネルを3分で処理することです。デフォルトの自動インデックス制限は50,000ファイルに設定可能です。通常のアプリケーションリポジトリはミリ秒単位でインデックスされます。
- Defenderがこれを警告するのはなぜですか? これは、署名のない小さなネイティブバイナリに対する既知の機械学習による誤検出です。プロジェクトはこれを文書化しており、約62エンジンのうち61エンジンがクリーンな結果を返すこと、およびリリースごとのVirusTotalの結果へのリンクを記載しています。同じ検出ファミリーはGitHub CLIやMicrosoft独自のGoツールチェインにも影響を与えています。
- これはコードを読むことの代わりになりますか? 構造的な質問に対しては、はい、そしてそれはエージェントが尋ねる質問の大部分です。振る舞い、エッジケース、意図については、いいえ。そしてAPIが何を返すかについては、どちらでもなく仕様が必要です。これはAIエージェント時代にAPIツールはまだ必要かで議論されている内容です。
まとめ
これは2026年のエージェントブームにおいて最も目立たないツールでありながら、最高の見返りをもたらすものです。ワークフローの変更なし、新しい習慣なし、単一のネイティブバイナリ、そしてエージェントがgrepで探す必要のない質問に答えるために費やすトークンの桁違いの削減が測定されています。また、複数のエージェントが同時に実行される場合に最も効果を発揮し、それはOrcaの場合に当てはまります。これをインストールし、プロジェクトをインデックス化し、auto_indexを設定し、一度グラフビューアを開いて何が構築されたかを確認してください。
次に、2つの境界を明確に理解してください。グラフはあなたのコードがどこにあるかを知っていますが、あなたのAPIが何を約束するかは知りません。そのギャップをApidogが仕様、モック、テストスイートで埋めます。そして、それはリポジトリを記憶しますが、作業は記憶しません。このギャップをSharklyが、プロンプトの代わりにタスクを記録とすることで埋めます。
コードの完璧な記憶は強力な基盤です。しかし、何が真実であるか、何が決定されたかを知ることとは異なります。
