MCP server and CLI tool for generating repository maps using Tree-sitter AST analysis and PageRank ranking
Two well-structured tools with complete input schemas and clear descriptions. Both tools follow verb_noun naming (repo_map, search_identifiers) and include detailed parameter documentation. However, output schemas are not formally documented, responses are returned as JSON strings without explicit field definitions. Error handling is basic (try/catch with message wrapping). No tool annotations (readOnlyHint, idempotentHint) despite both being read-only operations. Parameter descriptions are strong (72-char average), but output structure guidance is missing, forcing LLMs to parse JSON strings.
Generate a ranked repository map of code definitions via PageRank over cross-file reference graphs. Useful for understanding codebase structure, discovering entry points, or finding code related to specific files or identifiers.
Search for code identifiers (functions, classes, variables) across the repository via Tree-sitter AST analysis. Returns matching definitions and references with code context.
Output schemas not documented. Both tools return JSON strings without formal field definitions. LLMs must infer structure by parsing text, increasing hallucination risk and token waste.
Missing tool annotations. Both tools are read-only (risk: READ_ONLY) but lack readOnlyHint annotations. Agents cannot distinguish safe tools from destructive ones without explicit hints.
Error handling lacks recovery guidance. Catch blocks return generic error messages ('Error generating repo map: ...') without actionable next steps or error classification (retryable vs fatal).
No pagination support. search_identifiers accepts maxResults but repo_map has no limit/offset mechanism. Large repositories could return unbounded results, exhausting context windows.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | <=2025-11-25 | v2 |
Parameter 'projectRoot' required on every call. No default or discovery mechanism. Agents must track and pass absolute paths repeatedly, increasing cognitive load and error surface.