| name | workflow-planning |
| description | Plan and navigate multi-step domain workflows using the state graph. Activate when a task involves ordered tool dependencies, multiple state transitions, or when unsure which tool to call next in a domain sequence.
|
Workflow Planning
When to Use
Use workflow planning when:
- The task spans multiple state transitions (e.g., parse → compute → filter → cluster).
- You are unsure which tool comes next or what prerequisites exist.
- You want to see all possible paths through a domain's tool graph.
Do NOT use for simple single-tool tasks — just search and call directly.
Not all servers expose workflow planning tools. They are only registered when
the server has tools with state annotations (requires/produces). If
plan_{server}_workflow is not listed in the server's available tools, skip
planning and use search_{server}_tools to find what you need directly.
The State Graph
Domain tools declare state transitions:
requires — states that must exist before this tool can run.
produces — states this tool generates after successful execution.
These form a directed graph that plan_{server}_workflow can navigate.
Available Modes
Overview — see the full graph
plan_{server}_workflow(mode="overview")
Returns all tools with their state requirements and productions. Use this first
to understand the domain's structure.
Path — get a recommended sequence
plan_{server}_workflow(
mode="path",
current_state="{domain}.data_loaded",
target_state="{domain}.results_exported"
)
Returns an ordered list of tools to call to reach the target state from the
current state. Follow this sequence in your execute_{server}_code calls.
Tool — inspect a specific tool's context
plan_{server}_workflow(mode="tool", tool_name="process_data")
Returns the tool's prerequisites, what it produces, and where it fits in the graph.
Workflow with Skills
For common multi-step workflows, load a pre-built skill instead of planning manually:
search_{server}_tools(query="...", category="skills") — find relevant skills.
load_{server}_skill(skill_name="...") — load the skill's step-by-step instructions.
- Follow the loaded instructions, which reference specific tools in the correct order.
Skills are preferred over manual planning when they exist for your task — they
encode domain expertise and edge-case handling that raw graph traversal does not.