AIディープダイブ

CodeGraphガイド:AIエージェントのためのローカルコードナレッジグラフ

CodeGraph turns a repository into a local symbol graph that Claude Code, Codex, Cursor, Antigravity, Kiro, Hermes, Gemini, and opencode can query through MCP. We read the repo, docs, npm package page, release notes, source files, issues, pull requests, Reddit threads, and X mentions to separate the durable idea from the current rough edges.

2026年6月更新
CodeGraphの編集用ヒーローイラスト。ソースファイルがローカルのSQLiteナレッジグラフに流れ込み、AIエージェントのターミナルからクエリされる様子を描写

CodeGraphを理解しておくべき理由は、AIコーディングにおける現実的な失敗モードを解決するためです。エージェントはgrep、glob、ファイル読み込みを繰り返すことで、同じコード構造を何度も再発見するのにターンを浪費してしまいます。

Get the latest on AI, LLMs & developer tools

New MCP servers, model updates, and guides like this one — delivered weekly.

編集後記

本記事の執筆時点では、エンドツーエンドのローカルインストールは完了していません。直接的な npx スモークテストでは、実行可能な状態を確認できませんでした。 codegraph binary in this environment. Setup examples below are sourced from the README, installer target code, and npm page; performance claims are sourced from CodeGraph's published benchmark methodology, not from our own benchmark run.

1. CodeGraphを一言で言うと

CodeGraphは、MITライセンスのローカルファーストなコードインテリジェンスツールです。リポジトリを解析してファイル、シンボル、呼び出し、インポート、ルート、参照を含むSQLiteナレッジグラフを作成し、MCPを通じてAIコーディングエージェントにそのグラフを提供します。

A コードナレッジグラフ とは、コードのエンティティと関係性を格納したデータベースのことです。 MCP(Model Context Protocol)は、多くのエージェントが外部ツールを呼び出すために使用するツールプロトコルです。

通常のタスクCodeGraphビュー
関数を検索インデックス化されたシンボルに対するFTS5検索
フローの理解呼び出しと動的ディスパッチエッジのトレース
リファクタリングの計画呼び出し元、呼び出し先、インポート、および影響範囲の確認
機能についてエージェントに質問するグラフ検索とソースコードのスニペットからタスクコンテキストを構築

2. 存在理由

The repo's README frames the problem around Claude Code exploration agents that repeatedly call grep, glob, Bash, and Read before answering architecture questions. That is expensive because file discovery is repeated per session and per task. CodeGraph moves discovery up front: parse once, store relationships locally, then let the agent query the graph.

The official docs site makes the same point in a smaller form: CodeGraph turns a codebase into a queryable local graph for AI coding agents, using tree-sitter parsing, MCP, and impact analysis. The npm package page repeats the README benchmark table and setup commands, which matters because the npm package is the main installation surface for many developers.

Status quo:
agent question
  -> grep/glob/read loop
  -> partial mental map
  -> answer
  -> next task repeats discovery

CodeGraph model:
codegraph init/index
  -> .codegraph/codegraph.db
  -> agent calls codegraph_context / trace / impact
  -> answer from graph-backed source context

3. メンタルモデル:5つの構成要素

CodeGraphは単一の検索コマンドとしてではなく、パイプラインとして評価する方が容易です。

+---------------------+      +----------------------+      +----------------------+
| scanner             | ---> | extractor             | ---> | resolver             |
| git + filesystem    |      | tree-sitter + helpers  |      | imports, calls,      |
| ignore rules        |      | language files         |      | frameworks, bridges  |
+---------------------+      +----------------------+      +----------+-----------+
                                                                      |
                                                                      v
                         +----------------------+      +----------------------+
                         | MCP tools            | <--- | SQLite graph         |
                         | context, trace,      |      | nodes, edges, files, |
                         | callers, impact      |      | FTS5 search          |
                         +----------------------+      +----------------------+
