GitNexus × ゼロサーバーコード知能 — ナレッジグラフで「影響範囲」を可視化する新しいコードリーディング

@sukh_saroy 氏が X で紹介した、コードベース全体を知識グラフに変換するツールが注目を集めています。

GitNexus: A zero-server code intelligence engine that transforms your codebase into a navigable knowledge graph.

GitNexus は、コードベースをナレッジグラフに変換し、関数の呼び出し関係・継承・インポートの依存を構造的に把握できるコード知能エンジンです。サーバー不要で完全にローカル実行でき、Claude Code や Cursor などの AI コーディングツールと MCP(Model Context Protocol)で連携します。

本記事では、GitNexus の仕組み、従来のコード検索との違い、そして AI エージェント時代に「コードの影響範囲を知る」ことがなぜ重要かを解説します。

従来のコード検索の限界

grep/ripgrep では見えないもの

エンジニアがコードベースを理解する方法は、長い間「テキスト検索」が中心でした。

従来のコード理解の方法:

  grep / ripgrep:
    ├── 文字列の一致を検索
    ├── ファイル横断で高速
    └── 限界: 「この関数を変更したら何が壊れるか」は分からない

  IDE の「参照を検索」:
    ├── シンボルの参照箇所を表示
    ├── 型情報を活用
    └── 限界: 間接的な依存(A→B→C)は追いきれない

  手動でコードを読む:
    ├── 最も確実だが最も遅い
    └── 限界: 大規模コードベースでは現実的でない

これらの方法に共通する問題は、コードの「関係性」が見えないことです。「この関数を呼んでいる場所」は分かっても、「この関数を変更したときの影響が最終的にどこまで波及するか」は分かりません。

AI コーディングツールの盲点

Claude Code や Cursor などの AI コーディングツールは、コードベースを理解する能力が飛躍的に向上しました。しかし、根本的な制約があります。

AI コーディングツールの制約:

  コンテキストウィンドウの限界:
    大規模プロジェクトのすべてのファイルを
    一度に読み込むことはできない

  毎回の再解析:
    リクエストのたびにファイルを読み直す
    → 関係性の「記憶」がない

  テキストベースの理解:
    コードをテキストとして読んでいるため、
    構造的な関係性(呼び出しグラフ、継承ツリー)を
    体系的に把握していない

GitNexus は、この「AI ツールが毎回ゼロから解析している」という問題を、事前計算されたナレッジグラフで解決します。

GitNexus の仕組み

ゼロサーバーアーキテクチャ

GitNexus の最大の特徴は、サーバーが不要であることです。

GitNexus のアーキテクチャ:

  従来のコード知能ツール:
    コードベース → クラウドサーバーにアップロード
    → サーバー側で解析 → 結果を返却
    → 問題: コードが外部に出る、ネットワーク依存

  GitNexus:
    コードベース → ローカルで AST 解析
    → ローカルの KuzuDB にグラフ格納
    → MCP で AI ツールに提供
    → 問題なし: すべてローカル完結

使用するグラフデータベースは KuzuDB です。カナダ・ウォーターロー大学発の研究プロジェクトから生まれた組み込み型グラフ DB で、SQLite のようにファイルベースで動作し、別途サーバープロセスを起動する必要がありません。MIT ライセンスのオープンソースで、単一マシン上で数億ノード・数十億エッジを処理できる性能を持ちます。

7 段階のインデックス構築

GitNexus がコードベースを解析する過程は、7 つのフェーズに分かれています。

