-
Notifications
You must be signed in to change notification settings - Fork 0
Introduce CodeGraph integration #932
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -65,6 +65,11 @@ | |
| "https://mcp.deepwiki.com/mcp" | ||
| ] | ||
| }, | ||
| "codegraph": { | ||
| "type": "stdio", | ||
| "command": "codegraph", | ||
| "args": ["serve", "--mcp"] | ||
| }, | ||
|
Comment on lines
+68
to
+72
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. このリポジトリ内の他の npm パッケージを利用した MCP サーバー設定( References
|
||
| "context7": { | ||
| "type": "stdio", | ||
| "command": "npx", | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,39 @@ | ||
| --- | ||
| targets: | ||
| - claudecode | ||
| globs: | ||
| - "**/*" | ||
| --- | ||
|
|
||
| # CodeGraph 連携 | ||
|
|
||
| このプロジェクトでは CodeGraph が導入されています。CodeGraph はコードベースのセマンティックなナレッジグラフを構築し、高速かつ効率的なコード探索を可能にします。 | ||
|
|
||
| ## .codegraph/ が存在する場合 | ||
|
|
||
| **メインセッションで `codegraph_explore` や `codegraph_context` を直接呼び出さないでください。** これらのツールは大量のソースコードを返し、メインセッションのコンテキストを圧迫します。 | ||
|
|
||
| 代わりに、探索が必要な質問(例:「X はどのように動作するか?」「Y システムの説明」「Z はどこで実装されているか?」)については、**必ず Explore エージェントを起動してください。** | ||
|
|
||
| **Explore エージェントを起動する際**は、プロンプトに以下の指示を含めてください: | ||
|
|
||
| > このプロジェクトには CodeGraph が初期化されています(.codegraph/ が存在します)。`codegraph_explore` を主要なツールとして使用してください。これは、関連するすべてのファイルから完全なソースコードセクションを一度の呼び出しで返します。 | ||
| > | ||
| > **ルール:** | ||
| > | ||
| > 1. `codegraph_explore` のツール説明にある探索コール予算に従ってください。 | ||
| > 2. `codegraph_explore` が既にソースコードを返したファイルを再読回しないでください。 | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
| > 3. 「Additional relevant files」にリストされているファイルについて、より詳細が必要な場合や、CodeGraph が結果を返さなかった場合にのみ、grep/glob/read にフォールバックしてください。 | ||
|
|
||
| メインセッションでは、編集前のターゲット確認などのために、以下の軽量ツールのみを直接使用できます: | ||
|
|
||
| | ツール | 用途 | | ||
| | ----------------------------------------- | -------------------------- | | ||
| | `codegraph_search` | 名前でシンボルを検索 | | ||
| | `codegraph_callers` / `codegraph_callees` | コールフローの追跡 | | ||
| | `codegraph_impact` | 編集前に影響範囲を確認 | | ||
| | `codegraph_node` | 特定のシンボルの詳細を取得 | | ||
|
|
||
| ## .codegraph/ が存在しない場合 | ||
|
|
||
| セッションの開始時に、ユーザーに CodeGraph の初期化を提案してください。 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,70 @@ | ||
| # CodeGraph | ||
|
|
||
| CodeGraph は、Claude Code を強化するためのセマンティックなコードナレッジグラフツールです。 | ||
| コードの構造、シンボルの関係、コールグラフを事前にインデックス化することで、AI エージェントによるコード探索を高速化し、トークン消費を大幅に削減します。 | ||
|
|
||
| ## 特徴 | ||
|
|
||
| - **高速なコード探索**: grep や find を繰り返す代わりに、グラフベースの探索を行います。 | ||
| - **トークン節約**: 関連するコード断片を一度に取得できるため、無駄なツール呼び出しを減らせます。 | ||
| - **100% ローカル**: すべてのデータはローカルの SQLite データベースに保存されます。 | ||
| - **マルチ言語対応**: TypeScript, Python, Rust, Go, Java, C++, Swift など 19 以上の言語に対応。 | ||
| - **オートシンク**: ファイルの変更を監視し、インデックスを自動的に更新します。 | ||
|
|
||
| ## 導入方法 | ||
|
|
||
| 1. **インストール** | ||
| このリポジトリでは `mise` で管理されています。 | ||
|
|
||
| ```bash | ||
| mise install | ||
| ``` | ||
|
|
||
| 2. **初期化** | ||
| プロジェクトのルートディレクトリで以下のコマンドを実行します。 | ||
|
|
||
| ```bash | ||
| codegraph init -i | ||
| ``` | ||
|
|
||
| これにより `.codegraph/` ディレクトリが作成され、初期インデックスが構築されます。 | ||
|
|
||
| 3. **Claude Code の再起動** | ||
| MCP サーバーの設定を反映させるため、Claude Code を再起動します。 | ||
|
|
||
| ## 使い方 | ||
|
|
||
| ### Claude Code 内での利用 | ||
|
|
||
| CodeGraph が導入されたプロジェクトでは、Claude Code が自動的に CodeGraph のツール(`codegraph_explore`, `codegraph_search` など)を認識して使用します。 | ||
|
|
||
| ### CLI コマンド | ||
|
|
||
| - `codegraph status`: インデックスの状態と統計を表示。 | ||
| - `codegraph query <search>`: シンボルを検索。 | ||
| - `codegraph files`: インデックスされたファイル構造を表示。 | ||
| - `codegraph affected [files...]`: 変更によって影響を受ける(テスト)ファイルを特定。 | ||
|
|
||
| ## 設定 | ||
|
|
||
| `.codegraph/config.json` でインデックス対象や除外パターンをカスタマイズできます。 | ||
|
|
||
| ```json | ||
| { | ||
| "version": 1, | ||
| "languages": ["typescript", "javascript"], | ||
| "exclude": ["node_modules/**", "dist/**", "build/**"], | ||
| "maxFileSize": 1048576 | ||
| } | ||
| ``` | ||
|
|
||
| ## 連携の仕組み | ||
|
|
||
| 1. **Extraction**: tree-sitter を使用してソースコードを解析。 | ||
| 2. **Storage**: シンボルと関係性をローカル SQLite に保存。 | ||
| 3. **MCP Server**: Claude Code などのエージェントがツール経由でグラフをクエリ。 | ||
| 4. **Auto-Sync**: ファイル変更を検知して増分同期。 | ||
|
|
||
| ## 関連リポジトリ | ||
|
|
||
| - [colbymchenry/codegraph](https://github.com/colbymchenry/codegraph) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CodeGraph 権限がワイルドカードで広すぎます。
Line 16 の
mcp__codegraph__*は将来追加される CodeGraph 側の全ツールまで許可対象になり、最小権限の原則から外れます。少なくとも現時点で運用対象のツール名へ明示的に絞ることを推奨します。権限を明示列挙へ寄せる例