A precise local codebase map for AI coding agents: find, trace, and predict with file-line evidence.
Strong tool definitions with comprehensive descriptions and well-structured schemas. All 9 tools have clear, action-oriented names (search_code, find_symbol, find_refs, impact_of, etc.) and detailed descriptions (100-300 chars). Input schemas are complete with typed parameters and descriptions. However, output schemas are not explicitly documented in the source code, responses are wrapped in a JSON envelope (_emit function) but the actual payload structure for each tool is not visible. Error handling guidance is minimal. No tool annotations (readOnlyHint, destructiveHint) despite all tools being READ_ONLY. Session-based caching logic (search_code, explain_code) is sophisticated but underdocumented for LLM reasoning.
Map the codebase's modules, god nodes, and surprising connections before diving in.
Explain a code range: architecture, intent, and how it fits the codebase.
Find all references and callers of a symbol. Returns call sites with file path and line number.
Locate a symbol definition by name (function, class, method, etc.). Returns file path, line range, and signature for each match.
Report package, root, and index health for MCP clients.
Blast-radius analysis: what is affected if `target` changes. Walks the dependency/call graph and returns affected files and symbols.
Output schemas not documented. Tools return JSON strings via _emit() wrapper, but the actual payload structure (fields, types, pagination format) for each tool is not visible in source. LLMs cannot plan downstream calls or extract fields without knowing response shape.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All 9 tools are READ_ONLY but this is not declared in the tool registration. Modern MCP clients use annotations to optimize caching and retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Predict the graph blast radius of tracked changes in the working tree.
Hybrid search over the codebase index. Returns ranked results with file paths, line ranges, symbol names, and recommended_reads — the exact ranges to open next. When the response includes a ``pagination`` key, pass ``next_offset`` as ``offset`` in the next call to retrieve the following page of results.
Check whether evidence you hold or cite is still true in the working tree.
Session parameter semantics underdocumented. search_code and explain_code accept a 'session' tag for context reuse and memory invalidation, but the LLM instructions do not explain when/why to reuse vs. create new tags, or how to interpret 'reused: true' and 'memory.invalidated' in responses.
Error handling lacks recovery guidance. _no_index_payload() returns a generic error message. No guidance on what the LLM should do next (e.g., 'Run codebase-index index in your project root').
Parameter constraints not fully specified. 'limit' and 'token_budget' in search_code lack min/max bounds. 'depth' in impact_of and architecture_overview lack guidance on reasonable ranges. LLMs may pass absurd values.