Zero-LLM structural code retrieval for AI coding agents, served over MCP.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Works withΒ
LanguagesΒ
Coding agents burn tokens reading whole files to find one function. SkeletonGraph indexes your repo with tree-sitter β no LLM β and hands the agent the exact function to edit, over MCP.
Index once with tree-sitter (no LLM) β three signals rank the same symbols β reciprocal-rank fusion returns the exact function, served to your agent over MCP.
The answer is rank 2, 3, and 2 across the three signals β top of none of them. Fusing is what puts it first.
SkeletonGraph is a retrieval engine purpose-built for coding agents, not a general
RAG library retrofitted onto code. It parses a repository into function-level
structure, a cross-file call graph, and PageRank centrality with zero LLM calls β
deterministic, cheap, and instant to rebuild after every edit. At query time it
resolves the symbols an issue names, walks the call graph outward, and reranks a
BM25 recall pool by structural confirmation so the agent lands on the right
function on the first try, instead of grepping and re-reading its way there. Its
leaner operating point, sg-rerank (the product default), skips the dense leg
entirely and still delivers the best file and function recall of any method we
benchmarked it against β at the lowest token cost of any of them.
The thesis: code-context tools have mostly been validated as a token-optimization game β how few tokens can you spend. SkeletonGraph re-centers the question on retrieval quality β did the agent land on the correct function β of which lower token cost turns out to be a consequence, measurable only end-to-end inside a real agent loop, not in an offline benchmark.
All numbers below are regenerated from the released run artifacts
(python -m eval.scripts.make_paper_figures). The full verified ledger, including
withdrawn claims, is in docs/paper/FINDINGS.md.
Identical action space for every arm; only the retrieval backend changes. The
none arm gets no code access at all and establishes the memorization floor.
| arm | pass@1 | file recall@1 | function hit | tokens (k) | turns | $/task |
|---|---|---|---|---|---|---|
sg-fusion | 42.0% | .737 | 57% | 180 | 21.9 | .052 |
bm25 | 41.0% | .642 | 43% | 264 | 24.6 | .074 |
graphify (knowledge graph) | 41.0% | .223 | 9% | 275 | 25.6 | .078 |
grep | 39.0% | .647 | 0% | 282 | 22.4 | .079 |
aider (repo-map) | 36.7% | β | β | 1,126 | 18.1 | .160 |
none (no retrieval) | 35.0% | β | β | 345 | 23.6 | .066 |
sg-fusion is the top arm, the cheapest arm, and the only one that localizes to
the function (57% vs grep's 0% β lexical search is file-granular by construction).
Against the closed-book floor of 35.0%, retrieval is worth +7 points here.
sg-rerank's recall/cost profile is reported separately in the agent-free intrinsic
retrieval ablation in the paper
(Table 2, Β§5.1) β best MRR/recall@10 short of full fusion, at the lowest index cost.
The product itself β SG as an MCP server driving Claude Code (sonnet) against Claude Code on its own tools. 100 paired SWE-bench Verified tasks:
| arm | pass@1 | file recall@1 | turns | $/task |
|---|---|---|---|---|
native (Claude's own Grep/Read) | 74/100 | .663 | 14.5 | .434 |
sg-fusion (SkeletonGraph MCP) | 75/100 | .862 | 11.4 | .371 |
SG's first-search recall excludes 3 tasks where the agent never called SG at all β those are adoption events, not retrieval failures. Including them gives .836.
Equivalent solve rate at β14.6% cost and β21.4% turns. The saving is not spread evenly β it lives almost entirely in the tail:
| cost percentile | native | +SG | change |
|---|---|---|---|
| 50th (median task) | $0.255 | $0.260 | +1.9% |
| 90th | $1.010 | $0.752 | β25.6% |
| 95th (worst tasks) | $1.559 | $0.896 | β42.5% |
Retrieval does nothing for the typical task and removes over 40% of the cost of the worst ones. Paired bootstrap 95% CI on the mean: [β25.3%, β1.2%]; McNemar on pass@1: p = 1.0 (no difference).

That tail effect is where the chart above comes from. Retrieval quality itself holds up under real stress-testing: it survives having all the location cues (tracebacks, code blocks) stripped from the issue text, and it survives on a decontaminated benchmark of repos the model hasn't memorized. But better retrieval doesn't move the solve rate (McNemar p=1.0), and an agent given enough turns to explore on its own eventually learns a repo about as well as a ranked list tells it β retrieval buys speed and cost, not a ceiling past what patient exploration reaches.
Full methodology β the n=15β50 revision, the dose-response check, the
cumulative-recall mechanism, and every withdrawn claim β is in
the paper and
docs/paper/FINDINGS.md.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/skeletongraph)<a href="https://allmcps.com/mcp/skeletongraph"><img src="https://allmcps.com/api/badge/skeletongraph?style=directory" alt="Skeletongraph on AllMCPs" /></a>