コンポーネントソースアンカー機能
スキャナーsrc/extraction/index.tsgitの可視性、デフォルトの除外設定、ファイルサイズ制限、言語検出を使用してプロジェクトファイルを収集します。
エクストラクターsrc/extraction/languages/*tree-sitterおよびフレームワーク固有のエクストラクターを使用して、ソースをノードと未解決の参照に解析します。
リゾルバーsrc/resolution/*参照を、呼び出し、インポート、継承、実装、ルート、ブリッジエッジなどのグラフエッジに変換します。
データベースsrc/db/schema.sqlノード、エッジ、ファイル、未解決の参照、メタデータ、およびFTS5インデックスを格納します。
MCPサーバーsrc/mcp/tools.ts公開します codegraph_contextcodegraph_tracecodegraph_impact、および関連ツール。

4. 最小限のエンドツーエンドの例

プロジェクトのREADMEには現在、短いインストール手順と、より詳細なクイックスタート手順が記載されています。 codegraph init -i はプロジェクトインデックスを構築しますが、エージェントがCodeGraphを呼び出すには、その前にMCPサーバーのエントリが必要です。

# 1. Install or run the interactive installer.
npx @colbymchenry/codegraph

# 2. Restart the agent after the installer writes its MCP config.

# 3. Build the project-local graph.
cd your-project
codegraph init -i

# 4. Check the index from the CLI.
codegraph status

# 5. Ask the agent a structural question.
# Example prompt:
"Use CodeGraph first. How does the auth request reach the database?"

Claude Codeを手動でセットアップする場合、READMEには以下の場所にJSON形式のMCPエントリが示されています。 mcpServers.codegraph~/.codex/config.toml

# Codex CLI manual shape, from the installer target.
[mcp_servers.codegraph]
command = "codegraph"
args = ["serve", "--mcp"]

まとめ

セットアップは「エージェントの接続」と「リポジトリの初期化」の2段階で行うと考えてください。どちらか一方が欠けていると、エージェントはネイティブ検索にフォールバックし、CodeGraphが機能していないように見えてしまいます。

5. 詳細解説:各レイヤーの仕組み

5.1 スキャナー:インデックス対象

スキャナーは可能な限りgitで管理されているファイルを使用し、gitプロジェクトではない場合や親レイアウトが無視されている場合は、ファイルシステムを走査して補完します。 node_modulesdisttarget.venvPods、および .next

// Schema-level artifact: each indexed file becomes a row.
files(path, content_hash, language, size, modified_at, indexed_at, node_count, errors)

// Scanner-level artifact: ignored dependency/build directories are excluded
// before the graph becomes agent context.

個人的な見解:CodeGraphは、インデックスの範囲が単純で予測可能な場合に最も強力に機能します。

5.2 エクストラクター:シンボル優先、テキストは二の次

抽出処理は、構文木を生成するインクリメンタルパーサーであるtree-sitterを中心に構築されています。 src/extraction/languages/ それらの木を関数、メソッド、クラス、インターフェース、ルート、コンポーネント、変数、定数、モジュールといったノードに変換します。

nodes(
  id,
  kind,
  name,
  qualified_name,
  file_path,
  language,
  start_line,
  end_line,
  docstring,
  signature
)

個人的な見解:これが、CodeGraphが単なるベクトル検索のラッパーではない理由です。

5.3 リゾルバー:最も困難な部分

Static extraction finds references, but references are not useful until they resolve. CodeGraph's resolver handles import paths, name matching, framework routes, callback synthesis, dynamic-dispatch bridges, Swift to Objective-C bridging, React Native bridges, Expo modules, and framework-specific route shapes. Recent release notes show that much of the project's velocity is in this layer.

edges(
  source,
  target,
  kind,        -- calls, imports, contains, references, extends, implements...
  metadata,
  line,
  col,
  provenance
)

個人的な見解:リゾルバーの品質が、CodeGraphがリファクタリングにおいて安全に使用できるかを左右します。 0 callers 結果は、ツールがない場合よりも悪影響を及ぼす可能性があります。なぜなら、エージェントに対して「ライブコードがデッドコードである」という誤った情報を伝えてしまうからです。

5.4 SQLiteとFTS5:ローカルグラフ、ローカル検索

スキーマは、ノード、エッジ、ファイル、未解決の参照、およびプロジェクトのメタデータを、以下の場所にあるローカルのSQLiteデータベースに保存します。 .codegraph/codegraph.db

CREATE VIRTUAL TABLE nodes_fts USING fts5(
  id,
  name,
  qualified_name,
  docstring,
  signature,
  content='nodes'
);

個人的な見解:この種のツールにとって、ローカルのSQLiteは適切なストレージの選択です。

5.5 MCPツール:エージェントの制御

CodeGraphは、search、context、callers、callees、impact、node、explore、status、files、traceというコンパクトなMCPツールセットを提供します。 src/mcp/server-instructions.ts、各エージェントの指示ファイルに複製されるのではなく、MCPのinitializeレスポンスを通じて読み込まれます。

ツール用途
codegraph_contextエージェントがエントリーポイントと主要なコードを必要とする、アーキテクチャ、バグ、または機能に関する質問。
codegraph_traceあるシンボルから別のシンボルへのフローに関する質問。
codegraph_impactリファクタリングによる影響範囲(blast-radius)の確認。
codegraph_explore関連する複数のシンボルのソースをファイルごとにグループ化。
codegraph_filesファイルシステムをスキャンせずにインデックス化されたファイルツリー。

個人的な見解:MCPのガイダンスは製品の一部である。

6. 私たちが間違っていたこと

最初、私はCodeGraphを単なるトークン圧縮プロジェクトとして扱っていた。

また、セットアップの手順は「インストールしてインデックス化するだけ」だと想定していた。

Bad assumption:
"init -i means my agent has CodeGraph"

Correct model:
"install wires MCP; init/index builds the repo graph"

7. 実践的なワークフローパターン

間違い正解根本原因
エージェントにすべての認証関連ファイルをgrepするように指示する。~を要求する codegraph_context 認証タスクにおいて、一度 codegraph_explore文字列検索は、グラフがすでに保持しているマップを再構築するようなものだ。
信頼する 0 callers SvelteやReactのバレルファイル(barrel-heavy)が多いリポジトリで、盲目的に。Check known open issues around re-export barrels and package subpaths.Unresolved re-export chains can hide live callers.
すべてのトークンオプティマイザーを並列でインストールします。CodeGraphの有無で、実際のタスクを1つ測定してください。コンテキストツールを重ねすぎると、コスト削減よりも先にデバッグの難易度が上がってしまう可能性があります。
ホームディレクトリ規模の巨大なルートに対しては、watchモードを有効にしたままにしてください。プロジェクトのスコープを定め、リソースのガードレールが成熟するまではno-watchまたは手動同期を検討してください。大規模なツリーでは、ウォッチャーやファイルディスクリプタの負荷が深刻な問題となります。

8. よくある間違いと失敗のパターン

GitHubのオープンなIssueは、ユーザーが実際の失敗を報告しているため、間違いを知るための最良の情報源です。これこそが導入において重要となります。

失敗のパターンユーザーが遭遇した事象実践的な対応策
セットアップ順序の混乱「Get Started」に従ったが、リポジトリのインデックスは作成されたものの、エージェントが連携されていなかった。エージェントがツールを呼び出す前に、インストーラーを実行するか、MCP設定を追加してください。
MCP検出のギャップ一部のクライアントが resources/list または prompts/list を要求し、method-not-foundエラーが発生した。空の検出レスポンスを期待するクライアント向けに、それを追加するPRを監視してください。
大規模データベースのタイムアウト非常に大規模なデータベースに対してMCP呼び出しがタイムアウトするという報告がユーザーから寄せられています。まずはスコープを絞ったプロジェクトインデックスから開始し、検証を行ってください。 codegraph_status フローツールに依存する前に確認が必要です。
macOSのリソース負荷オープンな課題として、ファイルディスクリプタの蓄積やシステム全体に及ぶ ENFILE 症状が報告されています。ルート設定をより厳密にし、 --no-watch ガードレールが実装されるまでは慎重に検討してください。
言語エッジケースの取りこぼしオープンな課題として、TypeScriptの文字列リテラルによるサービス名や、Svelte/TSのバレル再エクスポートに関する問題が挙げられています。グラフの結果は、唯一の正当性の証明としてではなく、高品質なコンテキストとして活用してください。
Windowsのシェルが点滅する現象デーモンやgitのサブプロセス実行中に、コマンドウィンドウが一時的に表示されるという報告がユーザーから寄せられています。問題が解決しない場合は、常に最新の状態を保ち、古いデーモンプロセスを終了させてください。

9. パフォーマンス、スケーリング、およびコストに関する注記

CodeGraphのREADMEでは、Claudeのヘッドレス実行において、CodeGraphの有無を比較した複数のオープンソースコードベースでのベンチマーク結果が報告されています。重要なのはその手法です。同一のアーキテクチャに関する質問、同一のリポジトリを使用し、一方にはCodeGraph MCPを有効化、もう一方には空のMCP設定を適用して、複数回の実行の中央値を算出しています。リポジトリによると、このベンチマークは2026年5月下旬のビルドにおいて、アダプティブ codegraph_explore サイジングを用いて再検証されたとのことです。

正直なところ、その解釈はヘッドラインが示すよりも限定的です。CodeGraphは、エージェントが本来であれば探索に多くのツール呼び出しを費やすようなケースで真価を発揮します。小規模なリポジトリや、ネイティブ検索が安価な単純なルックアップでは、その優位性は低下します。トークンオプティマイザーに関するRedditのスレッドでも同様の実践的な指摘がなされています。つまり、ツールが謳う節約トークン数だけでなく、ワークフロー全体を測定すべきだということです。

Use this local A/B shape:

Task: "How does request X reach handler Y?"
Run A: agent with CodeGraph MCP enabled
Run B: same agent, same repo, CodeGraph disabled

Measure:
- time to first useful answer
- file reads
- grep/bash/search calls
- accepted edits
- follow-up corrections
- total cost, if your client exposes it

10. CodeGraphの対象ユーザー

以下のような場合に利用を推奨します。以下に該当する場合はスキップしてください:
エージェントに対して、日常的にファイル横断的なアーキテクチャに関する質問をしている場合。リポジトリが小さく、ネイティブ検索ですぐに答えが見つかる場合。
TypeScript、Python、Go、Rust、Java、Swift、C#、PHP、Ruby、Svelte、Vue、またはそれらに準ずるサポート対象のスタックで開発している場合。使用している主要な言語やフレームワークがカバーされておらず、正確な静的解析が必要な場合。
ローカルのみのコードコンテキストを重視し、ソースコードをホスト型のインデクサーにアップロードしたくない場合。ホスト型インデックスやチーム分析機能を備えた、マネージドSaaS型のコードアシスタントを求めている場合。
エージェントのループ内で、呼び出し元(callers)、呼び出し先(callees)、ルート、影響範囲、トレースを確認したい場合。リポジトリの単発的なパッキングや、コマンド出力の単純な圧縮のみが必要な場合。

11. コミュニティの反応

一般的な反応は、有益な形で賛否が分かれています。

r/ClaudeCodeでのRedditの議論では、CodeGraphはリポジトリパッカー、コマンド出力圧縮ツール、メモリツール、MCPコードエクスプローラーといった、他のトークンおよびコンテキスト最適化ツールと並べて評価されました。

大規模なTypeScriptモノレポに関するr/ClaudeAIの別のスレッドでは、コンテキストに収まりきらないコードベースをどのように扱うかという議論がなされました。

12. 結論:CodeGraphを使う価値はあるか?

私たちの見解

エージェントが同じリポジトリから繰り返し構造的なコンテキストを必要とする場合は、CodeGraphを使用してください。現在の課題が単純な検索、小規模なリポジトリ、またはサポートされていない言語のセマンティクスにある場合は、スキップしてください。

The best version of CodeGraph is boring: initialize the repo, let the agent call codegraph_context まず、以下を使用してください: trace フローに関する質問には、以下を使用してください。 impact 編集前に使用してください。

13. 全体像

CodeGraphは、プロンプトへの詰め込みからツールを活用したコンテキストへの移行という、より大きな潮流の中に位置しています。

この中間層が価値を持つのは、AIコーディングエージェントが単なるスニペット以上の情報を必要としているからです。

Context stack:
AGENTS.md / CLAUDE.md     -> rules and project intent
docs / package READMEs    -> human-authored architecture notes
CodeGraph                 -> local symbol and relationship graph
compiler / tests / linter -> correctness checks

The graph helps the agent navigate. It does not replace the rest.

14. よくある質問 (FAQ)

Q: CodeGraphとは何ですか?

CodeGraphは、リポジトリ内のファイル、シンボル、およびそれらの関係性をSQLiteのナレッジグラフとしてインデックス化し、MCPツールを通じてAIコーディングエージェントにそのグラフを提供するローカルコードインテリジェンスツールです。

Q: CodeGraphはgrepやripgrepの代わりになりますか?

いいえ。構造的な質問に対する繰り返しの探索ループを置き換えるものです。単純なテキスト検索にはgrepを使用してください。シンボル、呼び出し元、呼び出し先、影響範囲、またはタスク指向のコードコンテキストが必要な場合にCodeGraphを使用してください。

Q: CodeGraphはどのAIエージェントをサポートしていますか?

READMEおよびインストーラーのターゲットドキュメントでは、Claude Code、Cursor、Codex CLI、opencode、Hermes Agent、Gemini CLI、Antigravity IDE、およびKiroが挙げられています。正確な設定ファイルはエージェントごとに異なります。

Q: CodeGraphはクラウドベースですか?

いいえ。このリポジトリはCodeGraphをローカルファーストとして位置づけています。ソースコードはローカルで解析され、ローカルの `.codegraph/codegraph.db` SQLiteデータベースに保存され、ローカルのMCPサーバーを通じてエージェントに提供されます。

Q: 現在の最大のリスクは何ですか?

アクティブなイシュートラッカーによると、ウォッチモードでのリソース負荷、大規模インデックスのタイムアウト、セットアップ順序の混乱、一部のクライアントにおけるMCPハンドシェイクの不備、および言語固有のパターンにおけるエッジの取りこぼしが報告されています。

Q: すべてのプロジェクトにCodeGraphをインストールすべきですか?

いいえ。エージェントがファイル間やアーキテクチャに関する質問に繰り返し回答する必要がある場合に効果を発揮します。小規模なリポジトリや、一度限りの検索、単純なテキスト検索であれば、ネイティブの検索機能で十分な場合があります。

15. 用語集

用語定義
AST抽象構文木(Abstract syntax tree); ソースコードを解析した構造。
コードナレッジグラフコードエンティティとその関係性のデータベース。
エッジ2つのグラフノード間の関係。
FTS5SQLiteの全文検索エンジン。
MCPModel Context Protocol; エージェントのためのツールプロトコル。
ノードシンボル、ファイル、ルート、コンポーネント、または類似のコードエンティティ。
Resolver抽出された参照を実際の定義にリンクさせるコード。
Tree-sitterソース構文木に使用されるパーサーフレームワーク。
WAL同時アクセスを実現するためのSQLiteのwrite-ahead logモード。
Watcherインデックスを最新の状態に保つためのファイル変更リスナー。

16. すべてのソースとリンク

主要ソース

読み込まれたソースファイル

GitHub Issues および Pull Requests

  • Issue #644 - macOSにおけるファイルディスクリプタのリーク / ENFILEに関する報告。
  • Issue #631 - READMEのセットアップ順序に関する混乱。
  • Issue #629 - Svelte/TypeScriptにおけるバレル再エクスポートの未解決問題。
  • Issue #628 - ウォッチモードにおけるリソースのガードレール。
  • Issue #621 - MCP resources/list および prompts/list における欠落。
  • Issue #613 - 大規模データベースでの MCP タイムアウト。
  • Issue #634 - TypeScript の文字列リテラルによるサービス名がインデックス化されない問題。
  • PR #632 - セットアップドキュメントおよび MCP ディスカバリーの修正。
  • PR #643 - 提案された .codegraphignore override サポート。
  • PR #603 - 組み込み SDK API の復元。

コミュニティソース

内部リンク

17. ソース属性テーブル

ソースタイプ活用した主要なインサイト
GitHub READMEプライマリインストールフロー、ベンチマーク、サポート対象エージェント、言語、ローカルファーストのポジショニング。
公式ドキュメントサイトプライマリ簡潔な製品定義:ローカルコードグラフ、tree-sitter、MCP、影響分析。
ソースコードクローンプライマリスキャナー、エクストラクター、リゾルバーのアーキテクチャ、SQLiteスキーマ、MCPツール、インストーラーターゲット。
GitHub issuesコミュニティ / クリティカルリソース負荷、セットアップの混乱、タイムアウト、エッジの欠落、クライアント互換性のギャップ。
GitHub PRsプライマリ / コミュニティセットアップドキュメント、ディスカバリーレスポンス、SDK API、ignoreオーバーライドに関する修正を適用。
Redditスレッドコミュニティ開発者がCodeGraphと他のコンテキストツールを比較し、ワークフローレベルでの測定を推奨。
Xの投稿コミュニティ成長に対する世間の期待と、読み取り速度とトークン節約のトレードオフに関するユーザーからの慎重な指摘。

Related Guides