A code indexing and semantic search server for MCP that provides code analysis, symbol lookup, dependency tracking, and impact analysis across multiple programming languages
CodeSage provides 6 code-analysis tools with basic descriptions and input schemas. All tools have verb-noun naming (search, find_symbol, find_references, list_dependencies, impact_analysis, export_context) and documented parameters with types. However, descriptions are minimal (10-50 chars), parameter descriptions lack detail on constraints/formats, and output schemas are not documented. No error handling guidance, no examples of recovery paths, and no indication of pagination support for potentially large result sets. Tools are read-only (low risk), but lack the depth expected for production use.
Export code context for a file or symbol for use in LLM prompts
Find all references to a symbol across the codebase
Find definitions and references of a symbol in the codebase
Analyze the impact of changes to a file or symbol
List dependencies for a file or symbol
Search for code by semantic similarity or keyword matching
Tool descriptions are too brief (10-50 chars). Rubric baseline is 194 chars. LLMs cannot determine when/why to select tools without context on use cases, prerequisites, and distinctions from similar tools.
Parameter descriptions lack actionable detail. 'Search query (semantic or keyword)' does not explain format constraints, expected length, or when to use semantic vs keyword. Rubric requires format/range/allowed values in descriptions.
Output schemas are not documented. LLMs cannot plan downstream calls or extract required fields without knowing what fields are returned, their types, and whether results are paginated.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | <=2025-11-25 | v2 |
No error handling guidance. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next (e.g., 'Symbol not found. Try search() with a partial name.').
No pagination or result-limit documentation. Tools like search() and find_references() may return large result sets; without limit/offset parameters and documented caps, LLMs risk context window exhaustion.