MCP Server for indexing multi-file codebase symbol definitions and calculating change blast radius for modified symbols
Two tools with minimal schema and description quality. Both tools have descriptions (10-20 chars baseline), but lack critical parameter details. index_files accepts a generic 'file_contents' object with no type constraints on values; calculate_blast_radius accepts a bare string with no format guidance. Neither tool documents output schema. No error handling guidance, no parameter validation rules, no recovery paths. Naming is verb-based but descriptions are too terse to guide LLM selection. No tool annotations (readOnlyHint present in metadata but not in schema). Composition is reasonable (two distinct concerns) but parameter design is underdeveloped.
Calculate change blast radius for modified symbol.
Index multi-file codebase symbol definitions and call graph.
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields. index_files returns {indexed_files, symbols_count, symbols, call_graph} but this is inferred from code, not declared in tool definition.
Parameter 'file_contents' in index_files lacks type constraints. Schema says 'type: object' with no properties defined, LLM cannot infer that values must be strings (code). Should specify {type: object, additionalProperties: {type: string}}.
Parameter 'symbol' in calculate_blast_radius has no format guidance. Description says 'e.g. file.py::func_name' but this is an example, not a constraint. Should specify regex pattern or format in description: 'Symbol identifier in format filepath::symbol_name (e.g. utils.py::parse_config)'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
No error handling guidance. If symbol not found in call graph, what does calculate_blast_radius return? Empty list? Error? LLM cannot plan recovery. Should document: 'Returns empty blast_radius if symbol not indexed. Call index_files first if needed.'
Tool descriptions are 10-20 chars below baseline (194 chars). 'Index multi-file codebase symbol definitions and call graph' (59 chars) lacks WHEN to use, WHAT it returns, and prerequisites. Should expand: 'Parses Python source files to extract function/class definitions and call relationships. Returns symbol table and call graph for blast radius analysis. Call this first before calculate_blast_radius.'