インデックス構築の 7 フェーズ:

  Phase 1: Structure(構造解析)
    ファイル、ディレクトリ、モジュールの構造を把握
    → 「プロジェクトの骨格」を構築

  Phase 2: AST Parsing(構文木解析)
    各ファイルの AST(抽象構文木)を解析
    関数、クラス、変数の定義を抽出
    → 「プロジェクトの語彙」を構築

  Phase 3: Import Resolution(インポート解決)
    import / require / use 文を解析
    ファイル間の依存関係を確定
    → 「誰が誰を使っているか」を構築

  Phase 4: Call Analysis(呼び出し解析)
    関数の呼び出し関係を解析
    直接呼び出し + コールバック + イベントを追跡
    → 「誰が誰を呼んでいるか」を構築

  Phase 5: Heritage(継承解析)
    クラスの継承、インターフェースの実装を解析
    → 「誰が誰の子か」を構築

  Phase 6: Communities(コミュニティ検出)
    Leiden アルゴリズムで密に結合したコード群を自動検出
    凝集度スコア付きで論理的なまとまりを識別
    → 「論理的なモジュール境界」を発見

  Phase 7: Processes(プロセス解析)
    エントリーポイントから BFS でビジネスロジックのフローを追跡
    → 「データがどう流れるか」を構築

この 7 段階の解析により、コードベース全体がノード(関数、クラス、ファイル)とエッジ(呼び出し、継承、インポート)のグラフとして表現されます。

12 言語サポート

GitNexus は主要なプログラミング言語を幅広くサポートしています。

カテゴリ言語
Web フロントエンドTypeScript, JavaScript
バックエンドPython, Java, Go, Rust, PHP
モバイルKotlin, Swift
システムC, C++, C#

Tree-sitter ベースのパーサーを使用しているため、言語ごとの AST 解析が高精度で行えます。

MCP 連携 — AI エージェントに「構造的知識」を渡す

7 つの MCP ツール

GitNexus の真価は、解析したナレッジグラフを MCP ツールとして AI コーディングツールに提供する点にあります。

GitNexus が提供する 7 つの MCP ツール:

  1. gitnexus_list_repos:
     インデックス済みリポジトリの一覧
     → 「どのプロジェクトが解析済みか」

  2. gitnexus_query:
     BM25 + セマンティックのハイブリッド検索
     → 「認証に関連するコードはどこ?」

  3. gitnexus_context:
     特定シンボルの完全なコンテキスト取得
     → 「この関数の呼び出し元・呼び出し先は?」

  4. gitnexus_impact:
     変更の影響範囲(ブラストラディウス)分析
     → 「この関数を変えたら何が壊れる?」

  5. gitnexus_detect_changes:
     前回のインデックスからの変更検出
     → 「最後の解析から何が変わった?」

  6. gitnexus_rename:
     安全なリネーム(全参照箇所の特定)
     → 「この関数名を変えるとき、どこを直す?」

  7. gitnexus_cypher:
     Cypher クエリでグラフを直接検索
     → 上級者向け、任意のグラフクエリ実行

ブラストラディウス分析

7 つのツールの中で最も強力なのが gitnexus_impact(ブラストラディウス分析)です。

ブラストラディウス分析の例:

  入力: 「UserService.authenticate() を変更した場合の影響は?」

  出力:
    深度 1(直接影響): 信頼度 95%
      ├── LoginController.handleLogin()
      ├── AuthMiddleware.verify()
      └── SessionManager.create()

    深度 2(間接影響): 信頼度 78%
      ├── DashboardController.index()
      ├── APIGateway.authorize()
      ├── WebSocketHandler.onConnect()
      └── AdminPanel.checkAccess()

    深度 3(波及影響): 信頼度 45%
      ├── NotificationService.send()
      └── AuditLogger.log()

  → 「変更の波及が視覚的に分かる」

深度(depth)ごとに信頼度スコアが付与されるため、「どこまで注意深くテストすべきか」の判断材料になります。深度 1 は確実に影響を受ける箇所、深度 3 は間接的に影響する可能性がある箇所です。なお、関係性の種類によっても信頼度は異なり、CALLS(呼び出し)は 70〜95%、IMPORTS(インポート)は 85〜95% といった範囲で算出されます。

使い方

インストールと基本操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# インストール
npm install -g gitnexus

