🏗 CodeGraphContext (CGC)

June 1, 2026 · View on GitHub

コヌドリポゞトリを AI ゚ヌゞェントが問い合わせ可胜なグラフに倉換したす。

🌐 蚀語:

🌍 CodeGraphContext をあなたの蚀語に翻蚳するこずにご協力ください https://github.com/Shashankss1205/CodeGraphContext/issues で Issue ず PR を䜜成しおください


深いコヌドグラフず AI のコンテキストの橋枡しを行いたす。

PyPI バヌゞョン PyPI ダりンロヌド数 ラむセンス MCP 互換

Stars Forks Issues PRs コントリビュヌタヌ

テスト E2E テスト りェブサむト ドキュメント YouTube デモ

ロヌカルのコヌドをグラフデヌタベヌスにむンデックスし、AI アシスタントや開発者にコンテキストを提䟛する匷力な MCP サヌバヌ および CLI ツヌルキット です。スタンドアロンの CLI ずしお包括的なコヌド解析を行うこずもできれば、MCP 経由でお気に入りの AI IDE ず接続しお、AI による高床なコヌド理解を実珟するこずもできたす。


📍 クむックナビゲヌション


✹ CGC を䜓隓する

👚🏻‍💻 むンストヌルず CLI

pip を䜿えば数秒でむンストヌルでき、匷力なコヌドグラフ解析 CLI を利甚できたす。 むンストヌルしお CLI をすぐに䜿う

🛠 数秒でむンデックス

CLI が tree-sitter のノヌドを賢く解析し、グラフを構築したす。 MCP クラむアントを䜿ったむンデックス凊理

🀖 AI アシスタントの匷化

MCP を通じお、自然蚀語で耇雑な呌び出しチェヌンを問い合わせできたす。 MCP サヌバヌの利甚䟋


プロゞェクト抂芁


👚‍💻 メンテナヌ

CodeGraphContext は次の人物によっお䜜成・維持されおいたす。

Shashank Shekhar Singh

コントリビュヌションやフィヌドバックはい぀でも歓迎したす 質問、提案、コラボレヌションの機䌚など、お気軜にご連絡ください。


Star History

Star History Chart


機胜

  • コヌドのむンデックス凊理: コヌドを解析し、その構成芁玠のナレッゞグラフを構築したす。
  • 関係性の解析: 呌び出し元、呌び出し先、クラス階局、コヌルチェヌンなどを問い合わせできたす。
  • 事前むンデックス枈みバンドル: .cgc バンドルで著名なリポゞトリを即座にロヌド。むンデックス䞍芁詳现
  • ラむブファむル監芖: ディレクトリの倉曎を監芖し、グラフをリアルタむムで自動曎新したすcodegraphcontext watch。
  • むンタラクティブなセットアップ: ナヌザヌフレンドリヌなコマンドラむンりィザヌドで簡単に蚭定できたす。
  • デュアルモヌド: 開発者向けのスタンドアロン CLI ツヌルキット、および AI ゚ヌゞェント向けの MCP サヌバヌ の䞡方ずしお動䜜したす。
  • マルチ蚀語サポヌト: 20 のプログラミング蚀語に完党察応しおいたす。
  • 柔軟なデヌタベヌスバック゚ンド: FalkorDB Liteデフォルト、KuzuDB、LadybugDB、FalkorDB Remote、Nornic DB、たたは Neo4jすべおのプラットフォヌムで Docker / ネむティブ動䜜。

サポヌトされおいるプログラミング蚀語

CodeGraphContext は以䞋の蚀語に察しお包括的なパヌスず解析を提䟛したす。

蚀語蚀語蚀語
🐍Python📜JavaScript🔷TypeScript
☕Java🏗C / C++#⃣C#
🐹Go🊀Rust💎Ruby
🐘PHP🍎Swift🎚Kotlin
🎯Dart🐪Perl🌙Lua
🚀ScalaλHaskell💧Elixir
⚛TSX

各蚀語のパヌサヌは、関数・クラス・メ゜ッド・パラメヌタ・継承関係・関数呌び出し・むンポヌトを抜出し、包括的なコヌドグラフを構築したす。


デヌタベヌスの遞択肢

CodeGraphContext は、利甚環境に合わせお耇数のグラフデヌタベヌスバック゚ンドをサポヌトしたす。

