Skip to content

Releases: khoitd-voyager/mcp-spec-nav

v0.3.0: behaviour-aware search, multi-language callers, Vue/Svelte/Kotlin/Swift support

Choose a tag to compare

@khoitd-voyager khoitd-voyager released this 13 Oct 03:55

What's new

Find code by behaviour, not just by name

  • spec_nav_find_functions also matches the names of the functions each function calls, so informClient() (which calls sendMail) 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_callers now 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, ambiguous or unresolved instead of being guessed.
  • Dynamic calls (obj["x"](), fn.call/apply, getattr, send, getMethod, NSSelectorFromString…) are reported as dynamic. 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_callers only 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

v0.2.0 Pre-release
Pre-release

Choose a tag to compare

@khoitd-voyager khoitd-voyager released this 12 Oct 08:52

Claude Desktop extension: download mcp-spec-nav-0.2.0.mcpb and double-click to install.