Cut AI token costs 95%+ on code exploration. The leading MCP server for precise, symbol-level GitHub code retrieval via tree-sitter AST. Works with Claude Code, Cursor & any MCP client. 313B+ tokens saved.
- capability exposure inferred + 35
- recent drift inferred + 20
- tool safety inferred + 12
- trust mitigators mixed − 3
inferred mixed
The A–E grade is our heuristic synthesis — a "review this" prompt, not a verdict. Each factor is tagged by what backs it: attested (a verifiable record), reported (a third party's claim), or inferred (our own heuristic, e.g. permissions). See methodology.
graded 5m ago · see ecosystem CVEs →
- C · 57 → D · 64
- C · 52 → C · 57
- C · 57 → C · 52
- C · 49 → C · 57
- A · 0 → C · 49
No known CVEs for this server.
- high dangerous code
committed secret: Anthropic key, OpenAI key, GitHub fine-grained PAT · dynamic exec: __import__ sink, __import__()
analyzed commit f41d956 · analyzer v28 · 2d ago
skills & prompt files 2
- agent-rules jgravelle-jcodemunch-mcp-f41d956/AGENTS.md
- agent-rules jgravelle-jcodemunch-mcp-f41d956/CLAUDE.md
danger signals10
- dynamic code execution __import__ sink jgravelle-jcodemunch-mcp-f41d956/cli/cli.py :7
sys.path.insert(0, __import__("os").path.join(__import__("os").path.dirname(__file__), "..", "src")) - dynamic code execution __import__ sink jgravelle-jcodemunch-mcp-f41d956/tests/test_branch_indexing.py :476
env={**__import__("os").environ, "GIT_AUTHOR_NAME": "Test", "GIT_AUTHOR_EMAIL": "test@test.com", - dynamic code execution __import__() jgravelle-jcodemunch-mcp-f41d956/tests/test_groq_explainer.py :133
return __import__(name, *args, **kwargs) - dynamic code execution __import__ sink jgravelle-jcodemunch-mcp-f41d956/tests/test_hardening.py :848
__import__("os").path.normcase("A") == "A", - dynamic code execution __import__ sink jgravelle-jcodemunch-mcp-f41d956/tests/test_org_license.py :22
monkeypatch.setattr(lic, "_license_key", lambda: __import__("os").environ.get("JCODEMUNCH_LICENSE_KEY", "").strip()) - dynamic code execution __import__ sink jgravelle-jcodemunch-mcp-f41d956/tests/test_resolve_repo.py :190
env={**__import__("os").environ, **env}, - committed secret Anthropic key jgravelle-jcodemunch-mcp-f41d956/tests/test_v1_108_199.py :289
sk-ant…(38 chars, redacted) - committed secret Anthropic key jgravelle-jcodemunch-mcp-f41d956/tests/test_v1_108_73.py :93
sk-ant…(53 chars, redacted) - committed secret OpenAI key jgravelle-jcodemunch-mcp-f41d956/tests/test_v1_108_73.py :100
sk-pro…(44 chars, redacted) - committed secret GitHub fine-grained PAT jgravelle-jcodemunch-mcp-f41d956/tests/test_v1_108_73.py :112
github…(64 chars, redacted)
- recent drift +20 capability drift →
Heuristic, inferred signals — false positives (legitimately powerful tools, forks, language ports) are expected. Treat each as "review this", not a verdict. See the ecosystem-wide picture on the security hub, or the fleet security of jgravelle.