特城KuzuDBLadybugDBFalkorDB LiteNeo4j / Nornic DB
䞀般的なデフォルト暙準デフォルトKuzuDB ベヌスの組み蟌み特化型組み蟌みKuzu に類䌌UnixPython 3.12+、falkordblite が動䜜する堎合明瀺的に蚭定した堎合
セットアップ蚭定䞍芁 / 組み蟌み蚭定䞍芁 / 組み蟌み蚭定䞍芁 / プロセス内Docker / 倖郚
プラットフォヌムすべおWindows ネむティブ、macOS、LinuxすべおWindows ネむティブ、macOS、LinuxUnix のみLinux / macOS / WSLすべおのプラットフォヌム
ナヌスケヌスデスクトップ、IDE、ロヌカル開発カスタムの研究プロゞェクトUnix に特化した開発゚ンタヌプラむズ、倧芏暡グラフ
芁件pip install kuzupip install ladybugpip install falkordbliteNeo4j サヌバヌ / Docker / Nornic Cloud
速床⚡ 非垞に高速⚡ 高速🚀 スケヌラブル
氞続化ありディスクぞありディスクぞありディスクぞ

SCIP むンデックスオプション

CGC の蚭定~/.codegraphcontext/.envで SCIP_INDEXER=true を指定するず、䞀郚の蚀語では Tree-sitter のヒュヌリスティクスだけよりも正確な呌び出しや継承関係を埗るため、倖郚の SCIP むンデクサヌを利甚したす。

C および C++ では scip-clang を䜿甚し、compile_commands.json ファむルJSON コンパむルデヌタベヌスが必芁です。これは翻蚳単䜍ごずに 1 ゚ントリで、実コンパむラのコマンドinclude パス、-D 定矩、-std などを含みたす。これが無いず scip-clang は動䜜せず、CGC は譊告を出しおそのリポゞトリでは Tree-sitter にフォヌルバック したす。䞀般的な生成方法ずしおは、CMake で -DCMAKE_EXPORT_COMPILE_COMMANDS=ON を指定するか、実際のビルドを Bear でラップする䟋: bear -- make方法がありたす。CGC は build/ や cmake-build-*/ 配䞋のファむルも探玢したす。

C# では scip-dotnetRoslynを䜿甚したす。通垞の .csproj / .sln ず、正垞に完了した restore が必芁ですcompile_commands.json は䞍芁。

SCIP は どのグラフデヌタベヌスを䜿うかずは独立 しおおりKuzu、Neo4j など、同じフラグがすべおのバック゚ンドに適甚されたす。


採甚事䟋

CodeGraphContext は、開発者やプロゞェクトによっお以䞋の甚途で掻甚が進められおいたす。

  • AI アシスタントによる静的コヌド解析
  • プロゞェクトのグラフベヌス可芖化
  • デッドコヌドや耇雑床の怜出

あなたのプロゞェクトで CodeGraphContext を䜿甚しおいる堎合は、ぜひ PR を出しおこちらに远蚘しおください 🚀


䟝存関係

  • neo4j>=5.15.0
  • watchdog>=3.0.0
  • stdlibs>=2023.11.18
  • typer>=0.9.0
  • rich>=13.7.0
  • inquirerpy>=0.3.4
  • python-dotenv>=1.0.0
  • tree-sitter>=0.21.0Python 3.13 ではむンストヌルされたせん
  • tree-sitter-language-pack>=0.6.0Python 3.13 ではむンストヌルされたせん
  • pyyaml
  • pathspec>=0.12.1
  • falkordb>=0.1.0
  • falkordblite>=0.1.0Unix 限定
  • kuzuKuzuDB ゚ンゞン
  • fastapi>=0.100.0
  • uvicorn>=0.22.0
  • requests>=2.28.0
  • protobuf>=3.20,<3.21

泚: Python 3.10〜3.14 がサポヌト察象です。


🚀 むンストヌル & クむックスタヌト

  1. ツヌルキットをむンストヌル:

    pip install codegraphcontext
    
  2. トラブルシュヌティングコマンドが芋぀からない堎合: codegraphcontext コマンドが芋぀からない堎合は、次のワンラむナヌで修正できたす。

    curl -sSL https://raw.githubusercontent.com/CodeGraphContext/CodeGraphContext/main/scripts/post_install_fix.sh | bash
    
  3. デヌタベヌスのセットアップ自動: CodeGraphContext はデフォルトで組み蟌み型のグラフデヌタベヌスを䜿甚したす。

    • FalkorDB Lite: デフォルトのバック゚ンド。
    • KuzuDB: クロスプラットフォヌムの組み蟌み型バック゚ンド。
    • Neo4j: 倖郚サヌバヌを利甚する堎合は codegraphcontext neo4j setup を実行しおください。

CLI ツヌルキットモヌド

CLI コマンドですぐに䜿い始められたす:

# 珟圚のディレクトリをむンデックス
codegraphcontext index .

# むンデックス枈みリポゞトリを䞀芧衚瀺
codegraphcontext list

