Planning System MCP Server
This MCP server enables AI agents to interact with a comprehensive planning system for project management through the following capabilities:
Plan Management Create, update, delete, and list plans with status tracking (draft, active, completed, archived). Retrieve full hierarchical structure or comprehensive summaries of plans.
Node Operations (Phases, Tasks, Milestones) Create nodes with rich metadata (title, description, type, status, due dates, agent instructions, acceptance criteria). Update, delete, move, and reorder nodes within the hierarchy. Get full node context (children, logs, artifacts) or ancestry path from root to a specific node. Batch update multiple nodes in a single operation.
Universal Search Query across global, plan, or node scopes with filters for type, status, and result limits.
Logging & Collaboration Add and retrieve log entries (progress, reasoning, challenge, decision, comment) with tagging and filtering support.
Artifact Management Add, get, search, list, and batch retrieve artifacts associated with nodes, including metadata and content type support.
Dependency Analysis Create dependency edges with cycle detection, list dependencies, analyze impact scenarios, and identify critical paths.
Progressive Context Loading Retrieve task context at configurable depth levels (1–4) with token budgeting for efficient agent context management, plus dependency-aware task suggestions.
RPI Chains Create structured Research→Plan→Implement task decompositions with automatic dependency wiring.
Transport Flexibility Supports stdio mode for local use and HTTP/SSE mode for remote or cloud deployment.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Planning System MCP Serversearch for all active tasks in the product launch plan"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AgentPlanner MCP Server
MCP server for AgentPlanner — AI agent orchestration with planning, dependencies, knowledge graphs, and human oversight. Works with Claude Desktop, Claude Code, ChatGPT, Cursor, Windsurf, Cline, and any MCP-compatible client.
Prerequisites
An AgentPlanner account at agentplanner.io
An API token (Settings > API Tokens in the AgentPlanner UI)
Related MCP server: Helios-9 MCP Server
Setup
Claude Desktop — one-click install (.mcpb)
The fastest path. Download agent-planner.mcpb from the latest release, double-click it, and Claude Desktop will install the extension and prompt for your AgentPlanner API token. No Node.js setup, no JSON editing.
To build the bundle yourself:
npm run build:mcpb # produces agent-planner.mcpb
npm run validate:mcpb # schema-check manifest.jsonManual config (Claude Desktop, Claude Code, Cursor, etc.)
Add to your MCP client config (claude_desktop_config.json, .cursor/mcp.json, etc.):
{
"mcpServers": {
"agentplanner": {
"command": "npx",
"args": ["-y", "agent-planner-mcp"],
"env": {
"API_URL": "https://agentplanner.io/api",
"USER_API_TOKEN": "your_token_here"
}
}
}
}Thin local client (v1)
A lightweight CLI loop for task-driven workflows. No MCP client required — useful when an agent (Claude Code, OpenClaw, a script) just needs to read its current task as files and write status back.
Mental model
AgentPlanner (the API) is the source of truth.
.agentplanner/files are a regeneratable cache, written by the CLI for the agent to read.The agent works in the real repo. Status changes flow back via explicit writeback commands. There is no live sync.
Running locally? See agent-planner/LOCAL_QUICKSTART.md for the 5-minute path to a full local stack you can point this CLI at. Use
--api-url http://localhost:3000in theloginstep below.
The loop
# 1. Login — saves credentials and auto-selects a default plan
# (pass --plan-id to pick one, or it auto-selects if you have exactly one plan)
npx agent-planner-mcp login --token <token> --api-url https://agentplanner.io/api [--plan-id <id>]
# Localhost variant (after `docker compose -f docker-compose.local.yml up`):
npx agent-planner-mcp login --token <token> --api-url http://localhost:3000
# 2. See your task queue
npx agent-planner-mcp tasks [--plan-id <id>]
# 3. Pick the next task and pull context (claims it for 30 minutes)
npx agent-planner-mcp next [--plan-id <id>]
# Force a fresh recommendation even if you have active work:
npx agent-planner-mcp next --fresh
# 4. Or pull context for a specific plan/node (no claim, no status change)
npx agent-planner-mcp context --plan-id <plan-id> --node-id <node-id>
# If a default plan is set, --plan-id can be omitted:
npx agent-planner-mcp context --node-id <node-id>
# 5. Explicit writeback. No live sync.
npx agent-planner-mcp start # claim + mark in_progress
npx agent-planner-mcp blocked --message "Waiting on API decision"
npx agent-planner-mcp done --message "Implemented and verified"next resolution order
next is a smart picker. It resolves in this order:
Resume — if any task in scope is
in_progress, pick it. (Source:resume_in_progress.)Recommend — call
suggest_next_tasks(dependency- and RPI-aware) for a fresh pick. (Source:suggest_next_tasks.)Fallback — first
not_startedtask in your queue. (Source:my_tasks_fallback.)
tasks is the queue view; next is the smart picker; next --fresh skips step 1 and forces a fresh recommendation even when active work exists.
What start, blocked, done actually do
Command | Status | Claim | Log entry | Learning written to Graphiti |
|
| claim (30m TTL) | — | — |
|
| release |
| — |
|
| release |
| yes (entry_type: |
All hooks are best-effort: claim/release/learning failures do not block the status update. Claim collisions (another agent already holds the lease) are reported but not fatal.
What current-task.md surfaces
Beyond title, description, agent_instructions, and acceptance criteria, the generated current-task.md includes BDI signals from the API responses already being fetched:
Plan health —
quality_score, rationale,coherence_checked_at(or "never")Coherence warning — flagged when
node.coherence_statusiscontradiction_detectedorstale_beliefs, with concrete next-step pointers (check_contradictions,recall_knowledge)Detected contradictions — listed when present in the node context
Task mode — shown when not
free(RPI awareness forresearch/plan/implement)Linked goals, relevant knowledge (top 5), plan progress snapshot
When to use CLI vs MCP vs API skill
You want… | Use |
Zero-setup local task context for any coding agent (Claude Code, OpenClaw, scripts) | CLI (this thin client) |
Rich, structured tool access from inside an MCP-aware agent (Claude Desktop, Cursor, etc.) | MCP (run |
Direct programmatic integration from your own service | API (REST endpoints; same routes the MCP and CLI use) |
The CLI is intentionally thin: it covers the read context + writeback loop and nothing else. For decomposition, dependency creation, knowledge graph queries, RPI chains, coherence runs, and goal management, use the MCP server (or the API directly).
Agent Loop Facade
AgentPlanner API now exposes a narrow /agent/* facade for the main autonomous loop. MCP uses this facade when available and falls back to older domain endpoints for self-hosted older APIs.
Primary mappings:
MCP tool | Preferred API endpoint |
|
|
|
|
|
|
|
|
|
|
Validation:
npm run validate:mcp-loopThis checks that the MCP tools route through the facade for briefing, task claim/start, and session completion/blocking.
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"agent-planner": {
"command": "npx",
"args": ["-y", "agent-planner-mcp"],
"env": {
"USER_API_TOKEN": "your-token",
"API_URL": "https://agentplanner.io/api"
}
}
}
}Config location: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) | %APPDATA%\Claude\claude_desktop_config.json (Windows)
Claude Code
claude mcp add agent-planner -- npx -y agent-planner-mcpThen set the env vars USER_API_TOKEN and API_URL=https://agentplanner.io/api.
ChatGPT
Settings > Apps > Advanced > Developer mode
Add MCP Server > URL:
https://agentplanner.io/mcpAuth type: API Key > enter your token from agentplanner.io Settings
Cursor
Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"agent-planner": {
"command": "npx",
"args": ["-y", "agent-planner-mcp"],
"env": {
"USER_API_TOKEN": "your-token",
"API_URL": "https://agentplanner.io/api"
}
}
}
}Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"agent-planner": {
"command": "npx",
"args": ["-y", "agent-planner-mcp"],
"env": {
"USER_API_TOKEN": "your-token",
"API_URL": "https://agentplanner.io/api"
}
}
}
}Cline (VS Code)
Add the same JSON config to your Cline MCP settings in VS Code.
Any HTTP MCP Client
Endpoint:
https://agentplanner.io/mcpDiscovery:
https://agentplanner.io/.well-known/mcp.jsonAuth header:
Authorization: ApiKey <your-token>Transport: Streamable HTTP (MCP 2025-03-26)
Key Features
39 BDI-aligned tools for state, goals, committed actions, and workspace/blueprint management — no CRUD shapes, every tool answers a whole agentic question
Full mutation surface — agents and humans-via-agents can manage every plan/node/org property, plus workspaces and reusable blueprints, without leaving the conversation; UI is optional inspection
Draft-status seam — autonomous agent creation lands as drafts surfacing in the dashboard pending queue; human-directed creation defaults to active
Dependency graph — cycle detection, impact analysis, critical path
Progressive context — 4-layer context assembly with token budgeting
Knowledge graph — temporal knowledge via Graphiti (entities, facts, contradictions)
RPI chains — Research → Plan → Implement task decomposition (one-call shortcut)
Task claims — TTL-based locking for multi-agent coordination
Organizations — multi-tenant isolation with member management
Available Tools (v1.5)
Beliefs (read state)
briefing— bundled mission control state in one calllist_plans— list plans with optional status/visibility/text filters; returns ids, status, last update, and link counts so you can pick a plan without round-trippingbriefingtask_context— single task at progressive depth 1-4goal_state— single goal deep-dive (details + quality + progress + bottlenecks + gaps)recall_knowledge— knowledge graph query (facts, entities, episodes, contradictions)search— text search across plans/nodesplan_analysis— impact, critical path, bottlenecks, coherence
Desires (goals)
list_goals— goals with health rollupupdate_goal— atomic goal update (subsumes link/unlink/achievers)create_goal— create a new top-level goal (no parent)derive_subgoal— create a sub-goal under an existing parentrecord_criterion_progress— record the latest observed value of a goal's success criterion (e.g. a metric moved 40→72); the write that makes goal attainment real
Intentions — execution
claim_next_task— pick + claim + load context (one call)update_task— atomic status + log + claim release + learningrelease_task— explicit handoffqueue_decision— escalate to human (real decision queue)resolve_decision— pick up human's answer (atomically materializes anyproposed_subtasks)add_learning— record knowledge episode
Intentions — creation
form_intention— create plan + initial tree under a goal, atomicallyextend_intention— add children under an existing parent (lightweight)propose_research_chain— RPI triple with 2 blocking edges, in one call
Intentions — structural mutation
update_plan— edit any plan propertyupdate_node— edit any node property except statusmove_node— reparent within plan; cycle-safelink_intentions/unlink_intentions— manage dependency edgesdelete_plan/delete_node— soft-delete viastatus='archived'(recoverable)
Intentions — sharing & collaboration
share_plan— atomic visibility + add/remove collaboratorsinvite_member— add user to org (by user_id or email)update_member_role— owner-only role changeremove_member— owner/admin removes non-owner member
Workspaces & Blueprints
list_workspaces— list workspaces (goal/plan folders) in an organizationcreate_workspace— create a new workspace inside an organization (slug auto-generated and de-duped)list_blueprints— list blueprints visible to you (owned + public/unlisted), filterable by scope/visibilitysave_as_blueprint— snapshot a live plan as a reusable plan-scope blueprint (structure + agent_instructions + dependencies; excludes run-state)fork_blueprint— fork a plan-scope blueprint into a target workspace as a new plan (statuses reset, lineage recorded)delete_blueprint— hard-delete a blueprint you own (already-forked plans are unaffected)
Utility
get_started— dynamic reference for new agents
See SKILL.md for full descriptions, the human-steering scenarios (A/B/C), and status='draft' vs status='active' guidance.
LLM Skill Reference
See SKILL.md for a complete reference designed to be consumed by LLMs. Include it in system prompts or agent configurations to give any LLM full knowledge of how to use AgentPlanner tools effectively.
See AGENT_GUIDE.md for a quick reference card.
Transport Modes
stdio (default)
For local use with Claude Desktop, Claude Code, Cursor, Windsurf, Cline:
npx agent-planner-mcpHTTP/SSE
For remote access (ChatGPT, cloud deployments, multi-agent systems):
MCP_TRANSPORT=http npx agent-planner-mcp
# Listens on http://127.0.0.1:3100 (override with PORT)Transport is Streamable HTTP (MCP 2025-03-26); auth via Authorization: ApiKey <your-token>. Production endpoint: https://agentplanner.io/mcp (discovery at https://agentplanner.io/.well-known/mcp.json).
Local Development
git clone https://github.com/TAgents/agent-planner-mcp.git
cd agent-planner-mcp
npm install
npm run setup # Interactive setup wizard
npm run dev # Dev server with hot reloadEnvironment Variables
Variable | Description | Default |
| AgentPlanner API URL |
|
| API token (required) | — |
|
|
|
| HTTP mode port |
|
| Environment |
|
License
MIT License - see LICENSE for details.
Support
GitHub Releases for version history and release notes
Available Tools
37 toolsadd_learningA
Record a knowledge episode. Use after research, on decisions, or when discovering important context. Graphiti extracts entities/relationships automatically. Surfaces coherence_warnings if the new content contradicts existing facts.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | ||
| scope | No | ||
| entry_type | No | fact | |
| source_description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. Discloses critical behaviors: content is auto-processed (entity/relationship extraction) and coherence warnings are surfaced. Does not mention error handling or permissions, but core behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences front-loaded with main purpose, each sentence adds value. Could be slightly more structured with parameter details, but overall efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and nested parameters, description is somewhat lightweight. Covers core purpose and behavioral traits, but fails to explain return behavior or parameter usage fully. Adequate for a simple creation tool but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate but fails to. Does not explain the meaning of 'scope' (nested object with plan_id, goal_id, node_id), 'entry_type' enum values, or 'source_description'. Only 'content' is implied but not clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description starts with 'Record a knowledge episode,' clearly stating the main action. Lists specific use cases (after research, on decisions, discovering context) which differentiates it from sibling tools like recall_knowledge (retrieval) and others.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use: after research, on decisions, or when discovering important context. Also mentions automatic entity extraction and coherence warnings, helping the agent understand context. Lacks explicit when-not-to-use or alternative tool names, but sufficient given the clear purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
briefingA
Mission control state in one call. Returns goal health summary, pending decisions, my tasks, recent activity, and a top recommendation. Use this as the single read for Cowork live artifacts and the autopilot's first call.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | mission_control | |
| goal_id | No | ||
| plan_id | No | ||
| recent_window_hours | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lists the types of information returned (goal health, pending decisions, tasks, activity, recommendation) but does not disclose side effects, authentication needs, or rate limits. With no annotations present, the description provides basic behavioral context but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first explains functionality, the second provides usage guidance. No redundancy, front-loaded with critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose and usage well but completely omits parameter semantics, which are needed for correct invocation given 4 optional parameters. Without an output schema, more detail on return values would also help. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema defines 4 parameters (scope, goal_id, plan_id, recent_window_hours) with 0% schema description coverage. The description does not explain the meaning, defaults, or valid values of any parameter, forcing the agent to infer from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool aggregates key mission control information in one call ('goal health summary, pending decisions, my tasks, recent activity, and a top recommendation'), and it positions itself as the single read for Cowork live artifacts, distinguishing it from siblings like goal_state or plan_analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends using this as 'the single read for Cowork live artifacts and the autopilot's first call,' providing clear context for when to invoke it. However, it does not explicitly state when not to use it or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
claim_next_taskA
Pick the next task in scope, claim it, and return its context — all in one call. Resolution order: (1) resume any in_progress task, (2) suggest_next_tasks, (3) my_tasks fallback. Pass fresh:true to skip the resume step.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | Yes | ||
| ttl_minutes | No | ||
| fresh | No | ||
| context_depth | No | ||
| dry_run | No | If true, return the candidate task without claiming. Lets the caller peek before committing. No phantom claim left behind. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the internal resolution order and the effect of the dry_run parameter. However, it does not cover error handling or authorization, but the disclosed logic is sufficient for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with only two sentences. The core action is front-loaded, and every sentence provides necessary information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex with 5 parameters and a nested scope object, yet no output schema. The description explains the resolution order and the fresh parameter, but omits details about the return value ('context'), the effect of context_depth, and edge cases like no task available. This leaves the agent with incomplete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 20% of parameters (dry_run) have descriptions in the schema. The description adds meaning for fresh and scope, but does not describe ttl_minutes or context_depth. It partially compensates for the low schema coverage but leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Pick', 'claim', and 'return' applied to the resource 'next task'. The resolution order and the fresh parameter add specificity, making the tool's purpose distinct, even though it does not explicitly differentiate from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidelines on the resolution order and when to use fresh:true to skip the resume step. It does not explicitly mention when not to use the tool or compare with alternatives like 'release_task', but the context is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_goalA
Create a new top-level goal (no parent). Use this when a human asks you to set up a goal — agents create goals directly, no UI step required. For a goal that contributes to an existing one, use derive_subgoal instead. Defaults to status='active' (live immediately); pass status='draft' only if you want it to sit in the pending queue for review. Lands in the user's active organization's default workspace unless workspace_id is given.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | The goal statement. | |
| description | No | What the goal means / context. | |
| type | No | outcome (end state), metric (quantitative target), constraint (must-not-violate), principle (durable invariant). | outcome |
| status | No | Default 'active' (live). Pass 'draft' to propose without activating. | active |
| success_criteria | No | Concrete, observable conditions that mark this goal achieved. | |
| priority | No | ||
| workspace_id | No | Optional. Target workspace; defaults to the active org's default workspace. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses default status='active' and that draft status puts it in pending queue, and workspace landing behavior. With no annotations, description carries full burden and does well, though could mention if there are any side effects like notifications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences front-loaded with purpose, then usage guidance, then details. Every sentence provides distinct value, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-param tool with no output schema, the description covers key behavioral aspects (top-level, defaults, workspace) and complements schema. Could be slightly more explicit about what 'top-level' means relative to a hierarchy, but overall complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 86%, and the description adds value by explaining default behaviors for status and workspace, which aren't fully captured in schema descriptions. But it doesn't elaborate on success_criteria or priority beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new top-level goal' with specific verb and resource, and distinguishes from sibling 'derive_subgoal' which creates subgoals under an existing goal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (when human asks to set up a goal) and when not (use derive_subgoal for subgoals), plus details on defaults and optional workspace.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_workspaceA
Create a new workspace inside an organization. Returns the new workspace row. The slug is auto-generated from the title and de-duplicated within the org.
| Name | Required | Description | Default |
|---|---|---|---|
| organization_id | Yes | ||
| title | Yes | ||
| description | No | ||
| icon | No | Optional emoji or icon token. | |
| slug | No | Optional. Auto-generated from title if omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses slug auto-generation and deduplication, which is helpful, but does not disclose other behavioral traits like authorization requirements, idempotency, or side effects beyond creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no waste. First sentence states action and return; second adds crucial detail about slug behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with no output schema, it covers key aspects: what is created, what is returned, and a notable behavior. Lacks detail on optional parameters and error conditions, but sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 40% (only icon and slug have schema descriptions). The description adds value by explaining slug auto-generation, but does not clarify the meaning of organization_id or title beyond what is obvious from context. Required parameters lack elaboration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it creates a new workspace inside an organization and returns the row. The verb 'create' and resource 'workspace' are specific and distinguish from sibling tools like list_workspaces or update_goal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage when you want to create a workspace in an organization, but provides no guidance on when to use alternatives or prerequisites. No mention of when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_nodeA
Soft-delete a node by setting status='archived'. Cascades to children by default. Recoverable via update_task({status: 'not_started'}).
| Name | Required | Description | Default |
|---|---|---|---|
| node_id | Yes | ||
| plan_id | No | Auto-resolved if omitted. | |
| reason | No | ||
| cascade_children | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behaviors: soft-delete (not permanent), cascading default, recoverability. No annotations provided, so description carries burden. Could mention authorization or side effects, but covers core traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three efficient sentences, each adding value. Front-loaded with primary action. No redundant text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core purpose and recovery, but lacks description of return value and does not fully document all parameters. With low schema coverage and no output schema, description could be more thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 25% (only plan_id described). Description adds context for cascade_children and implies node_id, but does not explain reason parameter. Partial compensation for low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'soft-delete a node', specifying the verb and resource. Distinguishes from siblings like delete_plan (deletes plan) and update_node (updates node).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit context: cascades to children by default and is recoverable. Gives recovery method via update_task. Doesn't state when not to use but offers enough guidance for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_planA
Soft-delete a plan by setting status='archived'. Recoverable via update_plan({status: 'active', restore: true}). Hard delete is not agent-callable — use REST + admin token if absolutely needed.
| Name | Required | Description | Default |
|---|---|---|---|
| plan_id | Yes | ||
| reason | No | Logged for audit. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the soft-delete behavior and recoverability. However, it could mention potential side effects like cascading effects or permissions, but for a simple tool it is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and every word adds value. No redundancy or unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema), the description covers the key aspects: what it does, recovery, and hard delete. Minor gap: no mention of return value or success indicator, but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (reason has a description). The description does not add meaning to plan_id beyond the tool name, nor does it explain reason further. Baseline 3 is appropriate as schema already handles half.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (soft-delete), the mechanism (setting status='archived'), and the resource (plan). It distinguishes the tool from hard delete, providing a specific verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides recovery instructions via update_plan and warns against using this tool for hard delete, directing to REST API. It gives clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
derive_subgoalA
Create a sub-goal under an existing parent goal (parent_goal_id required). For a new top-level goal, use create_goal instead. Defaults to status='active'; pass status='draft' for autonomous loops so a human can review before promotion. Drafts surface in the dashboard pending queue.
| Name | Required | Description | Default |
|---|---|---|---|
| parent_goal_id | Yes | Required. The parent goal this sub-goal contributes to. | |
| title | Yes | ||
| description | No | Optional extended description, appended after rationale. | |
| rationale | Yes | Why this sub-goal is needed to achieve the parent. Becomes the description; surfaces in human review. | |
| type | No | outcome | |
| status | No | Default 'active' for human-directed creation. Pass 'draft' when acting autonomously without explicit user direction. | active |
| success_criteria | No | Concrete, observable conditions that mark this sub-goal achieved. | |
| priority | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present, so description carries burden. It discloses defaults (status='active') and side effects (drafts surface in dashboard pending queue). Missing details on permissions or impact on parent, but still adds significant context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no wasted words. First sentence states purpose, second gives alternative, third gives usage nuance. Excellent structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, high schema coverage, no output schema or annotations, the description covers purpose, alternative, status behavior, and pending queue. Lacks return value description, but overall sufficient for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 63% (high), so baseline is 3. Description adds value by explaining that rationale 'becomes the description' and 'surfaces in human review', and clarifies status usage. Does not explain all enums but compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Create a sub-goal under an existing parent goal' and distinguishes from 'create_goal' for top-level goals. The verb and resource are clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when not to use it ('For a new top-level goal, use create_goal instead') and provides conditional guidance for status ('pass 'draft' for autonomous loops').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extend_intentionA
Add children under an existing phase or task. Use when an agent has implicit authority to decompose work (e.g., a parent task they have claimed). For high-stakes structural proposals, use queue_decision with proposed_subtasks instead. Defaults to status='active'.
| Name | Required | Description | Default |
|---|---|---|---|
| parent_id | Yes | Phase or task to add children under. | |
| plan_id | No | Plan that owns the parent (auto-resolved if omitted). | |
| rationale | Yes | Why these children. Stored in metadata for audit. | |
| children | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the default status 'active' and the nature of adding children. However, it does not mention side effects like whether it overwrites existing children or requires specific permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences front-load the purpose, then provide usage guidance and a default behavior. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description is complete for understanding the tool's purpose and usage. It does not explain return values or error handling, but given no output schema and straightforward action, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so baseline is 3. Description adds the default status but does not provide additional details for parameters beyond what schema already offers. Minimal value added over schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Add children' and the resource 'existing phase or task'. It distinguishes from the sibling tool 'queue_decision' by specifying when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('when an agent has implicit authority to decompose work') and when not to ('high-stakes structural proposals, use queue_decision'). Also notes the default status behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fork_blueprintA
Fork a plan-scope blueprint into a target workspace. Creates a new plan inside that workspace with the blueprint's structure (nodes, dependencies, agent_instructions). All node statuses reset to 'not_started'. The new plan's forked_from_blueprint_id records lineage.
| Name | Required | Description | Default |
|---|---|---|---|
| blueprint_id | Yes | ||
| workspace_id | Yes | Target workspace the new plan will land in. | |
| title | No | Optional title override for the new plan. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that node statuses reset to not_started and lineage is recorded via forked_from_blueprint_id. However, with no annotations, it omits permissions, failure behavior, or side effects like overwriting existing plans.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with the action front-loaded. No redundant information. Slightly more detail could be provided without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters and no output schema, the description covers the core behavior and parameter roles. It lacks details about error handling (invalid blueprint_id, non-existent workspace) and return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (blueprint_id missing description). Description adds context about blueprint meaning but does not specify format or uniqueness of blueprint_id. The title parameter is adequately explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (fork), the object (plan-scope blueprint), and the result (new plan in target workspace). It distinguishes from siblings like save_as_blueprint and create_plan by specifying the fork behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for duplicating a blueprint's structure into a workspace, but does not explicitly state when to use versus alternatives (e.g., save_as_blueprint or create_plan). No when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
form_intentionA
Create a plan that achieves a goal, including an initial phase/task tree, in one call. Declare execution order inline: give nodes a ref and list prerequisite refs/titles in depends_on to create 'blocks' edges in the same call — don't ship a bare hierarchy. The response returns a structure summary and warns (created_without_dependencies) when a multi-task plan has no edges. Defaults to status='active' for human-directed creation; pass status='draft' for autonomous loops so a human can review before promotion. Drafts surface in the dashboard pending queue and auto-promote to active when work begins on any node.
| Name | Required | Description | Default |
|---|---|---|---|
| goal_id | Yes | Goal this plan serves. | |
| title | Yes | ||
| description | No | ||
| rationale | Yes | Why this plan. Surfaces in human review when status=draft. | |
| status | No | active | |
| visibility | No | private | |
| tree | No | Recursive tree of nodes (phases, tasks, milestones). Children nest under parents via the 'children' array. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description fully carries the burden. It explains inline ordering creates 'blocks' edges, response includes structure summary and warnings, and draft auto-promotes when work begins. This is rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loaded with purpose, but could benefit from structuring into bullet points for readability. It is not overly long but is packed with procedural detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers creation details, dependency definition, status behavior, and response warnings. Missing explicit return value specification (no output schema) and error handling, but sufficient for a creation tool given 7 params.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (43%), but the description adds meaning for key parameters: status (active/draft context), rationale (surfaces in human review), and tree (ref/depends_on usage). It compensates partially for undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a plan with a phase/task tree in one call, specifying inline dependency ordering. It distinguishes from siblings like 'extend_intention' by emphasizing one-call creation and edge declaration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance on when to use draft vs active status based on loop type, and warns against shipping bare hierarchy. However, it does not explicitly exclude alternatives or mention when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_startedA
Onboarding for new agents. Returns the BDI tool surface map and recommended workflows: mission control loop (Cowork), single-task session (Code/CLI), multi-agent claiming (OpenClaw).
| Name | Required | Description | Default |
|---|---|---|---|
| user_role | No | agent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only describes the output, not side effects or safety guarantees. For a read-only tool, it should explicitly state it does not modify state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the purpose and then lists the key outputs. Every word adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but the description lacks explanation of the parameter and the format of the returned surface map. It adequately covers the when and what, but not the how or parameter details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the 'user_role' parameter. The parameter has an enum and default, but its meaning is not explained, leaving the agent to infer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose ('Onboarding for new agents') and specifies what it returns ('BDI tool surface map and recommended workflows'). It distinguishes itself from siblings, which are specific action tools like delete or update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for new agents, providing clear context. It does not explicitly state when not to use or mention alternatives, but the intended usage is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
goal_stateA
Comprehensive single-goal read: details, quality assessment, progress, bottlenecks, knowledge gaps, pending decisions, recent activity. Replaces get_goal + goal_path + goal_progress + goal_knowledge_gaps + assess_goal_quality.
| Name | Required | Description | Default |
|---|---|---|---|
| goal_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly labels the tool as a 'read' operation, implying no side effects. Without annotations, it provides good behavioral context, though it could explicitly confirm its read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no extraneous words. The first sentence states the core purpose, and the second lists replacements. Efficient and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter and no output schema, the description covers all aspects it intends to retrieve. It could mention the output format but is still adequate for the agent to understand the tool's scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter is goal_id, and the description clarifies it is used to identify the goal for the read. Despite 0% schema coverage, the description adds sufficient meaning, though a more detailed format hint would be better.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it is a 'comprehensive single-goal read' and lists the specific aspects covered (details, quality, progress, etc.). It explicitly names the tools it replaces, clearly distinguishing from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates it replaces multiple tools, suggesting it should be used for a holistic read. However, it does not explicitly state when not to use it or mention any prerequisites or side effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invite_memberA
Add a user to an organization by user_id or email. Caller must be org owner or admin. If email is provided and the user doesn't exist, the API returns 404 (email-invite flow stays UI-only).
| Name | Required | Description | Default |
|---|---|---|---|
| organization_id | Yes | ||
| user_id | No | ||
| No | |||
| role | No | member |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses authorization requirement and 404 error case, but omits other behavioral traits like idempotency, rate limits, or what happens if user already a member.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey the main action, authorization, and an important behavior. Front-loaded with the primary purpose, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It lacks description of return value (success response) and puts no detail on which parameter to prefer. Given the tool's moderate complexity (4 params, 1 required), it is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description adds meaning by explaining organization_id as required, user_id and email as alternative identifiers, and role with default. It lacks explicit enumeration of role options but covers core semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Add a user to an organization by user_id or email.' It distinguishes from sibling tools like 'remove_member' and 'update_member_role' by specifying the invite action and methods.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies prerequisites: 'Caller must be org owner or admin.' It also explains the 404 behavior for non-existing email, indicating a limitation. However, it does not explicitly guide when to use user_id vs email or mention any alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_intentionsA
Create a dependency edge between two existing tasks. Use to express discovered ordering constraints (e.g., agent realizes task B requires task A's output). Server rejects cycles. Both tasks must be in the same plan.
| Name | Required | Description | Default |
|---|---|---|---|
| from_task_id | Yes | ||
| to_task_id | Yes | ||
| relation | No | blocks | |
| rationale | Yes | Why this link. Stored in dependency metadata. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description carries full burden. States mutation ('Create'), cycle rejection, and same-plan constraint. Lacks details on persistence, permissions, or reversal. Adequate but could be richer for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no fluff, front-loaded with purpose. Every sentence adds value. Ideal conciseness for a tool description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers basic purpose and key constraints (same plan, cycle rejection). Lacks details on error behavior, return values, or verification. With no output schema and no annotations, more completeness would be beneficial for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (only rationale has description). Description does not explain 'from_task_id', 'to_task_id', or the 'relation' enum values. Only adds minor value for 'rationale'. Falls short of compensating for low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Create a dependency edge between two existing tasks' – a specific verb and resource. Distinguishes from sibling 'unlink_intentions' which removes a dependency.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use to express discovered ordering constraints' with an example. Mentions constraints: 'Both tasks must be in the same plan' and 'Server rejects cycles.' Could clarify when not to use (e.g., if tasks are already linked).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_blueprintsA
List blueprints visible to the user (owned + public/unlisted). Filter by scope ('plan' or 'workspace'), visibility, or owner_only=true.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | ||
| visibility | No | ||
| owner_only | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It states the tool lists blueprints and mentions filters, implying a read-only operation. It adds context beyond the schema but does not discuss side effects or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys purpose and filter options without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While there is no output schema, the description sufficiently covers the tool's functionality for listing blueprints. It lacks details like pagination or sorting, but these are not critical for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates fully by naming all three parameters (scope, visibility, owner_only) and explaining their enum values and purpose, directly mapping to the input schema properties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'list', the resource 'blueprints', and specifies the scope (visible to user) and available filters. This clearly distinguishes it from sibling tools like 'list_plans' or 'list_goals'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use this tool (to list blueprints visible to the user) and mentions filtering options, but does not explicitly exclude scenarios where other tools might be better suited.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_goalsB
List goals with health rollup. Returns aggregate counts (on_track/at_risk/stale) plus per-goal summary.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It implies a read-only operation ('list', 'returns'), but does not explicitly state read-only behavior, auth requirements, rate limits, or pagination. It discloses return content but lacks comprehensive behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the main action and return value without any extraneous words or repetition. Every word is valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and no output schema, the description provides the basic purpose and return structure. However, it lacks guidance on using the filter parameter and does not address behavioral aspects like read-only safety. More detail, especially on parameters, would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no explanation of the 'filter' parameter or its sub-properties, despite zero schema description coverage (0%). The schema has some descriptions on workspace_id, but overall the description fails to add any meaning beyond the schema, leaving the agent to guess parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists goals with health rollup, including aggregate counts and per-goal summary. This uniquely distinguishes it from sibling tools like create_goal, update_goal, and goal_state, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. alternatives. The description does not mention when not to use it, prerequisites, or differentiate from other list tools like list_blueprints or list_plans, leaving the agent to infer usage solely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_plansA
List plans with optional filters by status, visibility, or text query. Returns id, title, status, visibility, last update, and link counts so you can pick a plan to operate on without round-tripping briefing.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description partially explains behavior: it lists plans and returns specific fields. However, it does not disclose whether the operation is read-only, any side effects, pagination, or error handling. The description is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first states the primary function, the second explains the output and its purpose. Every sentence is informative and non-redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the nested parameter object and lack of output schema, the description covers the output fields and basic filtering. However, it omits details on parameters like workspace_id and limit, and does not mention pagination or ordering. It is sufficient but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the schema by listing the filter dimensions (status, visibility, text query) and their purpose. Although the schema has a nested object with some descriptions, the top-level 'filter' parameter lacks description, and the description compensates by summarizing the filter options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('plans'), and specifies the filtering options and returned fields. It clearly distinguishes the tool from sibling list tools (e.g., list_blueprints, list_goals) by its name and content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to select a plan for further operations ('so you can pick a plan to operate on without round-tripping briefing'), but it does not explicitly state when to use this tool versus alternatives like plan_analysis or update_plan. No direct usage guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspacesA
List workspaces in an organization. A workspace is a folder that owns goals + plans. Returns archived workspaces only when include_archived=true.
| Name | Required | Description | Default |
|---|---|---|---|
| organization_id | Yes | Required. Organization to scope to. | |
| include_archived | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses one behavioral trait: returns archived workspaces only when include_archived=true. However, with no annotations, other behaviors (e.g., read-only, authentication, pagination) are not addressed, leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundant words. The main action is front-loaded, followed by a concise explanation of workspace and a key behavioral note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers essential aspects: action, resource, scope, and special case for archived workspaces. However, missing details like pagination or sorting; but for a simple list tool with 2 params and no output schema, it is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description adds context beyond schema: 'organization' is linked to 'organization_id', and the include_archived parameter is explained with the 'only when' condition. Schema coverage is 50%, but description compensates well for both parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('List workspaces'), the resource ('workspaces'), and the scope ('in an organization'). It also defines what a workspace is and specifies the behavior for archived workspaces, making the purpose very clear and distinct from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., list_goals, search). The description does not mention prerequisites or provide contextual usage rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_nodeA
Reparent a node within the same plan. Cycle-safe (server rejects moves that would create a tree cycle). Optional position sets the order_index among siblings.
| Name | Required | Description | Default |
|---|---|---|---|
| node_id | Yes | ||
| new_parent_id | Yes | ||
| plan_id | No | Auto-resolved if omitted. | |
| position | No | Optional order_index among siblings. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool is cycle-safe, meaning the server rejects cycles, and mentions optional position setting. This adds value beyond the absence of annotations, though it does not cover authorization or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences cover the core purpose, cycle-safety, and optional parameter. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers key behaviors (reparenting, cycle-safety, position). Missing return value specification, but overall sufficient for a move tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (plan_id and position have descriptions). The description clarifies 'position' as order_index and implies plan_id is auto-resolved, but adds nothing for node_id or new_parent_id beyond obvious naming.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Reparent' and resource 'node within the same plan', clearly distinguishing it from siblings like delete_node, update_node, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description mentions cycle-safety and optional position, it lacks explicit guidance on when to use this tool versus alternatives like update_node or when not to use it. The context is implied but not fully directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_analysisC
Advanced plan reads: impact analysis (delay/block/remove), critical path, bottleneck list, or coherence check.
| Name | Required | Description | Default |
|---|---|---|---|
| plan_id | Yes | ||
| type | Yes | ||
| node_id | No | ||
| scenario | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description says 'reads' implying read-only, but does not disclose error behaviors, auth needs, or what happens for invalid inputs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence but packs multiple analysis types. Could be better structured but is not excessively long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters with enums and no output schema, the description lacks detail on when to use node_id or scenario, and what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%. Description does not explain parameters like plan_id, type, node_id, scenario. No information on dependencies (e.g., node_id needed for impact).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs advanced plan reads, listing specific analysis types: impact, critical path, bottlenecks, coherence. It distinguishes from siblings like list_plans or update_plan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like list_plans or update_plan. No mentioning of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
propose_research_chainA
Create a Research → Plan → Implement triple under an existing parent task or phase. The Research task feeds Plan; Plan feeds Implement (via 'blocks' dependency edges). Use when tackling work with significant unknowns. Defaults to status='active'.
| Name | Required | Description | Default |
|---|---|---|---|
| parent_id | Yes | Parent task or phase the chain attaches to. | |
| plan_id | No | Plan that owns the parent (auto-resolved if omitted). | |
| research_question | Yes | What the Research task investigates. | |
| implementation_target | Yes | What the Implement task ultimately produces. | |
| rationale | Yes | Why an RPI chain is appropriate here. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It states it creates tasks and dependency edges, and defaults to 'active' status. But it omits details like error handling, idempotency, or side effects on existing tasks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a default status note. Every word is necessary, no redundancy, and key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the chain's structure, use case, and default status. Without output schema, it could mention return value or confirmation, but it is sufficient for a creation tool with well-described parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and description does not add significant meaning beyond the existing parameter descriptions. The description's explanation of the chain structure is not parameter-specific, so it adds minimal value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool creates a Research->Plan->Implement chain under a parent task/phase, with specific verb and resource. It distinguishes from siblings like 'derive_subgoal' or 'form_intention' which create different structures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends use when 'tackling work with significant unknowns', providing clear context. However, it does not mention alternatives or when not to use it, lacking full comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
queue_decisionA
Queue a decision for human review. Writes to the real decisions table (not the knowledge graph). Replaces the autopilot pattern of calling add_learning with entry_type=decision and a 'DECISION NEEDED:' title prefix. Resolves via resolve_decision.
| Name | Required | Description | Default |
|---|---|---|---|
| plan_id | No | Plan that owns this decision. Required if node_id is not provided. | |
| node_id | No | Task that prompted the decision. If provided, plan_id is inferred. | |
| title | Yes | User-facing decision title | |
| context | Yes | Background — why this matters, what is at stake | |
| options | No | Concrete options to choose between | |
| recommendation | No | Agent's preferred option with one-line reasoning | |
| smallest_input_needed | Yes | Explicit ask for human, e.g. 'approve|defer' | |
| urgency | No | normal | |
| goal_id | No | Optional goal this decision serves | |
| proposed_subtasks | No | Tasks to materialize if the human approves. Agents propose; humans steer structure. On resolve_decision(action='approve'), these are atomically created under the given parent_id and their IDs are returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that writes go to the real decisions table (not knowledge graph) and that resolution is via resolve_decision. But it omits details on side effects, authorization needs, rate limits, or whether queuing is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no filler, front-loaded with the core purpose. Each sentence adds essential information: purpose, distinction from previous pattern, and resolution pathway.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Considering the tool has 10 parameters and no output schema, the description does not cover return behavior, confirmation, or error conditions. The proposed_subtasks parameter is complex but not explained in the description. However, the description does mention the key resolution mechanism.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 90%, so the input schema already provides adequate descriptions for most parameters. The tool description adds no additional parameter-level meaning beyond what is in the schema, achieving baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool queues a decision for human review, distinguishes itself by writing to the real decisions table instead of the knowledge graph, and explicitly replaces the autopilot pattern using add_learning with a specific title prefix. It also mentions resolution via resolve_decision, providing a complete purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides explicit guidance by contrasting with add_learning pattern and noting resolution via resolve_decision. However, it lacks explicit 'when to use vs. when not to use' statements and does not mention alternatives among sibling tools beyond add_learning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recall_knowledgeA
Universal knowledge graph query. Returns facts, entities, recent episodes, and contradictions in one shape. Use result_kind to control payload size. Replaces recall_knowledge legacy + find_entities + get_recent_episodes + check_contradictions.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search query — required for facts/entities, optional for episodes | |
| scope | No | ||
| since | No | ISO 8601 — only return episodes after this | |
| entry_type | No | all | |
| result_kind | No | all | |
| max_results | No | ||
| include_contradictions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It discloses that the tool returns multiple data types in one shape and that result_kind controls payload. However, it doesn't mention side effects, auth needs, rate limits, or behavior with no results. Adequate but not thorough for a complex tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, efficient. Every sentence adds value: states what it does, mentions result_kind control, and notes replacement of legacy tools. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters including nested objects and no output schema, the description is brief. It doesn't explain the output shape ('one shape') or how to interpret combined results. With siblings like search and list_goals, more context on when to use this vs. others would help. Adequate but incomplete for full understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 29% (low). Description adds value for result_kind ('controls payload size') but does not explain query, scope, since, entry_type, max_results, or include_contradictions beyond schema. With such low coverage, description should compensate more; it falls short.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it's a universal knowledge graph query returning facts, entities, episodes, and contradictions. It specifically mentions replacing legacy tools (recall_knowledge legacy, find_entities, get_recent_episodes, check_contradictions), distinguishing it from those. The verb 'query' and resource 'knowledge graph' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says it replaces multiple tools, giving clear context for when to use it over those legacy alternatives. Suggests using result_kind to control payload, but does not provide guidance on when not to use it or alternatives among siblings (e.g., search). Implied usage but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
release_taskA
Release a claimed task without changing status. Use for explicit handoff or abandonment.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| plan_id | No | Auto-resolved from task if omitted | |
| message | No | Optional log entry on release |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It clearly states the key behavioral trait 'without changing status', which is good. But it lacks details on prerequisites (e.g., task must be claimed), side effects (e.g., message logging), permissions, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the purpose, and contains no redundant or irrelevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, low parameter count, and adequate annotations from context signals, the description covers the core purpose and usage. However, it could be more complete by mentioning error conditions or what happens if the task is not claimed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (2 of 3 params have descriptions). The description adds no additional parameter information beyond what the schema already provides. Per criteria, with coverage > 80% baseline is 3, but here coverage is 67%, still the description does not compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'release' on a specific resource 'claimed task', and distinguishes from simply changing status by stating 'without changing status'. It also lists explicit use cases: explicit handoff or abandonment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool ('for explicit handoff or abandonment'), giving clear context. However, it does not provide when-not-to-use guidance or name alternative sibling tools, though the purpose implies differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_memberA
Remove a member from an organization. Caller must be org owner or admin (admins cannot remove other admins). Server rejects removing the org owner.
| Name | Required | Description | Default |
|---|---|---|---|
| organization_id | Yes | ||
| membership_id | Yes | ||
| reason | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses authorization rules and server-side rejection behavior, which are critical behavioral traits beyond basic CRUD.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The purpose appears in the first sentence, and constraints follow immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three parameters and no output schema. The description covers authorization but omits details like irreversibility, return value, or what happens after removal. For a simple removal it's minimally adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does not explain any of the three parameters ('organization_id', 'membership_id', 'reason'), leaving their semantics unclear. For instance, 'membership_id' is not defined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove a member') and the resource ('organization'), which is specific and distinguishes it from siblings like 'invite_member' (add) or 'update_member_role' (modify role).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit caller requirements (owner or admin) and constraints (admins cannot remove other admins, cannot remove owner), giving clear context for when to use. However, it does not explicitly compare to alternative member-management tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_decisionA
Resolve a pending decision. action is 'approve', 'defer', or 'reject'. Use this from Cowork artifact buttons or after a human responds in chat.
| Name | Required | Description | Default |
|---|---|---|---|
| decision_id | Yes | ||
| plan_id | Yes | Plan that owns the decision (required by API path) | |
| action | Yes | ||
| message | No | Optional resolution note | |
| selected_option | No | When the decision presented options, which was chosen |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the action types and optional fields. Missing details: side effects of resolution, permission requirements, state changes, or what happens to the decision (e.g., removed from pending list). The description is too brief to inform an agent about important behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that clearly state purpose and usage context. Every sentence is necessary and contributes meaning. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no output schema, and no annotations, the description is incomplete. It lacks information about the return value, error handling, the role of plan_id (required by API path), and the consequences of resolving a decision. The description covers only the basic action and partial usage context, leaving significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, and the description adds value by listing the action enum values, which are also in the schema. However, it does not explain the decision_id parameter (missing schema description) or add extra context beyond the schema for plan_id, message, or selected_option. It meets the baseline but does not compensate for gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (resolve) and the object (pending decision), and provides specific use cases (from Cowork artifact buttons or after human response). It effectively distinguishes from siblings like queue_decision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions when to use: from Cowork artifact buttons or after a human responds in chat. It does not mention when not to use or alternatives, but the context is clear and provides good guidance for a specific scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_as_blueprintA
Snapshot a live plan as a new plan-scope blueprint. Captures structure, agent_instructions, and dependencies. Excludes run-state (statuses, claims, knowledge episodes, logs, decisions, agent assignments).
| Name | Required | Description | Default |
|---|---|---|---|
| plan_id | Yes | ||
| title | No | Optional. Defaults to the source plan's title. | |
| description | No | ||
| visibility | No | private | |
| tags | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden and clearly discloses the behavioral scope: what is captured and what is excluded. This adds meaningful context beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and no extraneous words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not explain what the tool returns (e.g., blueprint ID) or mention prerequisites (e.g., plan existence). It covers inputs and exclusions reasonably but lacks output details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (only title has a description in schema). The tool description does not elaborate on any parameters (plan_id, title, description, visibility, tags), so the agent must rely solely on schema names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: snapshotting a live plan into a new plan-scope blueprint. It specifies what is captured (structure, agent_instructions, dependencies) and what is excluded (run-state), distinguishing it from siblings like fork_blueprint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use on live plans and lists captured/excluded elements, but it does not explicitly state when to use this tool versus alternatives (e.g., fork_blueprint) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchB
Text search across plans, nodes, and content. Use for finding entities by title or fragment.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| scope | No | global | |
| scope_id | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It fails to disclose behavioral traits such as whether the operation is read-only, performance implications, authorization requirements, or rate limits. The description simply says 'text search' without detailing side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise with two short sentences. Every word is purposeful with no redundancy or filler. The key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters including a nested object and no output schema, the description is too brief. It omits details about scope, scope_id, filters, and return values. The description does not sufficiently inform an agent about how to use the parameters or what to expect from the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should compensate but only provides minimal meaning for the 'query' parameter. It does not explain the 'scope', 'scope_id', or 'filters' parameters, leaving their semantics unclear beyond what the schema structure offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs text search across plans, nodes, and content, specifying the verb 'search' and the resource. It also indicates usage for finding entities by title or fragment. However, it does not explicitly differentiate from sibling tools like recall_knowledge, which might also retrieve entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a usage hint ('Use for finding entities by title or fragment') but lacks explicit guidance on when not to use this tool or alternatives. It does not address scenarios where other tools might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_contextA
Get progressive context for a task. Depth: 1 (task only), 2 (+ neighborhood), 3 (+ knowledge), 4 (+ extended plan/goals/transitive deps). For RPI implement tasks, automatically includes research+plan outputs from the chain.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| depth | No | ||
| token_budget | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses the progressive nature of context, depth effects, and the automatic inclusion for RPI tasks. It doesn't mention side effects (likely none) but hints at a token budget parameter, which adds transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the purpose and depth summary, then adding a key specialization. Every sentence provides necessary information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers depth levels and the RPI special case, but lacks explanation of token_budget semantics and return format. Given no output schema, the agent lacks guidance on expected output structure, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. While it explains depth values, it does not describe 'task_id' or 'token_budget' beyond their schema types. Token_budget's purpose (e.g., limit, hint) is ambiguous, leaving semantic gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get progressive context for a task' – a specific verb and resource. The depth levels and automatic inclusion for RPI tasks differentiate it from sibling tools, which are mostly CRUD or planning operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains depth levels and a special case for RPI tasks, providing context on when to use different depth values. However, it does not explicitly state when not to use the tool or mention alternatives, though sibling tools do not offer similar functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unlink_intentionsC
Remove a dependency edge by id.
| Name | Required | Description | Default |
|---|---|---|---|
| dependency_id | Yes | ||
| plan_id | Yes | Plan that owns the dependency. Required for the route. | |
| reason | No | Why removed. Logged for audit. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only indicates a destructive action ('Remove') without any annotations. It fails to disclose side effects, reversibility, required permissions, or impact on related data. For a mutation tool, this lack of transparency is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is concise but could benefit from additional key details without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations, output schema, and the presence of a missing parameter description, the description is incomplete. It does not specify return values, prerequisites, or behavioral context, leaving significant gaps for an agent selecting this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 67% of parameters (plan_id and reason), but the description adds no extra meaning beyond the schema. The required parameter 'dependency_id' lacks a schema description and is not elaborated in the tool description, leaving its semantics unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove a dependency edge by id') and the resource ('dependency edge'), which aligns with the tool name 'unlink_intentions'. However, the term 'dependency edge' could be clarified for users unfamiliar with the domain. It is distinct from sibling tools like 'link_intentions' and 'delete_node'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'link_intentions' or 'delete_node'. There is no mention of prerequisites, context, or exclusions, leaving the agent to infer usage from the action alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_goalA
Atomic goal update. Subsumes update_goal + link_plan_to_goal + unlink_plan_from_goal + add_achiever + remove_achiever. All changes apply together.
| Name | Required | Description | Default |
|---|---|---|---|
| goal_id | Yes | ||
| changes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses atomicity ('All changes apply together') and lists the subsumed side effects. However, it lacks details on idempotency, error handling, or permissions needed. No contradiction with annotations (none provided).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) and front-loaded with 'Atomic goal update'. It efficiently conveys the key point but could benefit from a clearer structure (e.g., listing subsumed operations separately).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (nested object, multiple subsumed operations) and no output schema, the description provides reasonable completeness about purpose and atomicity. It does not cover return values or error conditions, but for an update tool, it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It indirectly explains some parameters via subsumed operations (e.g., add_linked_plans, add_achievers), but does not cover all 'changes' properties (e.g., title, priority). The description adds value by grouping related fields but remains incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Atomic goal update' and lists the subsumed operations (update_goal, link_plan_to_goal, etc.), which distinguishes it from siblings like create_goal, derive_subgoal, and update_node. It uses specific verbs and resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool should be used instead of separate tools for linking plans and managing achievers, providing clear usage context. However, it does not explicitly state when not to use it or mention alternatives beyond the subsumed ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_member_roleA
Change a member's role within an organization. Caller must be org owner. Server rejects demoting the last admin.
| Name | Required | Description | Default |
|---|---|---|---|
| organization_id | Yes | ||
| membership_id | Yes | Membership row id (from listMembers). | |
| new_role | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses key behavioral traits: required permission level and a rejection condition for last admin. This adequately informs the agent of critical constraints, though minor details like idempotency or immediate effect are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences with no redundancy. Every sentence adds value: first states purpose, second gives critical constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 parameters, no output schema), the description covers core functionality and key restrictions. It does not mention any additional details like reversibility or side effects, but these are not essential for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (membership_id has a description). The description adds no further parameter-specific details beyond the schema. It provides overall context about the caller requirement, but does not elaborate on organization_id or new_role parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Change a member's role within an organization,' providing a clear verb+resource combination. It further clarifies constraints, distinguishing it from sibling tools like invite_member or remove_member.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies when to use the tool and includes important prerequisites (caller must be org owner) and conditions (server rejects demoting last admin). While it does not explicitly list when not to use, the context of sibling tools makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_nodeA
Edit any node property atomically: title, description, node_type, task_mode, agent_instructions, metadata. Status transitions belong on update_task (which handles claim/log side effects). Rejects node_type changes when the node has children.
| Name | Required | Description | Default |
|---|---|---|---|
| node_id | Yes | ||
| plan_id | No | Auto-resolved if omitted. | |
| title | No | ||
| description | No | ||
| node_type | No | ||
| task_mode | No | ||
| agent_instructions | No | ||
| metadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses atomic edits, lists editable properties, and notes rejection of node_type changes when children exist. This is good but could mention permissions or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with front-loaded purpose. Every sentence adds value: listing editable properties, distinguishing from update_task, noting a behavioral constraint. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 8 parameters with enums and nested objects. The description covers main editable properties and a key constraint, but lacks details on return values, plan_id auto-resolution, and metadata structure. Given complexity, it could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is very low (13%). The description adds meaning by listing the editable properties and noting a constraint on node_type, partially compensating. However, it does not detail format or constraints for each parameter beyond the schema enums.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool edits node properties atomically, lists the specific properties, and distinguishes from update_task for status transitions. This is a specific verb+resource+scope that clearly differentiates from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool (for editing properties) and when not (status transitions belong on update_task). It names the alternative tool. However, it does not cover all potential sibling tools like delete_node or move_node.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_planA
Edit any plan property atomically: title, description, status, visibility, GitHub linkage, metadata. Use status='archived' to soft-delete (recoverable via status='active' + restore=true). Hard delete stays REST-only with admin auth.
| Name | Required | Description | Default |
|---|---|---|---|
| plan_id | Yes | ||
| title | No | ||
| description | No | ||
| status | No | ||
| visibility | No | ||
| metadata | No | Shallow-merged into existing metadata. | |
| restore | No | Required when un-archiving (status: 'archived' → 'active'). Guards against accidental restoration. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses atomic updates, soft-delete behavior, recovery option, and that hard delete is separate. However, it omits auth requirements (except for hard delete), rate limits, or other side effects. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that front-load the main purpose and then provide specific behavioral notes. No redundant or extra information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not explain return values. It covers key behaviors but does not elaborate on parameters like 'GitHub linkage' or 'metadata' merging behavior. With 7 parameters and low schema coverage, slightly more detail would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (29% only for 'metadata' and 'restore'). The description adds meaning by explaining that 'status'='archived' triggers soft-delete and that 'restore' is required for un-archiving. It also implies atomicity across all properties. This compensates for the schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Edit any plan property atomically' and lists specific properties. It distinguishes this tool from 'delete_plan' by noting soft-delete via status='archived' versus hard delete via REST-only endpoint, providing clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on when to use this tool (editing plan properties) and when not (hard delete requires REST-only admin auth). It also explains the restore flag for un-archiving. However, it does not compare with sibling tools that update other resources, which is acceptable given they target different entities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_taskA
Atomic task state transition. Updates status, optionally appends a log entry, optionally releases the claim. Idempotent on identical inputs. Replaces quick_status + add_log + release_task fan-out.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| plan_id | No | Plan that owns the task (auto-resolved from task if omitted) | |
| status | No | ||
| log_message | No | Optional progress note | |
| log_type | No | Defaults from status: blocked→challenge, others→progress. | |
| release_claim | No | Default: auto (true if status is completed/blocked). Set explicitly to override. | |
| add_learning | No | Optional: also write a knowledge episode (recommended on completion) | |
| session_id | No | Optional work-session id returned by claim_next_task. Uses the agent-loop completion/block endpoint when status is completed or blocked. | |
| decision | No | Optional decision to queue when blocking a session through the agent-loop endpoint. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses key behaviors: atomic operation, idempotence, and the optional actions. This is sufficient to understand the tool's nature, though additional details about potential side effects (e.g., knowledge episode writing) are left to the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences containing no filler. Every phrase adds value, clearly stating purpose, optional actions, idempotency, and replacement of sibling tools.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters and no output schema, the description provides sufficient high-level context for an agent to understand the tool's role. It explains the atomic transition and replacement of fan-out tools. Minor gap: does not explain default log_type behavior or valid status transitions, but these are covered by schema enums.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (78%) and most parameters have descriptions. The description does not add detail beyond the schema, providing only high-level context. Since baseline is 3 for high coverage, this score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description specifies 'Atomic task state transition' with clear verb and resource. It details that it updates status, optionally appends log entry, and optionally releases claim. It also distinguishes itself by stating it replaces three previous tools (quick_status, add_log, release_task), which helps with identification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Replaces quick_status + add_log + release_task fan-out,' indicating when to use this tool instead of multiple others. However, it does not provide explicit when-not-to-use guidance or mention alternatives like the sibling 'release_task' for cases where only claim release is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
11 tool updates
v1.5.0- Added
create_goal - Added
create_workspace - Added
fork_blueprint - Changed
form_intention2 fields changed- added
Input schema / properties / tree / items / properties / depends_onAdded value: +{ + "description": "Refs (or titles) of nodes that must complete before this one. Creates a 'blocks' edge from each prerequisite to this node.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / tree / items / properties / refAdded value: +{ + "description": "Optional stable key so other nodes can reference this one in depends_on. Falls back to title if omitted.", + "type": "string" +}
- Changed
link_intentions1 field changed- changed
Input schema / properties / relation / enumPrevious value: -[ - "blocks", - "requires", - "relates_to" -]New value: +[ + "blocks", + "relates_to" +]
- Added
list_blueprints - Changed
list_goals1 field changed- added
Input schema / properties / filter / properties / workspace_idAdded value: +{ + "description": "Scope to goals inside a single workspace", + "type": "string" +}
- Changed
list_plans1 field changed- added
Input schema / properties / filter / properties / workspace_idAdded value: +{ + "description": "Scope to plans inside a single workspace", + "type": "string" +}
- Added
list_workspaces - Added
save_as_blueprint - Changed
update_goal3 fields changed- added
Input schema / properties / changes / properties / committedAdded value: +{ + "type": "boolean" +} - removed
Input schema / properties / changes / properties / goal_typeRemoved value: -{ - "enum": [ - "desire", - "intention" - ], - "type": "string" -} - removed
Input schema / properties / changes / properties / promote_to_intentionRemoved value: -{ - "type": "boolean" -}
42 tool updates
v0.8.1- Added
add_learning - Removed
add_log - Removed
batch_get_artifacts - Removed
batch_update_nodes - Added
briefing - Added
claim_next_task - Removed
create_node - Removed
create_plan - Changed
delete_node5 fields changed- added
Input schema / properties / cascade_childrenAdded value: +{ + "default": true, + "type": "boolean" +} - removed
Input schema / properties / node_id / descriptionRemoved value: -"Node ID to delete" - changed
Input schema / properties / plan_id / descriptionPrevious value: -"Plan ID"New value: +"Auto-resolved if omitted." - added
Input schema / properties / reasonAdded value: +{ + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "plan_id", - "node_id" -]New value: +[ + "node_id" +]
- Changed
delete_plan2 fields changed- removed
Input schema / properties / plan_id / descriptionRemoved value: -"Plan ID to delete" - added
Input schema / properties / reasonAdded value: +{ + "description": "Logged for audit.", + "type": "string" +}
- Added
derive_subgoal - Added
extend_intention - Added
form_intention - Removed
get_logs - Removed
get_node_ancestry - Removed
get_node_context - Removed
get_plan_structure - Removed
get_plan_summary - Added
get_started - Added
goal_state - Added
invite_member - Added
link_intentions - Added
list_goals - Changed
list_plans2 fields changed- added
Input schema / properties / filterAdded value: +{ + "properties": { + "limit": { + "default": 50, + "type": "integer" + }, + "query": { + "description": "Substring match on title (case-insensitive)", + "type": "string" + }, + "status": { + "items": { + "type": "string" + }, + "type": "array" + }, + "visibility": { + "items": { + "enum": [ + "private", + "unlisted", + "public" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +} - removed
Input schema / properties / statusRemoved value: -{ - "description": "Optional filter by plan status", - "enum": [ - "draft", - "active", - "completed", - "archived" - ], - "type": "string" -}
- Removed
manage_artifact - Changed
move_node7 fields changed- added
Input schema / properties / new_parent_idAdded value: +{ + "type": "string" +} - removed
Input schema / properties / node_id / descriptionRemoved value: -"Node ID to move" - removed
Input schema / properties / order_indexRemoved value: -{ - "description": "New position index", - "type": "integer" -} - removed
Input schema / properties / parent_idRemoved value: -{ - "description": "New parent node ID", - "type": "string" -} - changed
Input schema / properties / plan_id / descriptionPrevious value: -"Plan ID"New value: +"Auto-resolved if omitted." - added
Input schema / properties / positionAdded value: +{ + "description": "Optional order_index among siblings.", + "type": "integer" +} - changed
Input schema / requiredPrevious value: -[ - "plan_id", - "node_id" -]New value: +[ + "node_id", + "new_parent_id" +]
- Added
plan_analysis - Added
propose_research_chain - Added
queue_decision - Added
recall_knowledge - Added
release_task - Added
remove_member - Added
resolve_decision - Changed
search9 fields changed- removed
Input schema / properties / filters / descriptionRemoved value: -"Optional filters" - removed
Input schema / properties / filters / properties / limit / descriptionRemoved value: -"Maximum number of results" - removed
Input schema / properties / filters / properties / status / descriptionRemoved value: -"Filter by status" - removed
Input schema / properties / filters / properties / status / enumRemoved value: -[ - "draft", - "active", - "completed", - "archived", - "not_started", - "in_progress", - "blocked" -] - removed
Input schema / properties / filters / properties / type / descriptionRemoved value: -"Filter by type" - removed
Input schema / properties / filters / properties / type / enumRemoved value: -[ - "plan", - "node", - "phase", - "task", - "milestone", - "artifact", - "log" -] - removed
Input schema / properties / query / descriptionRemoved value: -"Search query" - removed
Input schema / properties / scope / descriptionRemoved value: -"Search scope" - removed
Input schema / properties / scope_id / descriptionRemoved value: -"Plan ID (if scope is 'plan') or Node ID (if scope is 'node')"
- Added
share_plan - Added
task_context - Added
unlink_intentions - Added
update_goal - Added
update_member_role - Changed
update_node13 fields changed- removed
Input schema / properties / acceptance_criteriaRemoved value: -{ - "description": "New acceptance criteria", - "type": "string" -} - removed
Input schema / properties / agent_instructions / descriptionRemoved value: -"New agent instructions" - removed
Input schema / properties / contextRemoved value: -{ - "description": "New context", - "type": "string" -} - removed
Input schema / properties / description / descriptionRemoved value: -"New node description" - removed
Input schema / properties / due_dateRemoved value: -{ - "description": "New due date (ISO format)", - "type": "string" -} - removed
Input schema / properties / metadata / descriptionRemoved value: -"New metadata" - removed
Input schema / properties / node_id / descriptionRemoved value: -"Node ID" - added
Input schema / properties / node_typeAdded value: +{ + "enum": [ + "phase", + "task", + "milestone" + ], + "type": "string" +} - changed
Input schema / properties / plan_id / descriptionPrevious value: -"Plan ID"New value: +"Auto-resolved if omitted." - removed
Input schema / properties / statusRemoved value: -{ - "description": "New node status", - "enum": [ - "not_started", - "in_progress", - "completed", - "blocked" - ], - "type": "string" -} - added
Input schema / properties / task_modeAdded value: +{ + "enum": [ + "free", + "research", + "plan", + "implement" + ], + "type": "string" +} - removed
Input schema / properties / title / descriptionRemoved value: -"New node title" - changed
Input schema / requiredPrevious value: -[ - "plan_id", - "node_id" -]New value: +[ + "node_id" +]
- Changed
update_plan7 fields changed- removed
Input schema / properties / description / descriptionRemoved value: -"New plan description" - added
Input schema / properties / metadataAdded value: +{ + "description": "Shallow-merged into existing metadata.", + "type": "object" +} - removed
Input schema / properties / plan_id / descriptionRemoved value: -"Plan ID" - added
Input schema / properties / restoreAdded value: +{ + "default": false, + "description": "Required when un-archiving (status: 'archived' → 'active'). Guards against accidental restoration.", + "type": "boolean" +} - removed
Input schema / properties / status / descriptionRemoved value: -"New plan status" - removed
Input schema / properties / title / descriptionRemoved value: -"New plan title" - added
Input schema / properties / visibilityAdded value: +{ + "enum": [ + "private", + "unlisted", + "public" + ], + "type": "string" +}
- Added
update_task
18 tool updates
- First observed
add_log - First observed
batch_get_artifacts - First observed
batch_update_nodes - First observed
create_node - First observed
create_plan - First observed
delete_node - First observed
delete_plan - First observed
get_logs - First observed
get_node_ancestry - First observed
get_node_context - First observed
get_plan_structure - First observed
get_plan_summary - First observed
list_plans - First observed
manage_artifact - First observed
move_node - First observed
search - First observed
update_node - First observed
update_plan
TDQS
Most tools have distinct purposes (e.g., create_goal vs derive_subgoal, update_task vs update_node), but some overlap exists (e.g., add_learning vs queue_decision for recording, briefing vs goal_state for read). Descriptions help differentiate, but with 37 tools, occasional confusion is possible.
All tools follow a consistent verb_noun pattern (e.g., create_goal, update_task, list_plans). Even compound verbs like claim_next_task and propose_research_chain fit the pattern. No mixing of conventions.
37 tools is quite high for a single server, covering goals, plans, tasks, workspaces, knowledge, decisions, and collaboration. While each tool serves a specific need, the number feels heavy and may overwhelm agents, though it is justified by the broad domain.
The toolset covers core CRUD for goals, plans, tasks, and workspaces, plus knowledge and decision management. However, gaps exist: no list_members (only invite/remove/update), no update_workspace, and no tool to view all pending decisions. These missing features may cause friction.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Durable, user-controlled goals and governed plans for AI agents.
Create, read and live-edit visual boards, Kanban plans, Gantt timelines and diagrams with AI agents.
AI-native task management: list, create, update and archive tasks with rich context for AI agents
1Transform project ideas into paint-by-numbers development plans with phases, tasks, and subtasks.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceEnables AI agents to track and manage product development projects through structured 7-phase lifecycles with sprint tracking, role-based collaboration, and multi-project support. Provides phase management, progress tracking, and team coordination tools for complete product development workflows.-
- AlicenseCqualityCmaintenanceProvides comprehensive project management capabilities through the Helios-9 API, enabling AI agents to create and manage projects, tasks, initiatives, and documents with full hierarchy support and AI-optimized metadata.65232MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to manage projects, tasks, and schedules in JJ Planner through CRUD operations.86-
- AlicenseNot gradedqualityDmaintenanceEnables AI orchestrators to manage hierarchical implementation roadmaps with phases, tasks, and plan-change tracking.Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/TAgents/agent-planner-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server