PluginBench
MCP Server
Active

jCodemunch MCP MCP Server

io.github.jgravelle/jcodemunch-mcp

Token-efficient code exploration via tree-sitter AST parsing. 70+ languages, 86-99% token savings.

What is the jCodemunch MCP MCP server?

The jCodeMunch MCP server is a token-efficient code exploration tool that uses tree-sitter AST parsing to retrieve exact code symbols instead of loading entire files. It supports 70+ languages and achieves 86-99% token savings (96% average) compared to traditional grep-and-read approaches, cutting AI context costs by up to 27.9x.

jCodeMunch indexes a codebase once and lets AI agents retrieve only the exact code they need—functions, classes, methods, constants—with byte-level precision. Instead of opening entire files and scanning thousands of irrelevant lines, it stores structured symbol metadata and fetches exact implementations on demand. This dramatically reduces token consumption, making code exploration faster and cheaper for AI-driven development workflows.

How to install jCodemunch MCP

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "jcodemunch-mcp": {
      "command": "uvx",
      "args": [
        "jcodemunch-mcp"
      ]
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • search_symbols — Search for symbols by name across the indexed codebase
  • get_symbol_source — Retrieve the exact source code of a specific symbol (function, class, method)
  • get_file_outline — Get a structured outline of all symbols in a file with signatures
  • get_file_content — Retrieve the full content of a file
  • assemble_task_context — Classify task intent, extract anchor symbols, and assemble context in one call
  • plan_turn — Route a turn before the first read to optimize context usage
  • find_importers — Find all files that import or reference a given symbol
  • get_blast_radius — Determine what breaks if a symbol is changed
  • get_call_hierarchy — Retrieve the call hierarchy for a function or method
  • find_dead_code — Identify unused code in the indexed codebase
  • get_changed_symbols — Get symbols changed in a specific commit or diff
  • get_hotspots — Identify frequently modified or complex code regions
  • search_ast — Search for anti-patterns and structural issues via AST queries
  • check_edit_safe — Preflight check for edit safety with confidence scores
  • check_delete_safe — Preflight check for deletion safety
  • get_pr_risk_profile — Analyze risk profile of a pull request
  • plan_refactoring — Plan refactoring with edit-ready old_text/new_text blocks
  • get_file_outline — Get file structure and symbol names
  • get_session_stats — Report tokens served and savings for the current session

Use cases

  • Edit a single function in a large file without loading the entire file, saving ~95% of tokens
  • Find which file to edit and understand module structure using symbol search instead of grep
  • Analyze impact of code changes with get_blast_radius to see what breaks before making edits
  • Refactor code safely by checking edit and delete safety with preflight verification
  • Explore unfamiliar codebases quickly by retrieving only relevant symbols and their relationships

jCodemunch MCP MCP server FAQ

What is jCodeMunch?

jCodeMunch is an MCP server that makes code exploration token-efficient by indexing a codebase once and retrieving only exact symbols (functions, classes, methods) instead of loading entire files. It uses tree-sitter AST parsing and achieves 86-99% token savings compared to traditional grep-and-read approaches.

Is jCodeMunch free?

Yes, jCodeMunch is free for personal use. Commercial use requires a license; the server includes a guarantee that if it doesn't pay for itself, you don't pay for it. Pricing and commercial licenses are available at jcodemunch.com.

How do I install jCodeMunch in Cursor or Claude?

Use `uv tool install jcodemunch-mcp` followed by `jcodemunch-mcp init`, which auto-detects your MCP clients (Claude Code, Cursor, Windsurf, Continue) and writes their config entries. Alternatively, use one-click install buttons in VS Code or Cursor, or manually add it with `claude mcp add -s user jcodemunch -- uvx jcodemunch-mcp`.

Does jCodeMunch require authentication or API keys?

No. jCodeMunch is local-first by design; indexes live at ~/.code-index/ and require no external authentication. The base package's only default network behavior is an anonymous savings counter (opt-out with share_savings: false). Optional features like the login service are opt-in.

What languages does jCodeMunch support?

jCodeMunch supports 70+ languages via tree-sitter, including Python, JavaScript/TypeScript, Go, Rust, Java, C/C++, C#, PHP, Ruby, Swift, and Kotlin. A complete language matrix is available in LANGUAGE_SUPPORT.md.

When should I use jCodeMunch vs. native tools?

jCodeMunch excels at targeted edits (one function, one method, one class) and structural queries (find_importers, get_blast_radius) that native tools cannot answer. It saves ~95% tokens on single-function edits in large files. Edits requiring whole-file context see no advantage. Best fits: large repositories, unfamiliar codebases, agent-driven exploration, and refactoring.

README (reference)

Source of truth, from the repository.

jCodeMunch MCP

The most token-efficient MCP server for precise source code retrieval via tree-sitter AST parsing. Cut AI token costs 86-99% on code exploration (96% average, benchmarked at 27.9x fewer tokens than a grep-and-read agent) and stop burning your context window reading entire files.

Real results, live from production 838B+ tokens saved · 136,000+ reporting installs · $4.2M+ in AI spend avoided · 100,000+ kg CO₂ prevented Counter figures as of 2026-08-17, valued at the $5/MTok Claude Opus input rate. All four only grow, so read them as floors. Live at jcodemunch.com.

Works with Claude Code, Cursor, VS Code, Codex CLI, Windsurf, Continue, and any MCP-compatible client.

Install now · Quickstart · See the evidence · Pricing

PyPI version PyPI - Python Version License MCP Local-first Issues closed DOI

<!-- mcp-name: io.github.jgravelle/jcodemunch-mcp -->

Free for personal use. Use it to make money, and Uncle J. gets a taste. Fair enough? Commercial licenses below. Our guarantee: if jCodeMunch doesn't pay for itself, you don't pay for jCodeMunch.


Why jCodeMunch?

Most AI agents explore repositories the expensive way: open entire files, skim thousands of irrelevant lines, repeat. That is not "a little inefficient." That is a token incinerator.

jCodeMunch indexes a codebase once and lets agents retrieve only the exact code they need: functions, classes, methods, constants, outlines, and tightly scoped context bundles, with byte-level precision. It parses source with tree-sitter, stores structured symbol metadata (signature, kind, qualified name, summary, byte offsets) alongside raw file content in a local index, and fetches exact implementations on demand instead of re-reading files over and over.

TaskTraditional approachWith jCodeMunch
Find a functionOpen and scan large filesSearch symbol, fetch exact implementation
Understand a moduleRead broad file regionsPull only relevant symbols and imports
Explore repo structureTraverse file after fileQuery outlines, trees, and targeted bundles
"What breaks if I change X?"Not possibleget_blast_radius

Index once. Query cheaply. Keep moving. Precision context beats brute-force context.


Evidence

Reproducible token efficiency benchmark

Measured with tiktoken cl100k_base across three public repos pinned to upstream commits, run 2026-08-03 on v1.108.233. Workflow: search_symbols (top 5) + get_symbol_source × 3 per query. Two baselines, same run, same corpus, same file reader:

  • Grep-top-3: rg -l the query terms, rank files by match count, open the top 3 whole. This is what a competent agent without the tool actually does, and it is the number to quote.
  • Read-all: every indexed source file concatenated. A ceiling nobody pays; retained for continuity with previously published figures.
RepositoryFilesSymbolsGrep-top-3 baselinejCodeMunchvs grepvs read-all
expressjs/express18220015,724 avg1,007 avg15.6x153.2x
fastapi/fastapi1,1826,84185,296 avg2,209 avg38.6x372.9x
gin-gonic/gin981,17931,975 avg1,545 avg20.7x98.3x
Grand total (15 task-runs)664,97523,80527.9x237.3x

Against a grep-and-read agent: 96.4% reduction, 27.9x fewer tokens. Per-query results range from 7.3x to 84.3x (median 25.5x); no single multiple describes every query. Against read-all the figure is 99.6%, but nobody pays that ceiling. Compact MUNCH wire encoding then trims a median 45.5% more bytes off responses.

Full methodology, pinned commits, harness, and known caveats: benchmarks/METHODOLOGY.md · Reproduce it yourself · TOKEN_SAVINGS.md

Independent A/B test on a production codebase

50-iteration A/B test on a real Vue 3 + Firebase production codebase, jCodeMunch vs native tools (Grep/Glob/Read), Claude Sonnet 4.6, fresh session per iteration: success rate 80% vs 72%, timeout rate 32% vs 40%, mean cache creation down 10.5%. Tool-layer savings isolated from fixed overhead: 15-25%. One finding category appeared exclusively in the jCodeMunch variant: orphaned file detection via find_importers, a structural query native tools cannot answer without scripting. Full report: benchmarks/ab-test-naming-audit-2026-03-18.md

Mentioned by

Full recognition page →


Install

One-click installs

Install in VS Code Install in VS Code Insiders Install in Cursor

Recommended: one command

uv tool install jcodemunch-mcp
jcodemunch-mcp init

No virtualenv to manage, nothing written into system Python, and it works as-is on PEP 668 distros (Ubuntu 24.04+, Debian 12+) where bare pip install is refused. Don't have uv yet?

init auto-detects your MCP clients (Claude Code, Claude Desktop, Cursor, Windsurf, Continue), writes their config entries, installs the CLAUDE.md prompt policy so your agent actually uses jCodeMunch, optionally installs enforcement hooks, optionally indexes your project, and audits your agent config files for token waste.

<details> <summary><b>Other install paths</b></summary>
CommandUse it when
uvx jcodemunch-mcpZero install. Runs from an ephemeral environment — nothing lands on disk permanently. The client entries init writes already invoke the server this way, so for most setups this is all that ever runs. ⚠ Enforcement hooks are the exception: they're spawned by a minimal-PATH subshell and resolve the executable by name, so they need uv tool install (or pipx/pip) to work.
pipx install jcodemunch-mcpYou already standardise on pipx
pip install jcodemunch-mcpInside a virtualenv you manage yourself
</details>

Verify:

jcodemunch-mcp --version

Manual Claude Code setup

claude mcp add -s user jcodemunch -- uvx jcodemunch-mcp

No install step — uvx fetches and runs the server on demand. Prefer it on your PATH (and required for enforcement hooks)? uv tool install jcodemunch-mcp, then claude mcp add -s user jcodemunch jcodemunch-mcp.

Then tell the agent to prefer the tools. This matters more than people think; installation makes the tools available but does not break the agent's brute-reading habit. One line in your CLAUDE.md does it:

Call the jcodemunch_guide tool and strictly follow its instructions.

Using Cursor, Windsurf, Codex CLI, Antigravity, Gemini CLI, Qwen Code, Kiro, Cline, Zed, Goose, Hermes, Odysseus, or Paperclip? Every tested client configuration lives in CLIENTS.md. Optional extras (local semantic search, AI summaries per provider) are in QUICKSTART.md; the system surfaces each extra pulls in are documented in SECURITY.md.


Quickstart

Full walkthrough: QUICKSTART.md. The two-minute version, inside your agent after init:

  1. Ask: "Index this repo with jcodemunch."
  2. Ask: "Using jcodemunch, find the function that handles authentication and show me its source."

The agent should answer via search_symbols and get_symbol_source, returning tens of lines instead of whole files. Confirm with get_session_stats: it reports tokens served and savings for the session. That is where the numbers on the meter come from.

Want to skip initial indexing for popular frameworks? Pre-built starter packs: jcodemunch-mcp install-pack --list (free packs need no license).


What you can do

  • Retrieve one symbol instead of loading a file. get_symbol_source returns the exact function body, byte-precise, for the majority of edits that touch one function in a 700-line file (~95% savings on that read).
  • Assemble a whole task's context in one call. assemble_task_context classifies the task intent, extracts anchor symbols, and runs the right tool sequence under one token budget. plan_turn routes the turn before the first read.
  • Ask structural questions grep can't answer. find_importers, get_blast_radius, get_call_hierarchy, find_dead_code, get_changed_symbols, get_hotspots, search_ast anti-pattern sweeps, and more.
  • Preflight risky changes, and know when to stop. check_edit_safe, check_delete_safe, get_pr_risk_profile, and plan_refactoring with edit-ready {old_text, new_text} blocks. The two safety checks return stop_rule.terminal: true means no further jcodemunch call moves the verdict, so re-running find_importers or check_references to be sure is wasted work. It means final, not safe. False names the specific thing that would change the answer.
  • Trust the answers. Calibrated confidence scores, freshness flags, coverage contracts on absence claims, compiler-verified references via SCIP import, and automatic secret redaction before anything reaches the LLM.
  • Keep the index fresh automatically. Watch modes, agent hooks, and a VS Code extension close the staleness gap.

That's the highlight reel. The complete tour of 90+ tools, the MUNCH compact wire format, evidence receipts, offloadable-work annotation, and the session-economics instrumentation is in CAPABILITIES.md, with internals in UNDER_THE_HOOD.md.

<!-- WHATSNEW:START -->

What's new

  • v1.108.287 (2026-08-19) — Yesterday's fixes stopped where the reports did
  • v1.108.286 (2026-08-18) — Three surfaces that advertised a product we were not running
  • v1.108.285 (2026-08-18) — Five answers that were asserted, not established
<!-- WHATSNEW:END -->

When does it help (and when doesn't it)?

ScenarioNative tooljCodeMunchSavings
Edit one function (700-line file)Read → 700 linesget_symbol_source → 30 lines~95%
Understand a file's structureRead → full contentget_file_outline → names + signatures~80%
Find which file to editGrep many filessearch_symbols → exact matchcomparable
Edit requires whole-file contextRead → full contentget_file_content → full content~0%
"What breaks if I change X?"not possibleget_blast_radiusunique capability

It helps most on targeted edits (one function, one method, one class), which is the majority of real editing work. Edits that genuinely require the entire file (restructuring file-level state, reordering logic spanning hundreds of lines) see no advantage. Best fits: large repositories, unfamiliar codebases, agent-driven exploration, refactoring and impact analysis, and teams cutting AI token costs without making agents dumber.

Languages: 70+ via tree-sitter, including Python, JavaScript/TypeScript, Go, Rust, Java, C/C++, C#, PHP, Ruby, Swift, and Kotlin. Full matrix: LANGUAGE_SUPPORT.md. Monorepos: yes; incremental indexing, workspace-member detection, subpath scoping.


<a id="background-behavior-fully-disclosed"></a>

Security, privacy, and background behavior

Local-first by design: indexes live at ~/.code-index/, and the base package's only default network behavior is an anonymous savings counter (random ID plus aggregate token counts, no code, no paths, no PII; opt out with share_savings: false). Everything the server does beyond answering a tool call (file watching, the opt-in login service, license validation, model downloads, org reporting) is opt-in or opt-out, visible, and reversible, and every item is enumerated in SECURITY.md alongside the path-traversal, symlink, and secret-redaction controls.


Documentation

DocWhat it covers
QUICKSTART.mdZero-to-indexed in three steps
CLIENTS.mdTested configuration for every MCP client
USER_GUIDE.mdFull tool reference, workflows, and best practices
CAPABILITIES.mdThe complete capability reference beyond the highlight reel
CONFIGURATION.mdConfig file reference, token-control levers, tool tiering, the Counter
UNDER_THE_HOOD.mdThe technical manual: verdicts, ranking internals, provenance contracts
ARCHITECTURE.mdInternal design, storage model, and extension points
GROQ.mdGroq Remote MCP, the gcm CLI, speedreview GitHub Action
HEADLESS.mdUsing jCodeMunch with claude -p
AGENT_HOOKS.mdAgent hooks and prompt policies
LANGUAGE_SUPPORT.mdSupported languages and parsing details
SECURITY.mdSecurity controls, data movement, background behavior
TROUBLESHOOTING.mdCommon issues and fixes
CHANGELOG.md · ROADMAP.mdRelease history and what's next

Licensing and commercial use

jCodeMunch-MCP is released under the jCodeMunch-MCP Dual-Use License (full terms). Free for non-commercial use. Commercial use requires a paid license, one-time, sold by jMunch LLC via Stripe:

jCodeMunch-only: Builder, $79 (1 developer) · Studio, $349 (up to 5) · Platform, $1,999 (org-wide internal deployment)

Full jMunch suite (code + docs + data): Trio Builder, $99 · Trio Studio, $449 · Trio Platform, $2,499

Not sure it's worth it? Run your own numbers through the ROI calculator, or forward the finance-team version to whoever signs off. The guarantee stands: if jCodeMunch doesn't pay for itself, you don't pay for jCodeMunch.

Conditions on all uses: retain the copyright notice, clearly mark modifications and keep the original author's name intact (he's kinda full of himself), and include a prominent modification notice in source redistributions. The Software may not be renamed, rebranded, or published to any public package registry, and is provided "AS IS" without warranty. LICENSE controls.


FAQ

How much can I save on Claude / Opus tokens? In retrieval-heavy workflows, code-reading tokens typically drop 86-99%, benchmarked at 96.4% average (27.9x) against a grep-and-read agent across 15 tasks and 3 repositories. Per-query results span 7.3x to 84.3x. Methodology: TOKEN_SAVINGS.md and benchmarks/.

How is this different from RAG or grep-based tools? jCodeMunch retrieves at the symbol level with byte-level precision (functions, classes, importers, blast radius, hierarchies) rather than fuzzy chunks (RAG) or raw line matches (grep) the agent still has to read and reason over.

Is it free for personal use? Yes. Commercial use needs a license; see above.

Where's the deep-dive on X? Capabilities: CAPABILITIES.md. Config: CONFIGURATION.md. Clients: CLIENTS.md. Internals: UNDER_THE_HOOD.md. Or the firehose: jcodemunch.com.


Extras: OSS code-health observatory (weekly six-axis snapshots of Express, FastAPI, Gin, Django, and friends) · Token Cost Radar (daily AI token cost intelligence) · jMunch Console (free MIT GUI for one-click upgrades)

Related MCP servers

Query CSV, Excel, Parquet, and JSONL files server-side without loading rows into context—99%+ token savings on large datasets.

81
Python
View repository →

Section-level documentation search for agents—retrieve exact sections from .md, .rst, .adoc, .ipynb, .html, .yaml, .json, and OpenAPI specs without loading whole files.

203
Python
View repository →

Transparent MCP proxy that reduces token costs by 88-99% through handle-ified queryable responses.

33
Python
MIT
View repository →

Ask a real human (not an LLM) for a judgment, $0.10 USDC via x402. The result returns to the agent.

View repository →

Build, test, ship and maintain Microsoft Copilot Studio agents from the editor

0
TypeScript
MIT
View repository →

Record a flow through your app, check it after every change, and attack a copy of your database.