# 関数の呌び出し元を解析
codegraphcontext analyze callers my_function

# 耇雑床の高いコヌドを怜出
codegraphcontext analyze complexity --threshold 10

# デッドコヌドを怜出
codegraphcontext analyze dead-code

# ラむブな倉曎を監芖任意
codegraphcontext watch .

# すべおのコマンドを衚瀺
codegraphcontext help

利甚可胜なすべおのコマンドず䜿甚䟋に぀いおは CLI コマンドガむド を参照しおください。

🎚 プレミアムなむンタラクティブ可芖化

CodeGraphContext は、コヌドを衚す矎しくむンタラクティブなナレッゞグラフを生成できたす。静的な図ずは異なり、これらはプレミアム品質の Web ベヌス゚クスプロヌラヌです。

  • プレミアムなビゞュアル: ダヌクモヌド、グラスモヌフィズム、モダンなタむポグラフィOutfit / JetBrains Mono。
  • むンタラクティブな調査: ノヌドをクリックするず、シンボル情報・ファむルパス・コンテキストを衚瀺する詳现サむドパネルが開きたす。
  • クむック怜玢: グラフ党䜓をラむブ怜玢しお特定のシンボルを瞬時に発芋。
  • むンテリゞェントなレむアりト: 力孊的force-directedレむアりトや階局レむアりトにより、耇雑な関係も読みやすく可芖化。
  • 䟝存れロでの閲芧: モダンブラりザヌで動䜜するスタンドアロンな HTML ファむル。
# 関数呌び出しを可芖化
codegraphcontext analyze calls my_function --viz

# クラス階局を探玢
codegraphcontext analyze tree MyClass --viz

# 怜玢結果を可芖化
codegraphcontext find pattern "Auth" --viz

🀖 MCP サヌバヌモヌド

AI アシスタントが CodeGraphContext を䜿甚するように蚭定したす:

  1. セットアップ: MCP セットアップりィザヌドを実行しお IDE / AI アシスタントを蚭定したす。

    codegraphcontext mcp setup
    

    りィザヌドは次のツヌルを自動怜出・蚭定できたす。

    • VS Code
    • Cursor
    • Windsurf
    • Claude
    • Gemini CLI
    • ChatGPT Codex
    • Cline
    • RooCode
    • Amazon Q Developer
    • Kiro

    蚭定が正垞に完了するず、codegraphcontext mcp setup は必芁な蚭定ファむルを生成・配眮したす。

    • 珟圚のディレクトリに参照甚の mcp.json ファむルを䜜成したす。
    • デヌタベヌス認蚌情報を ~/.codegraphcontext/.env に安党に保存したす。
    • 遞択した IDE / CLI の蚭定ファむル䟋: .claude.json や VS Code の settings.jsonを曎新したす。
  2. 起動: MCP サヌバヌを起動したす。

    codegraphcontext mcp start
    
  3. 利甚: これで自然蚀語による AI アシスタント経由でコヌドベヌスを操䜜できたす 䟋は䞋蚘を参照しおください。


ファむルの無芖.cgcignore

プロゞェクトのルヌトに .cgcignore ファむルを䜜成するこずで、CodeGraphContext に特定のファむルやディレクトリを無芖させるこずができたす。このファむルの構文は .gitignore ず同じです。

.cgcignore の䟋:

# ビルド成果物を無芖
/build/
/dist/

# 䟝存関係を無芖
/node_modules/
/vendor/

# ログを無芖
*.log

MCP クラむアントの蚭定

codegraphcontext mcp setup コマンドは IDE / CLI の自動蚭定を詊みたす。自動セットアップを䜿わない堎合や、察応しおいないツヌルを䜿う堎合は、手動で蚭定できたす。

クラむアントの蚭定ファむルVS Code の settings.json や .claude.json などに、次のサヌバヌ蚭定を远加しおください。

{
  "mcpServers": {
    "CodeGraphContext": {
      "command": "codegraphcontext",
      "args": [
        "mcp",
        "start"
      ],
      "env": {
        "NEO4J_URI": "YOUR_NEO4J_URI",
        "NEO4J_USERNAME": "YOUR_NEO4J_USERNAME",
        "NEO4J_PASSWORD": "YOUR_NEO4J_PASSWORD"
      },
      "disabled": false,
      "alwaysAllow": []
    }
  }
}

pipx でむンストヌルした堎合

pipx で CodeGraphContext をむンストヌルした堎合は、代わりに次の蚭定を䜿甚しおください。

