rpg-encoder MCP sunucusu
✓ Doğrulandıtree-sitter kullanarak semantik bir kod grafiği oluşturur ve yapay zeka ajanlarına tek bir araç çağrısı ile tüm depoya dair derinlemesine bir anlayış sağlar.
Ayrıca bilinen adı userFRM/rpg-encoder
- Yıldızlar
- 33
- Araçlar
- 27
- İndirmeler, 30 gün
- —
- En son sürüm
- 0.6.7
- Son commit
- 29 May 2026
- Lisans
- MIT
rpg-encoder MCP nedir?
rpg-encoder bir MCP sunucusudur. tree-sitter kullanarak semantik bir kod grafiği oluşturur ve yapay zeka ajanlarına tek bir araç çağrısı ile tüm depoya dair derinlemesine bir anlayış sağlar. 27 araç sunar; örneğin build_rpg, update_rpg, reload_rpg.
Özet, projenin README dosyasından oluşturuldu
rpg-encoder MCP sunucusu hakkında
rpg-encoder, yapay zeka kodlama ajanlarına yapılandırılmış bir grafik aracılığıyla tüm kod tabanlarının derin ve semantik bir anlayışını sunar. Bu server, grep veya cat gibi temel metin aramalarına güvenmek yerine, 15 farklı dili ayrıştırmak ve sınıflar, metodlar ve fonksiyonlar gibi işlevsel varlıkları çıkarmak için tree-sitter kullanır. Kodun sadece dosya yapısına değil, gerçekte ne yaptığına dayalı bir hiyerarşi oluşturur.
Geliştiriciler, bu server'ı tek bir npx komutu kullanarak Claude Code, Cursor veya Windsurf gibi MCP uyumlu istemcilerle entegre edebilirler. Sistem yerel olarak çalışır ve bir LLM'in her varlığa niyet düzeyinde özellikler eklediği bir lifting süreciyle geliştirilebilir. Büyük depolar için kullanıcılar, ana ajan tokenlarını tüketmeden varlıkları verimli bir şekilde işlemek amacıyla Anthropic veya OpenAI gibi sağlayıcılardan alınan harici bir API anahtarı ile otonom lifting modunu kullanabilirler.
Grafik oluşturulduktan sonra, semantic_snapshot aracı, karmaşık kaynak kodunu yönetilebilir bir token sayısına sıkıştırarak bir ajanın tek bir çağrıda tüm depoyu kavramasına olanak tanır. Bu durum, tüm proje mimarisi üzerinde daha akıllı planlama, etki analizi ve navigasyon yapılmasını sağlar.
Projenin README dosyasından alınmıştır. Her kullanım durumu, oradaki bir alıntı ile kontrol edilir.
rpg-encoder MCP nasıl yüklenir
Biçimler 10 Kas 2026 tarihinde doğrulandıCursor'a ekleGoose'a eklerpg-encoder MCP'yi Claude Code içine yükleyin
$ claude mcp add rpg-encoder -- npx -y rpg-encoderrpg-encoder MCP'yi Cursor içine yükleyin
~/.cursor/mcp.json
{
"mcpServers": {
"rpg-encoder": {
"command": "npx",
"args": [
"-y",
"rpg-encoder"
]
}
}
}rpg-encoder MCP'yi VS Code içine yükleyin
.vscode/mcp.json
{
"servers": {
"rpg-encoder": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"rpg-encoder"
]
}
}
}rpg-encoder MCP'yi VS Code CLI içine yükleyin
$ code --add-mcp '{"name":"rpg-encoder","type":"stdio","command":"npx","args":["-y","rpg-encoder"]}'rpg-encoder MCP'yi Claude Desktop içine yükleyin
claude_desktop_config.json
{
"mcpServers": {
"rpg-encoder": {
"command": "npx",
"args": [
"-y",
"rpg-encoder"
]
}
}
}rpg-encoder MCP'yi Codex içine yükleyin
$ codex mcp add rpg-encoder -- npx -y rpg-encoderrpg-encoder MCP'yi Codex config.toml içine yükleyin
~/.codex/config.toml
[mcp_servers.rpg-encoder] command = "npx" args = ["-y", "rpg-encoder"]
rpg-encoder MCP'yi Gemini CLI içine yükleyin
$ gemini mcp add -s user rpg-encoder npx -- -y rpg-encoderrpg-encoder MCP'yi Gemini settings.json içine yükleyin
~/.gemini/settings.json
{
"mcpServers": {
"rpg-encoder": {
"command": "npx",
"args": [
"-y",
"rpg-encoder"
]
}
}
}rpg-encoder MCP araçları 27
README dosyasından algılandıbuild_rpgupdate_rpgreload_rpgrpg_infosemantic_snapshotsearch_nodefetch_nodeexplore_rpgcontext_packimpact_radiusplan_changefind_paths
| build_rpg | — | |
| update_rpg | — | |
| reload_rpg | — | |
| rpg_info | — | |
| semantic_snapshot | — | |
| search_node | — | |
| fetch_node | — | |
| explore_rpg | — | |
| context_pack | — | |
| impact_radius | — | |
| plan_change | — | |
| find_paths | — |
27 aracın tümünü gösterDaha az araç göster
slice_betweenanalyze_healthdetect_cyclesreconstruct_planauto_liftlifting_statusget_entities_for_liftingsubmit_lift_resultsfinalize_liftingget_files_for_synthesissubmit_file_synthesesbuild_semantic_hierarchysubmit_hierarchyget_routing_candidatessubmit_routing_decisions
| slice_between | — | |
| analyze_health | — | |
| detect_cycles | — | |
| reconstruct_plan | — | |
| auto_lift | — | |
| lifting_status | — | |
| get_entities_for_lifting | — | |
| submit_lift_results | — | |
| finalize_lifting | — | |
| get_files_for_synthesis | — | |
| submit_file_syntheses | — | |
| build_semantic_hierarchy | — | |
| submit_hierarchy | — | |
| get_routing_candidates | — | |
| submit_routing_decisions | — |
Otomatik kontroller
Çalıştırıldı 14 Kas 2026Tam rapor →Otomatik kontrollerimizden geçti. Bu bir güvenlik denetimi değildir: kodu okuyun ve sunucuya ihtiyaç duyduğu en dar erişimi verin. Kontroller nasıl çalışır
- Kaynak deposu bağlantılı ve erişilebiliruserfrm/rpg-encoder is public and reachablegithub.com/userfrm/rpg-encoder ↗Geçti
- Paket, bu depoyu kaynağı olarak gösteriyorrpg-encoder names userfrm/rpg-encoder as sourcenpmjs.com/package/rpg-encoder ↗Geçti
- Derleme kökeni (Sigstore onayı)Sigstore attestation for rpg-encodernpmjs.com/package/rpg-encoder/v/0.6.7#provenance ↗Geçti
- Açık kaynak lisansı (OSI)MITspdx.org/licenses/MIT.html ↗Geçti
- Son bir yıl içinde commit veya sürüm mevcutLast commit or release 2026-05-29github.com/userfrm/rpg-encoder ↗Geçti
- OpenSSF ScorecardKontrol edilmedi
- Paket adı popüler bir pakete yakın değilNo popular package one edit away from rpg-encoderGeçti
- Pakette veya bağımlılıklarında kritik uyarı yok1 resolved dependencies checked; no critical advisoryosv.dev ↗Geçti
- Modele yönelik gizli talimat yok27 tool descriptions and the README read; no override phrases, credential paths or hidden charactersGeçti
- Yıkıcı araçlar etiketlenmişNo tool named like delete, drop or execGeçti
- Uzak uç nokta MCP el sıkışmasına yanıt veriyorKontrol edilmedi
AI coding agents waste most of their tool calls fumbling through your codebase with grep, cat, find, and file reads. rpg-encoder fixes that. It builds a semantic graph of your code with Tree-sitter — not just what calls what, but what every function does — and gives your AI assistant whole-repo understanding via MCP in a single tool call.
Quick Start
claude mcp add rpg -- npx -y -p rpg-encoder rpg-mcp-server
One command. Works with Claude Code, Cursor, opencode, Windsurf, or any MCP-compatible agent. No Rust toolchain, no cloning, no building — npx downloads a pre-built binary for your platform.
Then open any repo and tell your agent:
"Build and lift the RPG for this repo"
Your agent handles everything: indexes entities (seconds), reads each function and adds intent-level features (a few minutes), organizes them into a semantic hierarchy, and commits .rpg/graph.json for your team.
For repos with ~100+ entities, lifting_status will tell your agent to delegate the lifting loop to a sub-agent or a cheaper model — feature extraction is pattern-matching, not novel reasoning. If your runtime has no sub-agent mechanism, run rpg-encoder lift --provider anthropic|openai from the terminal with an API key — the CLI drives an external LLM directly with no agent involvement. After the CLI finishes, call reload_rpg in your session to load the updated graph. The CLI lifts entities with no features; re-lifting stale entities (features present but outdated after code changes) is handled by the in-session MCP flow, not the CLI.
Once lifted, try:
- "What handles authentication?" — finds code even when nothing is named "auth"
- "Show everything that depends on the database connection"
- "Plan a change to add rate limiting to API endpoints"
Use RPG before grep, cat, find
The server instructions tell your agent to reach for RPG tools FIRST for any
question about code structure or behavior. That reflex matters — grep, cat,
and ad-hoc file reads burn tokens and miss semantic relationships RPG already
knows.
| If you'd otherwise reach for... | Use this instead |
|---|---|
grep -r / rg (by intent) |
search_node(query="...") |
grep -r / rg (by name) |
search_node(query="...", mode="snippets") |
cat / reading a function |
fetch_node(entity_id="file:name") |
| chained greps for callers/callees | explore_rpg(entity_id="...", direction="...") |
| recursive grep for "what depends on X" | impact_radius(entity_id="...") |
wc -l / find / tree |
rpg_info |
| reading many files for context | semantic_snapshot |
| manual search → fetch → explore chains | context_pack(query="...") |
| "how do I refactor X safely" | plan_change(goal="...") |
Fall back to grep, cat, or file reads only when the query is about literal text
(string search, comments, TODOs, log messages) — not about structure.
How It Works
- Parse — Tree-sitter extracts entities (functions, classes, methods) and dependency edges (imports, calls, inheritance) from 15 languages.
- Lift — An LLM (your agent, or a cheap API like Haiku) reads each entity and writes verb-object features: "validate JWT tokens", "serialize config to disk".
- Organize — Features cluster into a 3-level semantic hierarchy (Area → Category → Subcategory) that emerges from what the code does, not the file tree.
- Understand —
semantic_snapshotcompresses the whole graph into ~25K tokens. Your LLM reads it once and knows the repo.
The semantic snapshot
Instead of grepping through files, the LLM calls semantic_snapshot once and receives:
- Hierarchy — every functional area with aggregate features
- Entities — every function, class, method grouped by area, with its semantic features
- Dependency skeleton — condensed call graph with qualified names
- Hot spots — top 10 most-connected entities (the architectural backbone)
~25K tokens covers ~1000 entities. That's 2-3% of a 1M context window — the LLM starts every session already knowing your repo.
Self-maintaining graph
Whenever your working tree changes — committed, staged, or unstaged — the MCP server automatically re-syncs before responding to the next query. A changeset hash over (path, size, mtime) means repeated saves of the same file trigger one sync, and idle queries trigger none. Reverts are detected too: if a previously-dirty file returns to its HEAD state, the graph is restored.
Two ways to lift
| Mode | Command | Cost | Who pays |
|---|---|---|---|
| Agent lifting | "Build and lift the RPG" | Subscription tokens | Your Claude Code / Cursor subscription |
| Autonomous lifting | auto_lift(provider="anthropic", api_key_env="ANTHROPIC_API_KEY") |
~$0.02 per 100 entities | External API key (Haiku, GPT-4o-mini, OpenRouter, Gemini) |
auto_lift calls a cheap external LLM directly — your coding subscription never touches the lifting work. Use api_key_env to resolve keys from environment variables so they never appear in tool call transcripts.
Architecture
Seven Rust crates, one MCP server binary, one CLI binary:
| Crate | Role |
|---|---|
rpg-core |
Graph types (RPGraph, Entity, HierarchyNode), storage, LCA algorithm |
rpg-parser |
Tree-sitter entity + dependency extraction (15 languages) |
rpg-encoder |
Encoding pipeline, lifting utilities, incremental evolution |
rpg-nav |
Search, fetch, explore, snapshot, TOON serialization |
rpg-lift |
Autonomous LLM lifting (Anthropic, OpenAI, OpenRouter, Gemini) |
rpg-cli |
CLI binary (rpg-encoder) |
rpg-mcp |
MCP server binary (rpg-mcp-server) with 27 tools |
MCP Tools (27)
| Tool | Description |
|---|---|
build_rpg |
Index the codebase (run once, instant) |
update_rpg |
Incremental update from git changes |
reload_rpg |
Reload graph from disk after external changes |
rpg_info |
Graph statistics, hierarchy overview, per-area lifting coverage |
| Tool | Description |
|---|---|
semantic_snapshot |
Whole-repo semantic understanding in one call (~25K tokens for 1000 entities) |
search_node |
Search entities by intent or keywords (hybrid embedding + lexical scoring) |
fetch_node |
Get entity metadata, source code, dependencies, and hierarchy context |
explore_rpg |
Traverse dependency graph (upstream, downstream, or both) |
context_pack |
Single-call search + fetch + explore with token budget |
| Tool | Description |
|---|---|
impact_radius |
BFS reachability analysis — "what depends on X?" |
plan_change |
Change planning — find relevant entities, modification order, blast radius |
find_paths |
K-shortest dependency paths between two entities |
slice_between |
Extract minimal connecting subgraph between entities |
analyze_health |
Code health: coupling, instability, god objects, clone detection |
detect_cycles |
Find circular dependencies and architectural cycles |
reconstruct_plan |
Dependency-safe reconstruction execution plan |
| Tool | Description |
|---|---|
auto_lift |
One-call autonomous lifting via cheap LLM API (Haiku, GPT-4o-mini, OpenRouter, Gemini) |
lifting_status |
Dashboard — coverage, per-area progress, NEXT STEP |
get_entities_for_lifting |
Get entity source code for your agent to analyze |
submit_lift_results |
Submit the agent's semantic features back to the graph |
finalize_lifting |
Aggregate file-level features, rebuild hierarchy metadata |
get_files_for_synthesis |
Get file-level entity features for holistic synthesis |
submit_file_syntheses |
Submit holistic file-level summaries |
build_semantic_hierarchy |
Get domain discovery + hierarchy assignment prompts |
submit_hierarchy |
Apply hierarchy assignments to the graph |
get_routing_candidates |
Get entities needing semantic routing (drifted or newly lifted) |
submit_routing_decisions |
Submit routing decisions (hierarchy path or "keep") |
Supported Languages
15 languages via Tree-sitter:
| Language | Entity Extraction | Dependency Resolution |
|---|---|---|
| Python | Functions, classes, methods | imports, calls, inheritance |
| Rust | Functions, structs, traits, impl methods | use, calls, trait impls |
| TypeScript | Functions, classes, methods, interfaces | imports, calls, inheritance |
| JavaScript | Functions, classes, methods | imports, calls, inheritance |
| Go | Functions, structs, methods, interfaces | imports, calls |
| Java | Classes, methods, interfaces | imports, calls, inheritance |
| C / C++ | Functions, classes, methods, structs | includes, calls, inheritance |
| C# | Classes, methods, interfaces | using, calls, inheritance |
| PHP | Functions, classes, methods | use, calls, inheritance |
| Ruby | Classes, methods, modules | require, calls, inheritance |
| Kotlin | Functions, classes, methods | imports, calls, inheritance |
| Swift | Functions, classes, structs, protocols | imports, calls, inheritance |
| Scala | Functions, classes, objects, traits | imports, calls, inheritance |
| Bash | Functions | source, calls |
Install
MCP server (recommended)
# 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"]
}
}
}
The server auto-detects the project root from the current working directory — no path argument needed.
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 install
git clone https://github.com/userFRM/rpg-encoder.git
cd rpg-encoder && cargo build --release
Then point your MCP config at target/release/rpg-mcp-server.
Documentation
- How RPG Compares — honest comparison with GitNexus, Serena, Repomix, and others
- Paper Fidelity — algorithm-by-algorithm comparison with the research paper
- Use Cases — practical examples of what RPG enables
- CHANGELOG — release history
Inspirations & References
rpg-encoder is built on the theoretical framework from the RPG-Encoder research paper, with original extensions inspired by tools across the code intelligence landscape:
- RPG-Encoder paper (Luo et al., 2026, Microsoft Research) — semantic lifting model, 3-level hierarchy construction, incremental evolution algorithms, formal graph model
G = (V_H ∪ V_L, E_dep ∪ E_feature). - GitNexus — precomputed relational intelligence, blast radius analysis, Claude Code hooks. Showed that a code graph tool must be invisible to be essential.
- Serena — symbol-level precision via LSP. Demonstrated that real-time code awareness matters more than batch analysis.
- TOON — Token-Oriented Object Notation for LLM-optimized output.
This is an independent implementation. All code is original work under the MIT license. Not affiliated with or endorsed by Microsoft.
License
rpg-encoder MCP soruları
rpg-encoder MCP'yi Claude Code'a nasıl eklerim?
Terminalinizde claude mcp add rpg-encoder -- npx -y rpg-encoder komutunu çalıştırın. Her projede kullanılabilir olması için --scope user ekleyin.
rpg-encoder MCP'yi Cursor'a nasıl eklerim?
~/.cursor/mcp.json dosyasını açın ve yukarıdaki yükleme bölümünde gösterilen Cursor yapılandırmasını kullanarak sunucuyu mcpServers altına ekleyin.
rpg-encoder MCP hangi araçları sunar?
27 araç sunar; bunlar arasında build_rpg, update_rpg, reload_rpg, rpg_info, semantic_snapshot yer alır.
rpg-encoder yapay zeka kodlama ajanlarına nasıl yardımcı olur?
grep ve cat gibi verimsiz dosya aramalarının yerine semantik bir grafik getirerek, ajanların tek bir anlık görüntü üzerinden fonksiyon niyetini ve depo yapısını anlamasını sağlar.
Lifting işlemini ajanımın tokenlarını kullanmadan nasıl çalıştırabilirim?
CLI kullanarak, Anthropic veya OpenAI gibi ucuz harici bir LLM sağlayıcısı üzerinden bir API anahtarı ile otonom lifting işlemini gerçekleştirebilirsiniz.
Grafik, kod değişikliklerimle birlikte güncel kalıyor mu?
Evet, MCP server dosyalar commit edildiğinde, stage edildiğinde veya unstaged yapıldığında, yani çalışma ağacınız her değiştiğinde grafiği otomatik olarak yeniden senkronize eder.