MCP Server for planning and executing Directed Acyclic Graphs (DAGs) of chained tool invocations with parameter piping
Single tool 'plan_execution_order' has critical definition gaps. Input schema is severely incomplete: 'steps' parameter lacks type descriptions, nested structure is undocumented, and no guidance on 'tool_name', 'params', or 'depends_on' fields. Tool description (11 words, ~60 chars) is below the 10-1024 char baseline and provides no context on WHEN to use it, WHAT it returns, or HOW to structure input. No output schema documented. No error handling guidance (e.g., cyclic dependency detection mentioned in code but not in tool description). Parameter descriptions entirely absent. Tool violates single-responsibility principle by combining DAG planning with execution logic in the same interface.
Calculate topological execution order for tool DAG.
Input schema 'steps' parameter is an empty object type with no property descriptions. Nested structure (tool_name, params, depends_on) is completely undocumented. LLM cannot infer valid input format.
Tool description is 60 characters (below 10-1024 baseline) and lacks WHAT/WHEN/WHY context. Does not explain when to call this vs. other planning tools, what the output structure is, or how to interpret execution order.
No output schema documented. LLM cannot predict return type (list of strings? dict? error structure?). Code shows it returns a list, but this is invisible to the agent.
No error handling guidance. Code detects cyclic dependencies and raises ValueError, but tool description does not explain this failure mode or how to recover. LLM receives raw exception text.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | 2026-07-28+ | v2 |
Tool name 'plan_execution_order' is vague. Does it PLAN (return a plan) or EXECUTE (run the plan)? Code shows it only plans; 'execute_dag' is a separate method. Name should be 'get_execution_order' or 'plan_dag_execution'.