rpg-encoder
AI コーディングエージェントは、ツール呼び出しの大半を grep、cat、find、ファイル読み取りによるコードベースの手探りに費やしています。rpg-encoder はそれを解決します。Tree-sitter を使ってコードのセマンティックグラフを構築し、「何が何を呼ぶか」だけでなく「各関数が何をするか」を捉え、MCP 経由で単一のツール呼び出しにより AI アシスタントにリポジトリ全体の理解を与えます。
クイックスタート
claude mcp add rpg -- npx -y -p rpg-encoder rpg-mcp-server1 つのコマンドで完了します。Claude Code、Cursor、opencode、Windsurf、その他 MCP 互換エージェントで動作します。Rust ツールチェーンも、クローンも、ビルドも不要です。npx がプラットフォーム向けのビルド済みバイナリをダウンロードします。
あとは任意のリポジトリを開いて、エージェントにこう伝えるだけです:
"このリポジトリの RPG をビルドしてリフトしてください"
エージェントがすべて処理します: エンティティのインデックス化(数秒)、各関数の読み取りと意図レベルのフィーチャー追加(数分)、それらをセマンティック階層に整理し、チーム用に .rpg/graph.json をコミットします。
~100+ エンティティのリポジトリでは、lifting_status がエージェントにリフティングループをサブエージェントまたは低コストモデルへ委任するよう指示します。フィーチャー抽出はパターンマッチングであり、新しい推論ではないからです。ランタイムにサブエージェントの仕組みがない場合は、API キーを指定してターミナルで rpg-encoder lift --provider anthropic|openai を実行してください。CLI がエージェントを介さず外部 LLM を直接駆動します。CLI の完了後、セッション内で reload_rpg を呼び出して更新されたグラフを読み込みます。CLI はフィーチャーを持たないエンティティをリフトします。コード変更後に陳腐化したエンティティ(フィーチャーはあるが古い)の再リフトは、CLI ではなくセッション内の MCP フローで処理されます。
リフトが完了したら、試してみてください:
"認証を処理しているのは何?" — "auth" と名付けられたものがどこにもなくてもコードを見つけます
"データベース接続に依存するすべてを表示して"
"API エンドポイントにレート制限を追加する変更を計画して"
Related MCP server: code-intel
grep、cat、find より先に RPG を使う
サーバー指示は、コードの構造や動作に関するあらゆる質問について、エージェントにまず RPG ツールを最初に使うよう指示します。この反射が重要です。grep、cat、場当たり的なファイル読み取りはトークンを浪費し、RPG がすでに把握しているセマンティックな関係を見逃します。
従来はこれを使っていた場合 | 代わりにこれを使う |
|
|
|
|
|
|
呼び出し元/呼び出し先を探す連鎖的な grep |
|
「X に依存しているもの」を探す再帰 grep |
|
|
|
文脈把握のための多数のファイル読み取り |
|
手動の検索 → 取得 → 探索の連鎖 |
|
「X を安全にリファクタリングする方法」 |
|
grep、cat、ファイル読み取りにフォールバックするのは、クエリがリテラルテキスト(文字列検索、コメント、TODO、ログメッセージ)に関する場合だけにしてください。構造に関するものではありません。
仕組み
パース — Tree-sitter が 15 言語からエンティティ(関数、クラス、メソッド)と依存関係エッジ(インポート、呼び出し、継承)を抽出します。
リフト — LLM(エージェント、または Haiku のような低コスト API)が各エンティティを読み取り、動詞-目的語のフィーチャーを記述します: "JWT トークンを検証する"、"設定をディスクにシリアライズする"。
組織化 — フィーチャーが 3 レベルのセマンティック階層(エリア → カテゴリ → サブカテゴリ)にクラスタリングされます。これはファイルツリーではなく、コードが何をするかから生成されます。
理解 —
semantic_snapshotがグラフ全体を ~25K トークンに圧縮します。LLM はそれを一度読むだけでリポジトリを把握できます。
セマンティックスナップショット
ファイルを grep する代わりに、LLM は semantic_snapshot を 1 回呼び出して以下を受け取ります:
階層 — 集約フィーチャーを持つすべての機能エリア
エンティティ — エリアごとにグループ化されたすべての関数、クラス、メソッドと、そのセマンティックなフィーチャー
依存関係スケルトン — 修飾名付きの凝縮されたコールグラフ
ホットスポット — 最も接続数の多い上位 10 エンティティ(アーキテクチャの背骨)
~25K トークンで ~1000 エンティティをカバーします。これは 1M コンテキストウィンドウの 2〜3% です。LLM は毎セッション、リポジトリを把握した状態で開始します。
自己メンテナンスグラフ
作業ツリーが変更されるたび(コミット済み、ステージ済み、未ステージのいずれでも)、MCP サーバーは次のクエリに応答する前に自動的に再同期します。(path, size, mtime) に対するチェンジセットハッシュにより、同じファイルの繰り返し保存は 1 回の同期にまとめられ、アイドル状態のクエリでは同期は発生しません。リバートも検出されます。以前ダーティだったファイルが HEAD 状態に戻った場合、グラフが復元されます。
2 つのリフト方法
モード | コマンド | コスト | 支払い元 |
エージェントリフティング | "RPG をビルドしてリフト" | サブスクリプショントークン | あなたの Claude Code / Cursor サブスクリプション |
自律リフティング |
| 100 エンティティあたり ~$0.02 | 外部 API キー(Haiku、GPT-4o-mini、OpenRouter、Gemini) |
auto_lift は低コストの外部 LLM を直接呼び出します。コーディングサブスクリプションがリフティング作業に関与することはありません。api_key_env を使用して環境変数からキーを解決することで、キーがツール呼び出しのトランスクリプトに一切表示されないようにできます。
アーキテクチャ
7 つの Rust クレート、1 つの MCP サーバーバイナリ、1 つの CLI バイナリ:
クレート | 役割 |
| グラフ型(RPGraph、Entity、HierarchyNode)、ストレージ、LCA アルゴリズム |
| Tree-sitter によるエンティティ + 依存関係の抽出(15 言語) |
| エンコーディングパイプライン、リフティングユーティリティ、段階的進化 |
| 検索、取得、探索、スナップショット、TOON シリアライゼーション |
| 自律 LLM リフティング(Anthropic、OpenAI、OpenRouter、Gemini) |
| CLI バイナリ( |
| 27 のツールを備えた MCP サーバーバイナリ( |
MCP ツール (27)
ツール | 説明 |
| コードベースをインデックス化(1 回実行するだけ、即時) |
| git の変更から段階的に更新 |
| 外部変更後にディスクからグラフを再読み込み |
| グラフ統計、階層概要、エリアごとのリフティングカバレッジ |
ツール | 説明 |
| 1 回の呼び出しでリポジトリ全体をセマンティックに理解(1000 エンティティで約 ~25K トークン) |
| 意図またはキーワードでエンティティを検索(ハイブリッド埋め込み + 字句スコアリング) |
| エンティティのメタデータ、ソースコード、依存関係、階層コンテキストを取得 |
| 依存グラフを走査(上流、下流、またはその両方) |
| トークン予算付きの検索 + 取得 + 探索を 1 回の呼び出しで実行 |
ツール | 説明 |
| BFS 到達可能性分析 —「X に依存しているものは?」 |
| 変更計画 — 関連エンティティ、変更順序、影響範囲の特定 |
| 2 つのエンティティ間の K 最短依存パス |
| エンティティ間の最小接続サブグラフを抽出 |
| コードヘルス: 結合度、不安定性、神クラス、クローン検出 |
| 循環依存とアーキテクチャ上の循環を検出 |
| 依存関係を安全に考慮した再構築実行計画 |
ツール | 説明 |
| 安価な LLM API(Haiku、GPT-4o-mini、OpenRouter、Gemini)によるワンコール自律リフティング |
| ダッシュボード — カバレッジ、エリア別進捗、NEXT STEP |
| エージェントが解析するエンティティのソースコードを取得 |
| エージェントのセマンティック特徴をグラフに送り返す |
| ファイルレベルの特徴を集約し、階層メタデータを再構築 |
| 全体的な合成のためのファイルレベルのエンティティ特徴を取得 |
| ファイルレベルの全体的な要約を送信 |
| ドメイン発見 + 階層割り当てプロンプトを取得 |
| 階層割り当てをグラフに適用 |
| セマンティックルーティングが必要なエンティティを取得(ドリフトした、または新たにリフトされたもの) |
| ルーティング決定(階層パスまたは "keep")を送信 |
対応言語
Tree-sitter による15言語:
言語 | エンティティ抽出 | 依存関係の解決 |
Python | 関数、クラス、メソッド | インポート、呼び出し、継承 |
Rust | 関数、構造体、トレイト、implメソッド | use、呼び出し、trait impls |
TypeScript | 関数、クラス、メソッド、インターフェース | インポート、呼び出し、継承 |
JavaScript | 関数、クラス、メソッド | インポート、呼び出し、継承 |
Go | 関数、構造体、メソッド、インターフェース | インポート、呼び出し |
Java | クラス、メソッド、インターフェース | インポート、呼び出し、継承 |
C / C++ | 関数、クラス、メソッド、構造体 | includes、呼び出し、継承 |
C# | クラス、メソッド、インターフェース | using、呼び出し、継承 |
PHP | 関数、クラス、メソッド | use、呼び出し、継承 |
Ruby | クラス、メソッド、モジュール | require、呼び出し、継承 |
Kotlin | 関数、クラス、メソッド | インポート、呼び出し、継承 |
Swift | 関数、クラス、構造体、プロトコル | インポート、呼び出し、継承 |
Scala | 関数、クラス、オブジェクト、トレイト | インポート、呼び出し、継承 |
Bash | 関数 | source、呼び出し |
インストール
MCP サーバー(推奨)
# Claude Code
claude mcp add rpg -- npx -y -p rpg-encoder rpg-mcp-server
# Cursor — add to ~/.cursor/mcp.json
{
"mcpServers": {
"rpg": {
"command": "npx",
"args": ["-y", "-p", "rpg-encoder", "rpg-mcp-server"]
}
}
}サーバーは現在の作業ディレクトリからプロジェクトルートを自動検出します — パス引数は不要です。
npm install -g rpg-encoder
# Build a graph
rpg-encoder build
# Query
rpg-encoder search "parse entities from source code"
rpg-encoder fetch "src/parser.rs:extract_entities"
rpg-encoder explore "src/parser.rs:extract_entities" --direction both --depth 2
rpg-encoder info
# Autonomous lifting via API
rpg-encoder lift --provider anthropic --dry-run # estimate cost
rpg-encoder lift --provider anthropic # lift with Haiku (~$0.02/100 entities)
# Incremental update
rpg-encoder update
# Pre-commit hook (auto-updates graph on commit)
rpg-encoder hook installgit clone https://github.com/userFRM/rpg-encoder.git
cd rpg-encoder && cargo build --release次に、MCP 設定で target/release/rpg-mcp-server を指定します。
ドキュメント
RPG の比較 — GitNexus、Serena、Repomix などとの率直な比較
論文の忠実性 — 研究論文とのアルゴリズムごとの比較
ユースケース — RPG が実現する実践的な使用例
CHANGELOG — リリース履歴
インスピレーションと参考文献
rpg-encoder は、RPG-Encoder 研究論文の理論的枠組みに基づいており、コードインテリジェンス分野のさまざまなツールから着想を得た独自の拡張機能を備えています。
RPG-Encoder 論文(Luo ら、2026 年、Microsoft Research)— セマンティックリフティングモデル、3レベル階層構築、インクリメンタル進化アルゴリズム、形式グラフモデル
G = (V_H ∪ V_L, E_dep ∪ E_feature)。GitNexus — 事前計算された関係インテリジェンス、影響範囲分析、Claude Code フック。コードグラフツールは、不可視であってこそ不可欠になれることを示した。
Serena — LSP によるシンボルレベルの精度。リアルタイムのコード認識がバッチ分析よりも重要であることを実証した。
TOON — LLM 向けに最適化された出力のための Token-Oriented Object Notation。
これは独立した実装です。すべてのコードは MIT ライセンスの下で作成されたオリジナル作品です。Microsoft とは提携しておらず、Microsoft による推奨も受けていません。
ライセンス
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityAmaintenanceSupercharges AI coding agents with a pre-indexed semantic code graph, enabling instant symbol relationships, impact analysis, and context retrieval across 20+ languages.83,49166,716MIT
- Alicense-qualityCmaintenanceProvides semantic code search and code insights via a knowledge graph, enabling AI to understand, navigate, and modify complex projects with deep dependency and architecture analysis.MIT
- Alicense-qualityCmaintenanceProvides a semantic understanding of your codebase by parsing with tree-sitter and building a graph of symbols and dependencies. Enables AI assistants to navigate code, analyze changes, and discover architecture using 18 tools with minimal context overhead.121MIT
- Alicense-qualityBmaintenanceSupercharges AI coding agents with semantic code intelligence, providing pre-built knowledge graphs for surgical context, faster answers, and fewer tool calls.MIT
Related MCP Connectors
Give your AI agent a persistent map of your project's structure, dependencies, and bugs.
Your company's brain for AI agents. Cited, permission-aware knowledge across every system.
AI Agent with Architectural Memory. Impact analysis (free), tests and code from the graph (pro).
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/userFRM/rpg-encoder'
If you have feedback or need assistance with the MCP directory API, please join our Discord server