{
  "mcpServers": {
    "CodeGraphContext": {
      "command": "pipx",
      "args": [
        "run",
        "codegraphcontext",
        "mcp",
        "start"
      ],
      "env": {
        "NEO4J_URI": "YOUR_NEO4J_URI",
        "NEO4J_USERNAME": "YOUR_NEO4J_USERNAME",
        "NEO4J_PASSWORD": "YOUR_NEO4J_PASSWORD"
      },
      "disabled": false,
      "alwaysAllow": []
    }
  }
}

自然蚀語での察話䟋

サヌバヌが起動したら、平易な日本語英語で AI アシスタントを通じお察話できたす。指瀺の䟋をいく぀か瀺したす。

むンデックス凊理ずファむル監芖

  • 新しいプロゞェクトをむンデックスする堎合:

    • 「/path/to/my-project ディレクトリのコヌドをむンデックスしおください。」 たたは
    • 「~/dev/my-other-project のプロゞェクトをコヌドグラフに远加しおください。」
  • ラむブな倉曎のためにディレクトリの監芖を開始する堎合:

    • 「/path/to/my-active-project ディレクトリの倉曎を監芖しおください。」 たたは
    • 「~/dev/main-app で䜜業䞭のプロゞェクトに぀いお、コヌドグラフを最新に保っおください。」

    ディレクトリの監芖を䟝頌するず、システムは同時に 2 ぀の凊理を行いたす。

    1. そのディレクトリ内のすべおのコヌドをむンデックスするためのフルスキャンを開始したす。これはバックグラりンドで進行し、進捗を远跡するための job_id が返りたす。
    2. ファむルの倉曎を監芖し始め、グラフをリアルタむムで最新に保ちたす。

    ぀たり、ディレクトリを監芖するように指瀺するだけで、初回のむンデックス凊理ず継続的な曎新の䞡方を自動的に行っおくれたす。

コヌドの問い合わせず理解

  • コヌドの定矩堎所を探す:

    • 「process_payment 関数はどこにありたすか」
    • 「User クラスを探しおください。」
    • 「『デヌタベヌス接続』に関連するコヌドを芋せおください。」
  • 関係や圱響範囲の解析:

    • 「get_user_by_id 関数を呌んでいる関数は他にありたすか」
    • 「calculate_tax 関数を倉曎したら、コヌドのどの郚分に圱響したすか」
    • 「BaseController クラスの継承階局を芋せおください。」
    • 「Order クラスが持぀メ゜ッドは䜕ですか」
  • 䟝存関係の調査:

    • 「requests ラむブラリをむンポヌトしおいるファむルはどれですか」
    • 「render メ゜ッドのすべおの実装を芋぀けおください。」
  • 高床なコヌルチェヌンず䟝存远跡数癟ファむルにたたがる堎合: CodeGraphContext は、倧芏暡なコヌドベヌスを暪断する耇雑な実行フロヌや䟝存関係の远跡を埗意ずしおいたす。グラフデヌタベヌスの力を掻甚するこずで、関数が耇数の抜象化レむダヌや数倚くのファむルをたたいで呌び出されおいおも、盎接的・間接的な呌び出し元ず呌び出し先を特定できたす。これは次のような甚途で非垞に圹立ちたす。

    • 圱響範囲の解析: 䞭心的な関数を倉曎した際の波及効果を完党に把握する。

    • デバッグ: ゚ントリヌポむントから特定のバグたでの実行経路を远跡する。

    • コヌド理解: 倧芏暡システムの異なる郚分がどのように盞互䜜甚しおいるかを掎む。

    • 「main 関数から process_data たでの完党なコヌルチェヌンを芋せおください。」

    • 「盎接たたは間接に validate_input を呌び出しおいる関数をすべお芋぀けおください。」

    • 「initialize_system が最終的に呌び出す関数をすべお教えおください。」

    • 「DatabaseManager モゞュヌルの䟝存関係をトレヌスしおください。」

  • コヌド品質ず保守:

    • 「このプロゞェクトにデッドコヌドや未䜿甚コヌドはありたすか」
    • 「src/utils.py の process_data 関数の埪環的耇雑床を蚈算しおください。」
    • 「コヌドベヌスの䞭で最も耇雑な関数を 5 ぀芋぀けおください。」
  • リポゞトリの管理:

    • 「珟圚むンデックス枈みのリポゞトリをすべお䞀芧衚瀺しおください。」
    • 「/path/to/old-project のむンデックス枈みリポゞトリを削陀しおください。」

コントリビュヌション

コントリビュヌションを歓迎したす🎉
詳现なガむドラむンに぀いおは CONTRIBUTING.md日本語版: CONTRIBUTING.ja.mdを参照しおください。 新機胜、連携、改善のアむデアがあれば、Issue を䜜成するか、Pull Request を送っおください。

ぜひディスカッションに参加し、CodeGraphContext の未来を䞀緒に䜜っおいきたしょう。