MCP server providing graph algorithm tools for decomposing and solving graph reasoning tasks
DecompGTI provides 10 graph algorithm tools with basic schemas and descriptions. However, critical gaps undermine production readiness: (1) Descriptions are minimal (10-60 chars), well below the 50-200 char LLM-optimized baseline. (2) Parameter descriptions are sparse or missing entirely, 'edges' appears in 8 tools with identical generic text, no guidance on format or constraints. (3) Output schemas are completely undocumented, LLMs cannot plan downstream calls or extract results. (4) Tools 9-10 (extract_tool_name/call_from_model_output) are meta-tools that don't fit the graph domain and lack clear use cases. (5) No error handling guidance, what happens on invalid input, cycles, or disconnected graphs? (6) No pagination or result limits despite tools potentially returning large traversals. Average per-tool score: 42/100.
Breadth-first traversal from a source node.
Maximum matching in a bipartite graph.
Detect whether a graph contains a cycle.
Depth-first traversal from a source node.
Shortest path with non-negative edge weights.
Extract tool call (name and arguments) from model output.
Extract tool name from model output.
Output schemas completely undocumented. No tool declares what fields it returns (e.g., does bfs return [nodes], {path: [], distance: []}?). LLMs cannot plan downstream calls or extract results without documented return types.
Descriptions are minimal (10-60 chars), far below the 50-200 char LLM-optimized baseline. 'Breadth-first traversal from a source node' lacks context on when to use it vs DFS, what it returns, or prerequisites. Insufficient for LLM tool selection.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Maximum flow between source and target using a directed network.
Minimum spanning tree with Prim or Kruskal.
Topological ordering for directed acyclic graph.
Parameter 'edges' appears in 8 tools with identical generic description 'List of edges, each edge is a list of 2 or 3 elements [u, v] or [u, v, weight]'. No guidance on: format validation, weight constraints, node type requirements, or error handling for malformed input.
Tools 9-10 (extract_tool_name/call_from_model_output) are meta-tools for parsing LLM output, not graph algorithms. They don't fit the domain, lack clear use cases, and have minimal descriptions. Consider removing or documenting their role in the agent workflow.
No error handling guidance. What happens if edges contain cycles (for topological_sort)? If graph is disconnected (for dijkstra)? If weights are negative (for dijkstra)? No recovery hints for LLMs.