# コードベースの解析(インデックス構築)
npx gitnexus analyze /path/to/your/project

# MCP サーバーとして起動
gitnexus mcp

# Wiki 形式でドキュメント生成
gitnexus wiki

Claude Code との連携

Claude Code では、MCP 設定に GitNexus を追加するだけで連携できます。

1
2
3
4
5
6
7
8
{
  "mcpServers": {
    "gitnexus": {
      "command": "gitnexus",
      "args": ["mcp"]
    }
  }
}

設定後、Claude Code は自動的に GitNexus の MCP ツールを認識し、コードに関する質問に対してナレッジグラフを活用した回答を返すようになります。

エディタ対応状況

エディタMCPSkillsPreToolUse Hooks
Claude Code
Cursor-
Windsurf--
OpenCode-

Claude Code が最も深い統合を実現しており、PreToolUse Hooks により「ファイル編集前に自動で影響範囲を確認する」といった使い方が可能です。

Graph RAG — なぜ「グラフ」なのか

テキスト検索 vs グラフ検索

GitNexus が採用する Graph RAG(グラフベースの検索拡張生成)は、従来のテキストベース RAG とは根本的に異なるアプローチです。

テキストベース RAG(従来):
  コード → テキストチャンク化 → ベクトル化
  クエリ → ベクトル検索 → 類似チャンク取得
  → 問題: 「文字列が似ている」コードが返る
  → 構造的な関係性は失われる

Graph RAG(GitNexus):
  コード → AST 解析 → グラフ化(ノード + エッジ)
  クエリ → グラフ走査 → 関連ノード取得
  → 「構造的に関連している」コードが返る
  → 呼び出し関係、継承関係が保持される

たとえば「認証に関連するコード」を検索する場合、テキスト RAG は authloginpassword といった文字列を含むコードを返します。一方、Graph RAG は認証関数から呼び出しグラフを辿り、直接 auth という文字列を含まなくても構造的に認証フローに関与しているコードを返せます。

事前計算の価値

GitNexus のもう一つの重要な設計判断は、グラフの事前計算です。

毎回解析する方式:
  質問 → ファイル読み込み → 解析 → 回答
  → 遅い、コンテキスト消費大、精度ばらつき

事前計算する方式(GitNexus):
  初回: コードベース → 7 段階解析 → グラフ DB に保存
  質問 → グラフ DB 検索 → 即座に回答
  → 高速、コンテキスト節約、一貫した精度

一度インデックスを構築すれば、その後の検索はグラフ DB へのクエリのみで済むため、AI ツールのコンテキストウィンドウを消費しません。

類似ツールとの比較

コード知能ツールの分類

GitNexus と類似のアプローチを取るツールは他にもあります。

ツールアプローチサーバー対象
GitNexusナレッジグラフ + MCP不要AI コーディングツール
Sourcegraphコード検索 + インデックス必要ブラウザ / IDE
GitHub Code Searchテキスト検索 + シンボルGitHub サーバーブラウザ
tree-sitterAST 解析ライブラリ不要エディタプラグイン
LSP(Language Server)言語ごとのサーバー必要IDE

GitNexus の差別化ポイント

GitNexus が他と異なる点:

  1. ゼロサーバー:
     KuzuDB の組み込み型アーキテクチャにより
     別途プロセスを起動する必要がない
     → Sourcegraph のようなインフラ不要

  2. MCP ネイティブ:
     AI コーディングツールとの連携を前提に設計
     → LSP が IDE 向けなのに対し、GitNexus は AI 向け

  3. クロス言語:
     12 言語を統一的に解析
     → 言語ごとの LSP を個別に設定する必要がない

  4. ブラストラディウス:
     変更の影響範囲を深度付きで分析
     → 他のツールにはない独自機能

  5. マルチリポジトリ:
     複数リポジトリを同時にインデックス・検索可能
     → マイクロサービス環境での横断的な依存分析

