Knowledge graph builder & MCP server for AI code assistants: search, impact analysis, semantic similarity, and architecture visualization
Reponova provides 6 read-only tools for code graph analysis with consistent naming conventions (all start with 'graph_' verb prefix). Tool descriptions are present and moderately detailed (averaging 120-180 characters), exceeding the minimum but falling short of optimization for LLM selection. All tools have input schemas with proper JSON Schema structure and type definitions. However, output schemas are NOT documented in the visible code, no return type descriptions are present for any tool. Parameter descriptions are included but often lack specificity around constraints, ranges, and error recovery paths. No error handling guidance is visible (e.g., what happens when a symbol is not found in graph_impact, or when embeddings are not built for graph_similar). No tool annotations (readOnlyHint, etc.) despite all tools being read-only. Resource management is well-architected with lazy loading and hot-reloading, but this is implementation detail, not user-facing quality.
Build rich context for a file from the knowledge graph for LLM augmentation.
Blast radius analysis: what depends on a symbol and what it depends on.
Compressed file outline: signatures, decorators, docstrings.
Shortest path between two symbols (call chain or data flow).
Full-text search on knowledge graph nodes with optional BFS/DFS context expansion.
Find similar nodes by semantic embedding (requires embeddings built).
No output schema documentation. LLMs cannot infer what fields each tool returns, limiting ability to chain results and plan downstream operations.
Parameter descriptions lack constraint details. 'top_k' has no range (should be 1-100 or similar); 'context_depth' lacks bounds; 'max_text_tokens' has default but no min/max. LLMs pass invalid values without explicit constraints.
No error handling guidance. graph_similar states 'requires embeddings built' but provides no recovery path if not available. graph_impact and graph_path offer no hints if symbols don't exist or path cannot be found.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | <=2025-11-25 | v2 |
Missing tool annotations. All 6 tools are read-only but use no readOnlyHint annotation. This prevents LLMs from reasoning about idempotence and side-effect safety without explicit state documentation.
Parameter 'type' in graph_search and graph_similar is ambiguous. Description says 'Filter by type: function, class, module, all' but does not clarify if 'all' is the default or if the parameter is required.
graph_search accepts optional 'repo' filter but no guidance on how to discover valid repo names. Should offer discovery tool or document available repos.