2026. 05. 07. / TECH · 7 min read
Serena vs Graphify — AIコード検索、どちらが強い?
どちらもMCPベースのコード検索ツールだが、アプローチが全く違う。どの状況で何を使うべきかをまとめた

AIアシスタントにコードベースを連携させる方法が増える中、SerenaとGraphifyがよく挙げられる。
どちらもMCPベース、どちらも「コード検索をより上手くする」と言っているが、比較してみるとアプローチが全く違う。
Serena
SerenaはMCPサーバー形態のコードインテリジェンスツールだ。
IDEがコードを理解する方式 — LSP(Language Server Protocol) — をAIアシスタントがそのまま使えるように繋げてくれる。
核心はシンボル単位のナビゲーションだ。
ファイルを行単位で読むのではなく、関数、クラス、型のようなシンボルを基準にコードを探索する。
find_symbol("getUserById")
→ 定義: src/services/user.ts:42
→ 呼び出し元: auth.ts:18, routes.ts:67
→ シグニチャ: (id: string) => Promise<User>
対応言語は40以上。Python、TypeScript、Java、Rust、Go、C++全部対応。
主要機能:
find_symbol— シンボル定義を探すfind_referencing_symbols— このシンボルを参照している場所を全部探すinsert_after_symbol— シンボル基準の精密編集
一言まとめ: AIがIDEのようにコードを探索できるようにするツール
Graphify
Graphifyはコードベース全体を知識グラフに変換するツールだ。
コード、ドキュメント、SQLスキーマ、さらには画像や動画まで — プロジェクト内の全てをノードとエッジで表現する。
動作方式が独特だ。
LLMやベクターDBを使わない。Tree-sitter ASTパーシングでコード構造を先に分析して、そこから関係を抽出してグラフを作る。
関数A ──calls──→ 関数B
クラスC ──imports──→ モジュールD
ドキュメントE ──describes──→ クラスC
関係には出典がタグ付けされる:
EXTRACTED— コードから直接見つかった関係INFERRED— 確率的に推論した関係(信頼度スコア付き)AMBIGUOUS— 不確かな関係
/graphifyコマンド一つでプロジェクトがインタラクティブHTMLグラフとして可視化される。
MCPでインストールするとこんな関数が使える:
query_graph("認証関連の関数")
get_neighbors("UserService")
shortest_path("LoginController", "Database")
一言まとめ: コードベースを地図化してAIが全体構造を把握できるようにするツール
決定的な違い
| Serena | Graphify | |
|---|---|---|
| 探索単位 | シンボル(関数・クラス・型) | ノード・エッジ(関係グラフ) |
| 分析方式 | LSP(言語サーバー) | Tree-sitter AST + セマンティック抽出 |
| ベクターDB | なし | なし |
| マルチモーダル | コード専用 | コード・ドキュメント・画像・動画 |
| 可視化 | なし | インタラクティブHTMLグラフ |
| プライバシー | ローカル | ローカル(外部APIなし) |
| インストール | MCPサーバー | pip install 'graphifyy[mcp]' |
検索でどちらが有利か
Serenaが強い状況
「この関数はどこで使われているか」が気になる時
シンボルリファレンスの追跡が目的ならSerenaが格段に速い。find_referencing_symbols一回でプロジェクト全体から該当シンボルを参照している場所を全部捕捉する。
リファクタリング前のインパクト確認
関数シグニチャを変える前に「どこが壊れるか」を確認する時。LSPベースなので言語別の型情報まで含めて分析してくれる。
精密なコード編集
AIに「このクラスのこのメソッドだけ修正して」を指示する時。行番号ではなくシンボル基準で編集するから格段に安定している。
Graphifyが強い状況
「この機能がシステム全体でどんな位置にあるか」が気になる時
Serenaは特定シンボルの関係を追跡し、Graphifyはプロジェクト全体の構造を地図に描く。
「認証モジュールがどう繋がっているか」、「このマイクロサービス間の依存関係は何か」のような質問にはGraphifyが適している。
トークン効率が重要な時
Graphifyが公開している数値がある:
52ファイルのプロジェクト基準 Graphifyなし: 約123,000トークン Graphify使用: 約1,700トークン 約71.5倍削減
グラフトポロジーで探索するためAIにファイル内容を全て渡さなくていい。
コード以外の資料が混在している時
設計文書、API仕様PDF、ERD画像がコードと一緒にあるプロジェクトなら、これを一つのグラフで繋げられるのはGraphifyだけだ。
一緒に使うこともできる
二つは競争関係にない。レイヤーが違う。
- Graphify: 全体構造の把握 → 「どこを見るべきか」
- Serena: 特定シンボルの探索 → 「そこで正確に何をすべきか」
大きなコードベースで作業する時は順番を分ければいい:
- Graphifyで関連モジュールと関係を把握
- Serenaでそれらのシンボルを精密に探索・編集
選択基準まとめ
| こういう必要がある | 使うもの |
|---|---|
| 特定の関数・クラスの追跡 | Serena |
| リファクタリング前の依存性分析 | Serena |
| AIコード編集精度の向上 | Serena |
| プロジェクト全体の構造把握 | Graphify |
| トークンコスト削減 | Graphify |
| コード+ドキュメント+画像の統合検索 | Graphify |
| チームオンボーディング、コードベース可視化 | Graphify |
ツール選択はシンプルだ。
「どこを見ればいいか分からない」 → Graphifyから 「どこを見ればいいかは分かるが、正確に何なのか分からない」 → Serena

