Multi-language code parser (Python, Rust, JavaScript/TypeScript, Go, Java, C/C++) that extracts dependency graphs and stores them locally in SQLite. Provides three access methods: CLI for direct queries, REST API for programmatic use, and MCP server for IDE integration with Claude or Cursor.
Four tools with complete schemas and basic descriptions, but significant gaps in parameter documentation and error handling guidance. All tools are READ_ONLY, which is appropriate, but descriptions lack actionable context for LLM selection. Parameter descriptions are minimal (e.g., 'Name pattern to search for' without format constraints). No output schemas documented. Error handling provides no recovery guidance. Naming is clear and verb-based (search_, get_, list_), following baseline conventions.
Get all dependencies for a node up to specified depth
Get detailed context for a specific node including its dependencies and source code
List all parsed files in the codebase
Search for functions, classes, or files by name pattern across the codebase
Parameter descriptions lack format constraints and validation rules. 'Name pattern to search for (supports wildcards like 'main', 'Parser', etc.)' includes example values that LLMs may reuse literally. No enum constraint on node_type despite having one in schema.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., node_id for chaining). Responses are inferred from API code but not formally specified in tool definitions.
Error handling provides no recovery guidance. API code returns generic (StatusCode::INTERNAL_SERVER_ERROR, e.to_string()) without actionable next steps. LLMs cannot distinguish retryable from fatal errors.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | <=2025-11-25 | v2 |
Tool descriptions are generic and lack context for LLM selection. 'Get detailed context for a specific node including its dependencies and source code' does not explain when to call this vs get_dependency_graph, or what 'context' means (code snippet? metadata? both?).
No pagination or result limits documented. search_nodes and get_dependency_graph could return hundreds of items, exhausting context window. No limit parameter or guidance on capping results.