MCP server that exposes knowledge graph operations for searching, analyzing, and exploring code structure graphs built from source code repositories
Graphify exposes 5 read-only graph analysis tools with basic descriptions and input schemas. All tools have descriptions (10-100 chars) and parameter types, but descriptions are generic and lack LLM-optimized guidance on when/why to use each tool. Output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Error handling returns JSON errors but lacks recovery guidance. No tool annotations (readOnlyHint, etc.). Parameter descriptions are minimal; e.g., 'Search term to match against node IDs, labels, or types' lacks format/constraint details. No pagination support despite Query and Analyze potentially returning large result sets. Tool naming is clear (verb_noun pattern) but descriptions do not explain distinctions between similar tools (Query vs Explain vs Analyze).
Run analysis on the knowledge graph and return structural insights.
List communities and their members in the knowledge graph.
Explain a node's role and its connections in the knowledge graph.
Find the shortest path between two nodes in the knowledge graph.
Search for nodes and edges in the knowledge graph. Returns matching nodes with their connections.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting) for downstream tool chaining or data extraction. Query returns JSON with 'results' array; Explain returns nested 'node', 'statistics', 'incomingEdges', 'outgoingEdges', but this is invisible to the agent.
Descriptions lack LLM-optimized guidance. 'Search for nodes and edges' (50 chars) does not explain when to use Query vs Explain vs Analyze, what 'nodes' and 'edges' mean in this domain, or what the searchTerm format should be. Baseline: 194 chars average for A+ tools.
No pagination support. Query and Analyze accept 'limit' but do not return total_count or next_cursor. Large graphs may return truncated results without signaling incompleteness, causing LLMs to reason over partial data.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Error responses lack recovery guidance. 'Search term cannot be empty' and 'Node not found' are bare errors. Should suggest: 'Node not found. Try Query() to search for similar nodes.' This guides the LLM's next step.
No tool annotations. All tools are read-only but lack readOnlyHint annotation. This prevents agents from reasoning about safety and retry logic. Path and Explain are idempotent but unmarked.