ライセンスと注意点

PolyForm Noncommercial ライセンス

GitNexus は PolyForm Noncommercial License を採用しています。個人利用・学習目的では無料ですが、商用利用には別途ライセンスが必要です。OSS プロジェクトでよく見る MIT / Apache ライセンスとは異なるため、業務利用を検討する場合は注意が必要です。

KuzuDB のスポンサー離脱

GitNexus が依存する KuzuDB は、元スポンサーの Kùzu Inc. が 2025 年 10 月に開発から撤退しています。ただし MIT ライセンスのオープンソースであるため、Kineviz 社による Bighorn フォークなどコミュニティ主導の開発が継続しています。GitNexus のようなプロジェクトが KuzuDB の実用的なユースケースを示すことで、エコシステムの維持に貢献しています。

小さな LLM でも使える設計

GitNexus の興味深い主張として、「ツール側がアーキテクチャの重い処理を行えば、小さな言語モデルでも実用的になる」というものがあります。ナレッジグラフの事前計算により、LLM が行うべき推論の負荷が軽減されるため、ローカル LLM との組み合わせでも一定の成果が得られる可能性があります。

エンジニアへの示唆

「コードを書く」から「コードの関係を知る」へ

AI コーディングツールの普及により、コードを書く速度は劇的に向上しました。しかし、コードを変更する際の影響範囲を把握する能力は、まだ人間の経験と勘に依存している部分が大きいのが現状です。

AI コーディングの現在:

  コード生成: AI が得意(高速、高品質)
  コード理解: AI がまあまあ得意(ファイル単位)
  影響範囲把握: AI が苦手(コードベース全体の関係性)
  ← GitNexus がここを補う

GitNexus のようなツールは、「AI がコードを書き、人間がレビューする」というワークフローにおいて、レビュー者が影響範囲を素早く把握するための武器になります。

MCP エコシステムの成熟

GitNexus は、MCP(Model Context Protocol)エコシステムの成熟を示す好例でもあります。

MCP ツールの進化:

  第 1 世代: 単純なデータ提供
    ファイル読み書き、Web 検索 など
    → 「外部データへのアクセス」

  第 2 世代: 専門知識の提供(← GitNexus はここ)
    コード構造分析、ドメイン知識 など
    → 「解析済みの知識へのアクセス」

  第 3 世代: 自律的なワークフロー
    CI/CD 連携、自動テスト、デプロイ など
    → 「アクションの実行」

GitNexus は単にデータを渡すのではなく、事前に解析・構造化された知識を AI に提供します。この「知識の事前計算」というパターンは、今後の MCP ツール開発においても重要なアーキテクチャになるでしょう。

まとめ

  • ゼロサーバーコード知能エンジン: GitNexus はサーバー不要で、コードベースをローカルのナレッジグラフに変換する。KuzuDB を使った組み込み型アーキテクチャで完全にローカル完結
  • 7 段階の深い解析: 構造→AST→インポート→呼び出し→継承→コミュニティ→プロセスの 7 フェーズでコードの関係性を網羅的に把握
  • ブラストラディウス分析が最大の武器: 変更の影響範囲を深度別・信頼度付きで可視化。「この関数を変えたら何が壊れるか」に構造的に答える
  • MCP で AI ツールと連携: 7 つの MCP ツールと 8 つの MCP リソースを提供。Claude Code、Cursor、Windsurf、OpenCode に対応
  • 12 言語サポート: TypeScript から Rust まで主要言語を統一的に解析。Tree-sitter ベースで高精度
  • Graph RAG の実践例: テキストベースの検索ではなく、グラフ走査による構造的な関連コード取得。事前計算によりコンテキスト消費を抑制
  • 「コードの関係を知る」時代: AI がコードを書く速度が上がるほど、影響範囲の把握が重要になる。GitNexus はレビュー者の武器になるツール

参考