Repository navigation
Releases: khoitd-voyager/mcp-spec-nav
Releases · khoitd-voyager/mcp-spec-nav
Release list
v0.3.0: behaviour-aware search, multi-language callers, Vue/Svelte/Kotlin/Swift support
What's new
Find code by behaviour, not just by name
spec_nav_find_functionsalso matches the names of the functions each function calls, soinformClient()(which callssendMail) shows up for "send email".- Abbreviations (
amt→ amount), related concepts (shipping/delivery), and rarer words count for more in ranking. - Vietnamese queries with diacritics are translated to English (~100 terms).
- New tool
spec_nav_similar_functions: give it a draft or an existing function and it finds functions that do the same thing under a different name, across languages.
Callers beyond TypeScript/JavaScript
spec_nav_callersnow works in Python, Go, Java, Kotlin, Swift, Ruby, PHP, C#, Rust, C/C++ and more. Each call site comes with the evidence that links it to the function (same file or class, import or alias, package, declared receiver type).- Results it can't confirm are listed separately as
likely,ambiguousorunresolvedinstead of being guessed. - Dynamic calls (
obj["x"](),fn.call/apply,getattr,send,getMethod,NSSelectorFromString…) are reported asdynamic. A plain string with the same name is only counted.
More languages
- Vue, Svelte and Astro:
<script>blocks are parsed with original line numbers kept, and calls inside templates are found. - Kotlin and Swift: new parser, tested with zero parse errors on okhttp and Alamofire.
Large repos
spec_nav_callersonly type-checks files that mention the function's name, in batches, so it no longer runs out of memory on repos the size of VS Code (14k files).
Benchmark
Simulated agents doing the same tasks with and without the MCP (not real LLM runs). Each task: find existing code to reuse, update every caller, change a constant everywhere, then edit.
| Synthetic, 100 sessions | Synthetic, 50 large | immich, 20 | immich, 10 large | |
|---|---|---|---|---|
| Context tokens per session | −25% | −24% | −16% | −25% |
| Input tokens (with prompt cache) | −18% | −26% | −16% | −38% |
| Fully correct sessions | 97% → 99% | 70% → 86% | 50% → 85% | 0% → 30% |
Costs: each session with the MCP takes 3–7 s longer (server start and first indexing), and the tool definitions add about 3.8k tokens per turn. On VS Code (14k files): first indexing takes 31 s; searches take 2–4 s. Looking up callers of a very common name (readFile) takes 90 s and about 3 GB of memory.
Method and limits: bench/README.md.
Install
Download mcp-spec-nav-0.3.0.mcpb and drag it into Claude Desktop → Settings → Extensions.
v0.2.0
Claude Desktop extension: download mcp-spec-nav-0.2.0.mcpb and double-click to install.