You’ve watched it happen: the agent opens three whole files to find one function, and every one of them stays in the conversation. jCodeMunch hands it the function instead.
Agent asks "show me handle_request": gets the exact source of the symbols it asked for, not whole files. tree-sitter-parsed, byte-offset O(1) seeking.
jcodemunch-mcp init detects your client (Claude/Cursor/Windsurf), writes config, installs hooks, indexes the project, and audits token waste in your existing setup.
PreToolUse, PostToolUse, PreCompact, TaskCompleted, SubagentStart. They re-index a file after the agent edits it, save a checkpoint before compaction and leave you a note when a task completes.
get_blast_radius, get_call_hierarchy, find_dead_code, get_dependency_cycles, get_layer_violations, check_rename_safe. A new install starts on a six-tool front door (menu, order and route do the work), with all 90+ tools behind it. AST-grade, not regex-guess.
Python, JS/TS, Go, Rust, Java, C/C++, PHP, C#, Ruby, Kotlin, Swift, Dart, Elixir, Erlang, SQL, Razor/Blazor, Pascal, COBOL, Zig, PowerShell … and more, 79 languages in all.
Works with Claude, GPT, Gemini, Groq Remote MCP. Local ONNX embeddings bundled: zero-config first run. AI summarizer falls through Anthropic → Gemini → OpenAI-compat → signature.
middleware/auth.py (8K tokens)routes/api.py (12K tokens)get_symbol_source("require_auth") → 380 tokensget_call_hierarchy → 1.2K tokensWriting a Claude Code plugin? Give its agents jCodeMunch's tools. Want the habits that cut tokens with or without us? How to save Claude Code tokens.
"Roughly 5× more efficient context retrieval."
"Preserves your context budget for actual reasoning."
"Structural questions you simply can't ask Grep or Glob."
"The whole game is what you choose not to put in the prompt."