CodeGraphContext/CodeGraphContext
An MCP server plus a CLI tool that indexes local code into a graph database to provide context to AI assistants.
CodeGraphContext (CGC)
何が何なのか
CodeGraphContext (CGC) は、ローカルのコードベースを グラフデータベース に変換する Python ベースのツールです。シンボル、関数呼び出し、インポート、継承、その他の関係を含みます。このグラフはコマンドラインからクエリ可能で、MCP(Model-Control-Protocol)経由で提供され、AIアシスタント(例:チャットベースのコードヘルパー)がテキスト検索ではなく、正確なシンボルレベルのコンテキストを取得できるようにします。
コア機能
| 機能 | 得られるもの |
|---|---|
| コードインデックス化 | tree-sitter(オプションで SCIP インデクサー)でソースファイルを解析し、知識グラフを構築します。 |
| マルチ言語対応 | 23言語を標準でサポート(Python、JS/TS、Java、C/C++、Go、Rust、Solidity など)。 |
| CLIツールキット | cgc index、cgc analyze callers <sym>、cgc watch、cgc list など、ローカルでインタラクティブに分析できるコマンド。 |
| MCPサーバーモード | FastAPIベースのサーバー(cgc mcp start)を実行し、AI IDE拡張からの自然言語クエリに応答します。 |
| データベースバックエンド | 嵌め込み型の FalkorDB Lite(Unixではデフォルト)、KuzuDB、LadybugDB、または外部の Neo4j/Nornic – cgc config db で選択可能。 |
| ライブ更新 | cgc watch でディレクトリを監視し、ファイルの変更に応じてグラフを自動更新。 |
| 事前インデックス済みバンドル | 人気のあるリポジトリ用の準備済み .cgc バンドルがあり、インデックス化ステップをスキップ可能。 |
| Docker対応 | オフィシャルな Docker イメージと compose プロファイルで、言語に依存せずに迅速に実行可能。 |
| 可視化(プレミアム) | Web UI でコードベースのインタラクティブな力指向グラフをレンダリング。 |
動作の概要(ハイレベルなワークフロー)
- 解析 – Tree-sitter(およびオプションの SCIP)がシンボル、呼び出し、インポートなどを抽出します。
- グラフ構築 – 抽出されたデータをノード/エッジに変換し、選択されたグラフDBに保存します。
- クエリ – CLI または MCP サーバーが、Cypherに似たクエリをグラフに対して実行します。
- 利用 – AIエージェントや開発者が、呼び出しチェーン、クラス階層、未使用コードリストなど、構造化された回答を受け取ります。
一般的な利用シーン
- ファイルやパッケージ間をまたいで呼び出しチェーンを追跡する。
- クラス階層やモジュール境界を理解する。
- 未使用コード、ホットスポット、予期しない依存関係を検出する。
- AIアシスタントに、人間のメンテナが使うのと同じ構造的コンテキストを提供する。
- プロジェクトドキュメントやオンボーディング用に視覚的なグラフを生成する。
すぐに始める(クイックスタート)
# パッケージをインストール
pip install codegraphcontext
# 現在のリポジトリをインデックス化
cgc index .
# 簡単なクエリを実行(例:関数の呼び出し元を調べる)
cgc analyze callers my_function
# AI IDE統合用のMCPサーバーを起動
cgc mcp setup # 一度だけの設定
cgc mcp start # FastAPIサーバーを起動
Dockerユーザー向け:
docker pull codegraphcontext/codegraphcontext:latest
docker run --rm -v "$(pwd):/workspace" codegraphcontext/codegraphcontext cgc index .
メンテナンス担当者
Shashank Shekhar Singh によって開発・メンテナンスされています(MITライセンス)。プロジェクトはオープンソースで、CIバッジ、Discordコミュニティ、公開ウェブサイトがあります。
上記のすべての情報はリポジトリの README から直接取得しており、外部の仮定は一切加えられていません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト