经 AI Skill Hub 精选评估,jcodemunch-mcp MCP工具 获评「强烈推荐」。已获得 1.8k 颗 GitHub Star,这款MCP工具在功能完整性、社区活跃度和易用性方面表现出色,AI 评分 8.2 分,适合有一定技术背景的用户使用。
高效的GitHub源代码探索MCP工具,专为Claude优化,具有业界领先的token节省能力。支持代码浏览、分析和集成,帮助开发者和AI工程师高效处理大规模代码库,减少API调用成本。
jcodemunch-mcp MCP工具 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
高效的GitHub源代码探索MCP工具,专为Claude优化,具有业界领先的token节省能力。支持代码浏览、分析和集成,帮助开发者和AI工程师高效处理大规模代码库,减少API调用成本。
jcodemunch-mcp MCP工具 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
# 方式一:通过 Claude Code CLI 一键安装
claude skill install https://github.com/jgravelle/jcodemunch-mcp
# 方式二:手动配置 claude_desktop_config.json
{
"mcpServers": {
"jcodemunch-mcp-mcp--": {
"command": "npx",
"args": ["-y", "jcodemunch-mcp"]
}
}
}
# 配置文件位置
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%/Claude/claude_desktop_config.json
# 安装后在 Claude 对话中直接使用 # 示例: 用户: 请帮我用 jcodemunch-mcp MCP工具 执行以下任务... Claude: [自动调用 jcodemunch-mcp MCP工具 MCP 工具处理请求] # 查看可用工具列表 # 在 Claude 中输入:"列出所有可用的 MCP 工具"
// claude_desktop_config.json 配置示例
{
"mcpServers": {
"jcodemunch-mcp_mcp__": {
"command": "npx",
"args": ["-y", "jcodemunch-mcp"],
"env": {
// "API_KEY": "your-api-key-here"
}
}
}
}
// 保存后重启 Claude Desktop 生效
The leading, most token-efficient MCP server for precise GitHub source code retrieval via tree-sitter AST parsing. Cut AI token costs 95%+ on code exploration — stop burning your context window reading entire files.
Real results, live from production 313B+ tokens saved · 45,000+ developers · $1.58M+ in AI spend avoided · 37,500+ kg CO₂ prevented Live telemetry at jcodemunch.com — benchmark: 95% average token reduction (15 tasks / 3 repos, 99.8% peak).
Works with Claude Code, Cursor, VS Code, Codex CLI, Continue, Windsurf, and any MCP-compatible client.
---
Prefer the command line?
pip install jcodemunch-mcp
uvx jcodemunch-mcp
For pinned/B2B deployments that want a version-stable install channel independent of PyPI, install straight from the repo (requires git, builds from source):
pip install git+https://github.com/jgravelle/jcodemunch-mcp.git
uvx --from git+https://github.com/jgravelle/jcodemunch-mcp.git jcodemunch-mcp
Quickstart - https://github.com/jgravelle/jcodemunch-mcp/blob/main/QUICKSTART.md
A crapload of detailed info: http://jcodemunch.com/
Live OSS code-health observatory — weekly six-axis health snapshots of Express, FastAPI, Gin, Pydantic, Django, Flask, NestJS, Cobra, and this very repo: https://jgravelle.github.io/jcodemunch-observatory/
Token Cost Radar — daily intelligence on AI token costs, minimization strategies, and budget trends for teams running Claude Code / Cursor / MCP: https://jcodemunch.com/radar/
gcm "how does authentication work?" --repo pallets/flask
gcm "where are the API routes defined?"
pip install jcodemunch-mcp
Want semantic search? Install the local embedding extra for zero-config semantic search — no API keys, no internet after first download:Want AI-generated summaries? Install the extra for your provider:> pip install "jcodemunch-mcp[local-embed]" # bundled ONNX encoder (recommended) > jcodemunch-mcp download-model # fetch model (~23 MB, one-time) >Without an extra, summaries fall back to signatures (which still works — you just get shorter descriptions). Run> pip install "jcodemunch-mcp[anthropic]" # Claude > pip install "jcodemunch-mcp[gemini]" # Gemini > pip install "jcodemunch-mcp[openai]" # OpenAI-compatible > pip install "jcodemunch-mcp[all]" # all providers + local embeddings >jcodemunch-mcp config --checkto verify your provider is installed and working.
<details> <summary><strong>Extras matrix — system surfaces each extra pulls in</strong></summary>
Most extras are pure-Python and self-contained. A few pull libraries that touch system surfaces worth noting for managed-endpoint and SOC 2 / HIPAA-adjacent deployments. For the base package alone, none of these surfaces are introduced.
| Extra | Transitive dependencies of note | System surfaces |
|---|---|---|
| (base, no extra) | none | none |
[local-embed] | onnxruntime | local CPU inference (no network after model download); model fetched on first run |
[anthropic] | anthropic SDK | outbound HTTPS to api.anthropic.com when AI summaries are enabled |
[gemini] | google-generativeai | outbound HTTPS to Google AI endpoints when AI summaries are enabled |
[openai] | openai SDK | outbound HTTPS to api.openai.com (or OPENAI_API_BASE) when AI summaries are enabled |
[groq] | openai SDK | outbound HTTPS to Groq endpoints; used by the gcm CLI and speedreview Action |
[groq-voice] | sounddevice, numpy | **microphone access** — sounddevice.InputStream opens the system audio device when the voice path is invoked |
[groq-explain] | Pillow | image decode / re-encode of attached screenshots |
[all] | union of all the above | union of all surfaces above, including microphone ([groq-voice]) and image libraries ([groq-explain]) |
For managed-endpoint deployments where microphone access on developer machines is policy-restricted (HIPAA, SOC 2, finance), pin to the base package or to the specific provider extras you need. The voice and explain paths are opt-in features, not part of the core MCP server functionality, and [all] is the only extra that bundles them together.
</details>
If you’re using Claude Code, pick whichever matches what you installed in step 1.
Pip install (simplest, what most people do):
claude mcp add -s user jcodemunch jcodemunch-mcp
The -s user flag registers it at user scope so it's available in every project. Without it, the registration is project-local and you'll see it missing the next time you cd elsewhere. If jcodemunch-mcp isn't found on PATH (common on Windows where pip install --user installs to AppData\Roaming\Python\PythonXYZ\Scripts\), use the absolute path:
```bash
jcodemunch-mcp install-pack fastapi
jcodemunch-mcp install-pack express --license YOUR-KEY ```
Free packs require no license. Licensed packs require a jCodeMunch license. Use --force to re-download an already-installed pack.
---
jcodemunch-mcp config --init # create ~/.code-index/config.jsonc from template
jcodemunch-mcp config # show effective configuration
jcodemunch-mcp config --check # validate config + verify prerequisites
--check validates that your config file is well-formed, your AI provider package is installed, your index storage path is writable, and HTTP transport packages are present. Exits non-zero on any failure — useful for CI/CD or first-run scripts.
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.
In retrieval-heavy workflows, that routinely cuts code-reading token usage by 95%+ because the agent stops brute-reading giant files just to find one useful implementation.
| Task | Traditional approach | With jCodeMunch |
|---|---|---|
| Find a function | Open and scan large files | Search symbol → fetch exact implementation |
| Understand a module | Read broad file regions | Pull only relevant symbols and imports |
| Explore repo structure | Traverse file after file | Query outlines, trees, and targeted bundles |
Index once. Query cheaply. Keep moving. Precision context beats brute-force context.
---
audit_agent_config scans your CLAUDE.md, .cursorrules, copilot-instructions.md, and other agent config files for token waste: per-file token cost, stale symbol references (cross-referenced against the index — catches renamed or deleted functions), dead file paths, redundancy between global and project configs, bloat, and scope leaks. No other tool can tell you "line 15 references a function that was renamed three weeks ago."
pip install jcodemunch-mcp
jcodemunch-mcp init
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 (PreToolUse read guard + PostToolUse auto-reindex + PreCompact session snapshot), optionally indexes your project, and audits your agent config files for token waste. Run jcodemunch-mcp init --help for all flags.
Prefer a one-line CLAUDE.md? From v1.71.0 the server exposes ajcodemunch_guidetool that returns the same policy snippet `claude-md --generate` prints — with the running version embedded. Keep this single line in your CLAUDE.md / AGENT.md and the guide always matches the installed server:The tool is force-included, so it can't be hidden by> Call the jcodemunch_guide tool and strictly follow its instructions. >disabled_toolsor tier filtering.
For non-interactive CI or scripting:
jcodemunch-mcp init --yes --claude-md global --hooks --index --audit
Settings are controlled by a JSONC config file (config.jsonc) with env var fallbacks for backward compatibility. Defaults are chosen so that a fresh install works without any configuration.
| Layer | Path | Purpose |
|---|---|---|
| Global | ~/.code-index/config.jsonc | Server-wide defaults |
| Project | {project_root}/.jcodemunch.jsonc | Per-project overrides |
Project config merges over global config — closest to the work wins.
The following env vars still work but are deprecated. Config file values take priority:
| Variable | Config key | Default |
|---|---|---|
JCODEMUNCH_USE_AI_SUMMARIES | use_ai_summaries | true |
JCODEMUNCH_TRUSTED_FOLDERS | trusted_folders | [] |
JCODEMUNCH_MAX_FOLDER_FILES | max_folder_files | 2000 |
JCODEMUNCH_MAX_INDEX_FILES | max_index_files | 10000 |
JCODEMUNCH_STALENESS_DAYS | staleness_days | 7 |
JCODEMUNCH_MAX_RESULTS | max_results | 500 |
JCODEMUNCH_EXTRA_IGNORE_PATTERNS | extra_ignore_patterns | [] |
JCODEMUNCH_CONTEXT_PROVIDERS | context_providers | true |
JCODEMUNCH_REDACT_SOURCE_ROOT | redact_source_root | false |
JCODEMUNCH_STATS_FILE_INTERVAL | stats_file_interval | 3 |
JCODEMUNCH_SHARE_SAVINGS | share_savings | true |
JCODEMUNCH_TELEMETRY_URL | (none) | community meter URL |
JCODEMUNCH_SUMMARIZER_CONCURRENCY | summarizer_concurrency | 4 |
JCODEMUNCH_ALLOW_REMOTE_SUMMARIZER | allow_remote_summarizer | false |
JCODEMUNCH_RATE_LIMIT | rate_limit | 0 |
JCODEMUNCH_TRANSPORT | transport | stdio |
JCODEMUNCH_HOST | host | 127.0.0.1 |
JCODEMUNCH_PORT | port | 8901 |
JCODEMUNCH_LOG_LEVEL | log_level | WARNING |
AI provider keys (ANTHROPIC_API_KEY, GOOGLE_API_KEY, OPENAI_API_BASE, MINIMAX_API_KEY, ZHIPUAI_API_KEY, etc.), JCODEMUNCH_SUMMARIZER_PROVIDER, and CODE_INDEX_PATH are always read from env vars — they are never placed in config files.
AI provider priority in auto-detect mode: Anthropic → Gemini → OpenAI-compatible (OPENAI_API_BASE) → MiniMax → GLM-5 → signature fallback. Set JCODEMUNCH_SUMMARIZER_PROVIDER to force anthropic, gemini, openai, minimax, glm, or none. jcodemunch-mcp config shows which provider is active.
allow_remote_summarizer only affects OpenAI-compatible HTTP endpoints. When false, jcodemunch accepts only localhost-style endpoints such as Ollama or LM Studio on 127.0.0.1 and rejects remote hosts like api.minimax.io. When a remote endpoint is rejected, AI summarization falls back to docstrings or signatures instead of sending source code to that provider. Set allow_remote_summarizer: true in config.jsonc if you intentionally want to use a hosted OpenAI-compatible provider such as MiniMax or GLM-5.
openai_extra_body (config key, or JCODEMUNCH_OPENAI_EXTRA_BODY env var as a JSON object) is merged into every OpenAI-compatible /chat/completions and /responses summarizer request. Use it for provider knobs the standard payload doesn't expose — most commonly to turn off a local thinking model's reasoning so the output budget isn't spent on reasoning tokens (which silently degrades summaries to generic signatures). For llama.cpp / Qwen: JCODEMUNCH_OPENAI_EXTRA_BODY='{"chat_template_kwargs":{"enable_thinking":false}}'. When a summarization run produces mostly generic fallbacks despite successful responses, jcodemunch now logs a degradation warning pointing at this setting (issue #323).
---
[mcp_servers.jcodemunch] command = "/absolute/path/to/.venv/bin/jcodemunch-mcp"
mcp_servers: jcodemunch: command: "uvx" args: ["jcodemunch-mcp"]
</details>
<details>
<summary>Odysseus config (self-hosted AI workspace)</summary>
[Odysseus](https://github.com/pewdiepie-archdaemon/odysseus) runs in Docker and
indexes nothing itself; jCodeMunch indexes your code on the **host**. Run
jCodeMunch as an **SSE** server on the host and register its URL in Odysseus.
Its SSE client connects by URL only (no auth header), so leave the token unset
and secure the endpoint by network binding instead.
**1. Start jCodeMunch on the host (no token):**
bash jcodemunch-mcp index . jcodemunch-mcp serve --transport sse --host 0.0.0.0 --port 8848 ```
Leave JCODEMUNCH_HTTP_TOKEN unset — Odysseus's SSE client sends no Authorization header, so a token returns 401 on connect.
2. In Odysseus → Settings → MCP Registry → Add server:
- Transport: SSE - URL: http://host.docker.internal:8848/sse (Linux: add extra_hosts: ["host.docker.internal:host-gateway"] to the Odysseus service in docker-compose.yml)
3. Secure by network, not token. Because the SSE path is unauthenticated, bind jCodeMunch so only the Odysseus container can reach it (host-gateway interface / firewall), not a public interface. JCODEMUNCH_RATE_LIMIT adds a throttle.
4. Restart Odysseus. All jCodeMunch tools appear in chat + agents. Keep the index fresh with jcodemunch-mcp watch .; use Odysseus's per-server disabled_tools to trim the surface.
jCodeMunch is read-only by charter, and its get_* / search_* / find_* / check_* tool naming satisfies Odysseus's plan-mode read-only gate, so the suite stays usable in plan mode.
Community-tested: the MCP protocol round-trip (SSE connect + tool discovery) is verified; the container-to-host network dial depends on your Docker setup.
</details>
Useful for onboarding, debugging, refactoring, impact analysis, and exploring unfamiliar repos without brute-force file reading.
Use jCodeMunch as a remote MCP tool with Groq's ultra-fast inference — answer codebase questions in seconds with zero local setup.
from openai import OpenAI
client = OpenAI(api_key="YOUR_GROQ_KEY", base_url="https://api.groq.com/openai/v1")
response = client.responses.create(
model="llama-3.3-70b-versatile",
input="What does parse_file do in jgravelle/jcodemunch-mcp?",
tools=[{
"type": "mcp",
"server_label": "jcodemunch",
"server_url": "https://YOUR_JCODEMUNCH_URL",
"headers": {"Authorization": "Bearer YOUR_TOKEN"},
"server_description": "Code intelligence via tree-sitter AST parsing.",
"require_approval": "never",
}],
)
Groq handles MCP tool discovery and execution server-side — one API call, no orchestration needed.
Self-host with Docker + Caddy for auto-TLS:
DOMAIN=mcp.example.com JCODEMUNCH_HTTP_TOKEN=secret docker compose up -d
See GROQ.md for the full tutorial: allowed-tools presets, model recommendations, deployment options, and validation scripts.
- uses: jgravelle/jcodemunch-mcp/speedreview@v1.108.52 with: groq_api_key: ${{ secrets.GROQ_API_KEY }} ```
For stricter supply-chain hygiene, pin to the tag's commit SHA instead of the tag itself (git ls-remote https://github.com/jgravelle/jcodemunch-mcp refs/tags/v1.108.52). The action installs pinned package versions by default and exposes jcodemunch_version / openai_version inputs for override.
See speedreview/README.md for full setup and configuration.
Ask any question about any codebase. Get an answer in under 3 seconds.
```bash pip install jcodemunch-mcp[groq] export GROQ_API_KEY=gsk_...
```
Push-to-talk via Enter key. Caps answers to ~100 words for natural spoken delivery. Requires a microphone.
How much can I save on Claude / Opus tokens? In retrieval-heavy workflows, code-reading tokens typically drop 95%+ because the agent fetches exact symbols instead of brute-reading whole files — benchmarked at a 95% average reduction across 15 tasks / 3 repositories, with peaks of 99.8% on large repos. Compact MUNCH encoding then trims another ~45% off the wire. Full methodology and harness: TOKEN_SAVINGS.md and benchmarks/.
Does it work with large monorepos? Yes. It indexes incrementally, detects workspace members (pnpm / yarn / npm / Turborepo / Cargo / Go workspaces), and scopes queries to subpaths, so retrieval stays cheap as the repo grows. A file watcher keeps the index fresh.
What languages are supported? 70+ languages, including Python, JavaScript/TypeScript, Go, Rust, Java, C/C++, C#, PHP, Ruby, Swift, and Kotlin via tree-sitter AST parsing. Full matrix: LANGUAGE_SUPPORT.md.
Which agents and IDEs does it work with? Any MCP client — Claude Code, Cursor, VS Code, Codex CLI, Continue, Windsurf, and more. One-click and CLI installs are at the top of this README and in the Works With section.
Is it free for personal use? Yes — free for personal use; commercial use needs a license. See Commercial Licenses. The guarantee: if jCodeMunch doesn't pay for itself, you don't pay for it.
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, cla
aiskill88点评:高星开源项目,解决Claude生态中代码分析的token瓶颈问题,设计理念先进,维护活跃,具有较强的工程实用价值。
该工具使用 NOASSERTION 协议,商用场景请仔细阅读协议条款,必要时咨询法律意见。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
📄 NOASSERTION — 请查阅原始协议条款了解具体使用限制。
AI Skill Hub 点评:jcodemunch-mcp MCP工具 的核心功能完整,质量优秀。对于Claude Desktop / Claude Code 用户来说,这是一个值得纳入个人工具库的选择。建议先在非生产环境试用,再逐步推广。
| 原始名称 | jcodemunch-mcp |
| 原始描述 | 开源MCP工具:The leading, most token-efficient MCP server for GitHub source code exploration 。⭐1.8k · Python |
| Topics | 代码分析GitHub集成token优化Claude工具 |
| GitHub | https://github.com/jgravelle/jcodemunch-mcp |
| License | NOASSERTION |
| 语言 | Python |
收录时间:2026-05-16 · 更新时间:2026-05-19 · License:NOASSERTION · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端