Skip to main content
Glama

plan_tool_workflow

Read-onlyIdempotent

Plan a read-only dependency order across backend tools, validating tool references and the dependency graph for cycles or unresolved steps, without executing any tool.

Instructions

Build a deterministic, read-only dependency/order plan across enabled backend tools.

Never executes any tool. Every resolved tool reference is checked only against the currently loaded, enabled backend catalog (the same index find_tool searches) -- an unresolved or ambiguous reference is reported explicitly, never guessed or silently dropped.

Args: steps: bounded (max 25) list of step specs. Each step is a dict: - "id": optional stable step id (str); defaults to "step_". - "tool": exact tool name to resolve via the loaded catalog (preferred -- deterministic, exact match, never guessed). - "hint": free-text action description used only when "tool" is omitted; resolved via the same bounded keyword search find_tool uses (no semantic/embedding guessing). Marked "ambiguous" when multiple close-scoring candidates exist. - "depends_on": list of step ids (or exact tool names) that must run before this step. include_candidates: include up to 5 scored candidate tools per unresolved/ambiguous step. Defaults to False to keep the plan compact.

Returns "ok", "steps" (resolved metadata per step), "order" (topological order, or None whenever any step/dependency is unresolved or the graph has a cycle), "acyclic", "cycles", "unresolved_step_ids", "unresolved_dependencies", and "artifact" (a router_dependency_plan-shaped payload suitable for pipeline.artifact_contracts.write_artifact -- never written to disk by this tool). This never calls invoke_tool/invoke_read_tool.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
stepsYes
include_candidatesNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false. The description adds value by detailing that tool references are checked against the loaded catalog, never guessed, and unresolved references reported explicitly. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is thorough but slightly long. However, it is well-structured with clear sections and bullet-like list for step spec fields. Could be more concise, but still effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a planning tool with nested steps and dependencies, the description covers all aspects: input parameters, constraints (max 25 steps), resolution logic, return fields, and behavior. Output schema exists but description adds necessary context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description fully explains both parameters: steps (bounded max 25, each step dict with id, tool, hint, depends_on) and include_candidates (default false, returns up to 5 candidates). Also explains return fields in detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it builds a deterministic, read-only dependency/order plan across enabled backend tools. It uses specific verbs and resources, and distinguishes itself from siblings like invoke_tool and find_tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Never executes any tool' and explains when to use (planning dependencies) and when not (execution). Provides alternative: find_tool for searching tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/secure-ssid/centralmcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server