Skip to main content
Glama

Server Details

Build, run and publish Workbench flows, tasks, shims and knowledge bases.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.7/5.0

Scored across 61 tools

Disambiguation4/5

Most tools target clearly distinct resources and actions, and the descriptions do a good job separating adjacent operations like run vs. executions_get, publish vs. revisions_list, and schedule vs. schedules_list. The main blurring is that flow tags can be changed through either workbench_flows_update or entity_tags_set, and the product-docs tools versus workspace search could occasionally be confused.

Naming Consistency4/5

The set overwhelmingly follows a snake_case domain_resource_action convention, with readable prefixes for flows, KBs, shims, tasks, and comments. Minor deviations exist: docs tools use get_doc/list_docs/search_docs rather than a docs_ prefix, and there are singular/plural inconsistencies such as share_create vs. shares_list and schedule vs. schedules_list.

Tool Count1/5

With 61 tools, this is far beyond the normal ergonomic range for an MCP server and creates a large selection burden for an agent, even though many individual tools are well-scoped. The explicit 50+ threshold places this in extreme-mismatch territory.

Completeness3/5

Core domains such as flows, knowledge bases, tasks, comments, tags, and workspace search are broadly covered with create/list/get/update/delete-style operations. However, there are notable gaps: shims have no publish/delete/update surface, knowledge bases lack an update operation, and descriptions reference routines_create and caliper_* tools that are absent from this server.

Available Tools

61 tools
comments_createComment on an entityAInspect

Posts a comment on a workspace entity — a new thread, or a reply when rootId is given. Use it to leave findings where the discussion already lives (an eval result on the flow being debated, a summary on a long thread). Mention people via mentionedUserIds (from workspace member ids) to ring their notification bell; never mention someone who didn't ask to be pulled in.

NameRequiredDescriptionDefault
bodyYes
rootIdNoReply into this thread; omit to start a new one.
entityIdYes
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNo
entityKindYesWhat the thread hangs on.
mentionedUserIdsNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare write, non-destructive, closed-world behavior, so the baseline is set. The description adds genuine behavioral context: the mention path 'rings their notification bell', which is a side effect an agent should know about, plus the thread-vs-reply branching. It stops short of noting auth requirements or idempotency.

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

Conciseness4/5

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

Three sentences, front-loaded with the core action and mode selection before the usage example. The closing etiquette line ('never mention someone who didn't ask') is editorializing but arguably still useful guardrail content.

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

Completeness4/5

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

For a write tool with no output schema and annotations covering safety, the description covers purpose, use case, thread/reply behavior, and mention side effects. Missing pieces are minor (approvalId meaning, mention limits, what a successful post returns).

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

Parameters3/5

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

Schema coverage is only 43%, so the description is expected to compensate. It meaningfully explains mentionedUserIds (workspace member ids) and rootId (reply target), but leaves approvalId, workspace, entityKind semantics, and body constraints unexplained. Partial compensation warrants a baseline 3.

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

Purpose5/5

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

States a specific verb+resource ('Posts a comment on a workspace entity') and clarifies the two modes — new thread vs reply when rootId is given. An agent can immediately tell what this does without opening the schema.

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

Usage Guidelines4/5

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

Gives concrete use cases ('leave findings where the discussion already lives', 'a summary on a long thread') that establish when to reach for it. It does not, however, distinguish this from siblings comments_list or comments_resolve, nor state any when-not conditions.

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

comments_listRead an entity's comment threadsA
Read-only
Inspect

Lists the comment threads on one workspace entity (open first, then resolved) with authors and timestamps. Read this before weighing in on contested work — the threads are where disagreement lives before it becomes a decision.

NameRequiredDescriptionDefault
entityIdYes
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
entityKindYesWhat the thread hangs on.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish the safety profile (readOnlyHint=true, destructiveHint=false), so the bar is lower, and the description still adds real behavioral content: result ordering (open first, then resolved) and the fact that authors and timestamps are included. It stops short of stating pagination, volume limits, or behavior for entities with no threads.

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

Conciseness4/5

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

Two sentences, front-loaded with the operative fact (what is listed, in what order) before the advisory second sentence. The second sentence is slightly rhetorical ("where disagreement lives before it becomes a decision") but it does convey routing intent, so little is wasted.

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

Completeness4/5

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

With no output schema, the description compensates by naming the returned content (threads, authors, timestamps, ordering), which is the key information an agent needs. It remains silent on result size/pagination and on empty-result behavior, so it is strong but not fully complete.

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

Parameters3/5

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

Schema coverage is 67%: workspace is well documented in the schema, entityKind has only a terse "What the thread hangs on" description, and entityId has none. The description says only "one workspace entity," adding no format, valid-value, or relationship detail beyond the schema enum, so a baseline 3 is appropriate.

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

Purpose4/5

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

States a concrete verb and resource ("Lists the comment threads on one workspace entity") and adds ordering detail (open first, then resolved). It implicitly separates itself from the write-side siblings comments_create and comments_resolve through the read verb, but never names or contrasts with them outright, so sibling differentiation is inferred rather than stated.

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

Usage Guidelines3/5

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

"Read this before weighing in on contested work" gives a thematic when-to-use cue, which is more than nothing. However, no alternatives are named (notably comments_resolve or comments_create, the natural next/previous steps) and there is no when-not-to-use guidance or note on whether resolved threads can be filtered out.

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

comments_resolveResolve or reopen a threadA
Destructive
Inspect

Sets a comment thread's resolved state (rootId = the thread's root comment id). Resolve ONLY when the human asked or the thread's question is demonstrably settled — and say what settled it in a reply first. Reopening is for new evidence.

NameRequiredDescriptionDefault
rootIdYes
resolvedYes
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already flag this as a non-read-only, destructive mutation. The description adds meaningful policy context beyond that: the operation is a reversible toggle (resolve/reopen), and there is a sequencing constraint requiring justification before resolving. It does not state permission/auth requirements or what happens to existing replies, so it stops short of full disclosure.

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

Conciseness5/5

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

Two dense sentences with the mechanical fact (what rootId is) front-loaded, followed by the policy. No filler, no restatement of the title.

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

Completeness4/5

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

For a 4-parameter mutation tool with no output schema, the description covers purpose, when-to-use, and the key parameter. The gaps are approvalId (never explained) and workspace/auth expectations, which matter for a destructive operation, but the core agent decision-making path is well served.

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

Parameters3/5

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

Schema coverage is only 25%, so the description must carry more weight. It usefully defines rootId (the thread's root comment id) and implies resolved=true/false via 'resolve or reopen', but says nothing about workspace (which the schema does describe) or approvalId (undocumented in both places). Partial compensation for a low-coverage schema.

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

Purpose4/5

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

The description states a specific verb (sets the resolved state) and resource (a comment thread), and clarifies the ambiguous rootId by equating it to the thread's root comment id. It clearly covers both directions of the operation (resolve and reopen). It does not explicitly distinguish itself from comments_create/comments_list, though the reply-first instruction implies a division of labor.

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

Usage Guidelines5/5

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

Explicit when-to-use rules: resolve only when the human asked or the question is demonstrably settled, and reopen only for new evidence. It also imposes a prerequisite workflow step ('say what settled it in a reply first'), which implicitly routes the agent to comments_create. This is about as prescriptive as usage guidance gets.

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

entity_tags_browseBrowse the workspace's tagsA
Read-only
Inspect

Without a tag: every tag in use across the workspace with how many entities carry it, most-used first — the vocabulary the team already organizes by. With a tag: everything filed under it across every tool, each with its kind, id, title, and path. Use it to reuse existing labels instead of inventing near-duplicates, and to answer 'show me everything about X' when X is a label.

NameRequiredDescriptionDefault
tagNoA tag to expand into its items. Omit to list tags.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds non-annotation behavior: result ordering ('most-used first') and the fields returned in each mode (tag name + count; kind, id, title, path), but says nothing about result limits or pagination.

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

Conciseness4/5

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

Three sentences, front-loaded with the two modes that matter most before the usage advice. It is efficient, though 'the vocabulary the team already organizes by' is slight editorial padding for an agent-facing definition.

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

Completeness4/5

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

With no output schema, the description carries the return-shape burden and does so for both modes, which is the key gap an agent would otherwise face. It omits pagination/size limits, the only remaining incompleteness for a browse tool.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, and the schema already documents omitting the tag. The description goes beyond that by spelling out what each mode actually produces, which clarifies the semantics of the tag parameter's presence/absence rather than just restating it.

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

Purpose5/5

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

The description names the resource precisely and separates the two operating modes: no tag lists all workspace tags with usage counts, a tag expands to all items filed under it across every tool. That mode split makes it trivially distinguishable from entity_tags_get and entity_tags_set.

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

Usage Guidelines4/5

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

It gives concrete usage triggers: 'reuse existing labels instead of inventing near-duplicates' and answering 'show me everything about X' when X is a label. It stops short of naming alternatives (entity_tags_get, search_workspace) or stating when not to use it, so it is clear context without explicit routing.

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

entity_tags_getRead the tags on entitiesA
Read-only
Inspect

Returns the tags on a batch of entities of one kind — the labels galleries organize by. Ids come from the kind's list/get tool or from search_workspace. Use it before entity_tags_set so you replace the full set knowingly, and to answer 'what is this filed under'. Entities the user can't see are omitted.

NameRequiredDescriptionDefault
idsYes
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
entityKindYesWhich kind the ids belong to.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavior beyond that: results are batch-scoped to one entityKind and 'Entities the user can't see are omitted', i.e. permission-based filtering of results. It does not describe pagination or the shape of the returned tag set.

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

Conciseness4/5

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

Three tightly packed sentences, front-loaded with the return value before the usage guidance. The gloss 'the labels galleries organize by' earns its place by disambiguating 'tags' in this domain. Slightly dense but no filler sentences.

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

Completeness4/5

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

No output schema exists, so the description carries the burden of describing the return, which it does at a high level ('returns the tags on a batch of entities'). Combined with the permission-omission note and the id-sourcing guidance, an agent has enough to call it correctly, though the exact tag object shape remains unspecified.

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

Parameters4/5

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

Schema coverage is 67%: workspace and entityKind are documented in the schema, but ids is not. The description compensates by explaining where ids come from (the kind's list/get tool or search_workspace) and that they belong to a single kind, which is the key constraint linking ids and entityKind. It does not mention the 100-item batch ceiling, which the schema already enforces.

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

Purpose5/5

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

States a specific verb and resource ('Returns the tags on a batch of entities of one kind') and immediately distinguishes itself from entity_tags_set, which it names explicitly. An agent can tell it apart from the sibling tag tools without opening any schema.

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

Usage Guidelines4/5

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

Gives strong context: ids come from the kind's list/get tool or from search_workspace, and it should be run before entity_tags_set so the full set is replaced knowingly. It also frames a concrete question it answers ('what is this filed under'). It stops short of naming when NOT to use it versus entity_tags_browse, so it is not a full when/when-not/alternative spec.

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

entity_tags_setSet an entity's tagsA
Destructive
Inspect

Replaces the FULL tag set on one entity (an empty list clears it). Read the current tags with entity_tags_get first and pass the merged list — this is not additive. Tags are lowercase letters, numbers, spaces, and hyphens; prefer labels already in use (entity_tags_browse) so the workspace's vocabulary stays small. The id comes from the kind's list/get tool or search_workspace.

NameRequiredDescriptionDefault
tagsYes
entityIdYes
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.
entityKindYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true, but the description adds the crucial nuance annotations cannot: that this is a full replacement rather than an append, that an empty list clears tags, and how to avoid accidental data loss by reading first. It also discloses the tag format constraints and workspace-vocabulary preference, which are real behavioral characteristics.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the destructive replacement semantic that matters most. Every sentence carries distinct, non-redundant information: replacement behavior, read-then-merge workflow, format/vocabulary rules, and id sourcing.

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

Completeness4/5

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

With no output schema, the description does not explain what the call returns (e.g. the resulting tag list), and it does not mention the needs_confirmation/approvalId flow that the schema implies for a destructive operation. Otherwise it is complete: mutation semantics, safety guidance, format constraints, and id sourcing are all covered.

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

Parameters4/5

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

Schema coverage is only 40%, so the description must compensate, and it does so for the highest-risk parameter: tags format (lowercase/numbers/spaces/hyphens) and replace semantics. It also explains where entityId comes from. It does not explain entityKind's 20 enum values or workspace/approvalId semantics, which the schema carries on its own.

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

Purpose5/5

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

The opening clause 'Replaces the FULL tag set on one entity' gives an exact verb, resource, and scope, and the parenthetical '(an empty list clears it)' nails the edge case. It is clearly distinguished from the read-oriented siblings entity_tags_get and entity_tags_browse, which it names directly.

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

Usage Guidelines5/5

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

It explicitly states when and how to use it: read current tags with entity_tags_get first, merge, then pass the full list, and warns that the call is not additive. It also directs the agent to entity_tags_browse for vocabulary and to the kind's list/get tool or search_workspace for the id, leaving nothing to inference.

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

get_docFetch ZeroWidth doc by slugA
Read-only
Inspect

Fetch the full Markdown body of a specific docs page by its slug. Use this after search_docs when the user needs the complete content of a page. No authentication required.

NameRequiredDescriptionDefault
slugYesPage slug. Accepts 'compass/api', '/compass/api', or 'docs/compass/api'.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds two things beyond that: the return payload is the 'full Markdown body' (valuable because there is no output schema) and that no authentication is required. It does not discuss rate limits or caching, hence not a 5.

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

Conciseness5/5

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

Three short sentences with no filler; the core action is front-loaded and the sequencing hint and auth note each carry distinct information. Nothing could be removed without losing content.

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

Completeness5/5

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

For a single-parameter read tool with no output schema, the description supplies exactly the missing pieces: what is returned (full Markdown body), when to reach for it versus search, and the absence of an auth barrier. Nothing an agent needs to invoke it correctly is missing.

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

Parameters3/5

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

Only one parameter, and the schema documents it at 100% coverage including accepted slug formats ('compass/api', '/compass/api', 'docs/compass/api'). The description adds nothing about the slug beyond restating it, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb (fetch) and resource (full Markdown body of a docs page) plus the retrieval key (slug). An agent can immediately distinguish this from search_docs (search) and list_docs (enumerate) without opening any schema.

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

Usage Guidelines4/5

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

Explicitly positions itself in a workflow: 'Use this after search_docs when the user needs the complete content of a page,' which names the alternative and the condition that selects this tool. It does not mention list_docs as the other plausible sibling, so it stops just short of exhaustive routing guidance.

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

list_docsList ZeroWidth docs pagesA
Read-only
Inspect

Enumerate all available docs pages, optionally filtered by product (e.g. 'compass', 'legal', 'overview'). Use this to discover what slugs exist before calling get_doc. No authentication required.

NameRequiredDescriptionDefault
productNoOptional product slug filter (e.g. 'compass', 'legal', 'overview').

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuinely new context beyond that: 'No authentication required.' It stops short of describing pagination or result shape, but that gap is minor for a simple read.

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

Conciseness5/5

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

Two sentences, no filler, and the scoping/workflow guidance is front-loaded before the operational note about authentication.

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

Completeness4/5

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

With no output schema, the description does tell the agent what it will get conceptually (available pages, their slugs) and how it fits with get_doc. It omits return fields and pagination behavior, which an agent might want, but nothing prevents correct invocation.

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

Parameters3/5

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

Schema description coverage is 100% and the single optional 'product' parameter is already documented with the same example values in the schema. The description repeats the filter semantics and examples rather than adding new meaning, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Enumerate all available docs pages') with scope and an optional filter named upfront. It is clearly distinguishable from sibling reads like get_doc, list_posts, and search_docs.

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

Usage Guidelines4/5

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

Explicitly states the use case: 'discover what slugs exist before calling get_doc', which gives the agent a concrete workflow position. It names one downstream sibling but does not contrast against search_docs, which is the closest overlapping discovery tool.

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

search_docsSearch ZeroWidth docsA
Read-only
Inspect

Search ZeroWidth product documentation. Returns matching pages with title, slug, public URL, and a query-relevant snippet. Use this when the user asks about a ZeroWidth product (Compass, Workbench, Caliper, Prism, Ledger, Napkin, the assistant), an API behavior, or a policy. No authentication required — the docs corpus is public.

NameRequiredDescriptionDefault
limitNoMax number of results. Defaults to 10.
queryYesSearch query — keywords or natural-language phrase.

TDQS

A4.1/5.0
Behavior3/5

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

Adds real value beyond the annotations by disclosing that no authentication is required and that the corpus is public — something readOnlyHint/openWorldHint do not convey. However, it says nothing about result ordering, pagination, or behavior when nothing matches, leaving meaningful behavioral gaps for a search tool.

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

Conciseness5/5

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

Three short sentences, front-loaded with what it does, then return shape, then when to use it, then the auth fact. Zero filler.

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

Completeness5/5

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

For a two-parameter read-only search with a fully described schema and annotations, this covers purpose, trigger conditions, return fields, and access requirements. Nothing an agent needs in order to call it is missing.

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

Parameters3/5

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

Schema coverage is 100% and both parameters are documented inline, so the schema carries the load. The description adds no syntax, ranking, or limit guidance beyond what is already structured; baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource (search ZeroWidth product documentation) and scopes the corpus precisely — public product docs, not workspace content — which separates it from siblings like search_workspace, workbench_kb_search, and compass_pages_search without opening any schema.

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

Usage Guidelines4/5

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

Explicitly enumerates the triggering conditions: questions about a named ZeroWidth product, API behavior, or policy. It never names an alternative tool or a when-not-to-use case, so it stops short of full routing guidance.

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

search_workspaceSearch the whole workspaceA
Read-only
Inspect

Finds anything in the workspace in one call — uploaded files (searching the text inside them), folders, Workbench flows, shims, knowledge bases and tasks, Compass pages and changes, Caliper datasets, evals, rubrics, reviews, specs and sources, Ledger entries, Napkin sketches, decks, docs, sheets, diagrams and interfaces. The same search the person uses in Home. Use it FIRST whenever the user mentions something without saying where it lives ('the SOW', 'the dispatch interviews', 'that invoice'). The query is words in any order: each word must appear in the thing's name, its tags, the names of the folders it's filed under, or the text inside it — so 'northwind sow' finds the SOW filed in the Northwind folder, and 'dispatch interview' finds 'Dispatcher interview 1.md'. Results are ranked best first. Each hit carries its id, kind, path (for a link), folderPath (where it's filed, top-down), tags, and a snippet when the words were found inside it rather than in its name — say where a thing lives using folderPath. A file's id feeds workspace_files_read; other ids feed the kind's *_get tool. Pass folderId to search only inside one folder and everything under it. If nothing comes back, try fewer or different words before telling the user it doesn't exist. Results only include what the user can see, and only kinds this token may read.

NameRequiredDescriptionDefault
qYesWords, any order, case-insensitive. Fewer words find more.
kindsNoRestrict to these kinds (file, folder, flow, page, doc, dataset, …). Omit to search everything.
limitNo
folderIdNoOnly search inside this folder and the folders under it (ids from workspace_folders_browse or a folder hit).
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

TDQS

A4.9/5.0
Behavior5/5

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

Although annotations already declare readOnly/non-destructive/closed-world, the description adds substantial behavior the annotations cannot express: AND-of-words matching across name, tags, folder names and body text, best-first ranking, per-hit fields (id, kind, path, folderPath, tags, snippet), recursive folderId scoping, and permission-based result filtering ('only what the user can see, and only kinds this token may read').

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

Conciseness4/5

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

Purpose and the 'use it FIRST' rule are front-loaded, and every later sentence adds either query semantics, return shape, or id-chaining guidance. The long enumeration of object kinds is the one place it runs heavy, though it doubles as scope documentation.

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

Completeness5/5

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

With no output schema, the description supplies what an agent needs about results (fields, ranking, snippet meaning, using folderPath to say where a thing lives) and how to chain ids into workspace_files_read or the kind's *_get tool. Permissions, empty-result handling, and workspace/scope limits are all covered.

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

Parameters5/5

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

Schema coverage is 80%, but the description still adds real meaning: it explains what the q words are matched against (name, tags, parent folder names, inner text) and gives worked examples ('northwind sow' finds the SOW in the Northwind folder). It also clarifies folderId is recursive, matching the schema, and leaves well-documented kinds/limit/workspace to the schema.

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

Purpose5/5

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

Opens with a specific verb and scope: 'Finds anything in the workspace in one call', then enumerates the object kinds covered (files, folders, flows, shims, knowledge bases, tasks, pages, datasets, evals, rubrics, reviews, specs, sources, Ledger entries, Napkin artifacts). This clearly separates it from focused siblings like compass_pages_search, search_docs, workbench_kb_search, and rooms_search, which each cover one kind.

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

Usage Guidelines5/5

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

Explicit trigger condition: 'Use it FIRST whenever the user mentions something without saying where it lives', backed by three concrete user-phrase examples. It also gives a recovery procedure when results are empty ('try fewer or different words before telling the user it doesn't exist'), which is when-to-use guidance beyond the happy path.

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

workbench_executions_getInspect a flow's executions (debug traces)A
Read-only
Inspect

The flow's stack traces: recent executions with per-node timelines — what each node received, produced, how long it took, and the exact error when one failed. USE THIS when a run misbehaves instead of guessing: read the failing node's inputs/error, then propose a fix (workbench_flows_edit_text) grounded in what actually happened. Pass executionId to inspect one run, or just flowId for the most recent runs. Node inputs/outputs are truncated for transport — the full record is in the flow's dev drawer.

NameRequiredDescriptionDefault
limitNoHow many recent executions (default 3, max 10). Ignored when executionId is set.
flowIdYesWorkbench flow id.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys (workspace is intrinsic).
executionIdNoSpecific execution to inspect. Omit for the latest runs.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/destructiveHint/openWorldHint, so the safety profile is covered. The description adds genuinely useful behavior the annotations don't: node inputs/outputs are truncated for transport and the full record lives in the flow's dev drawer. That's an important expectation-setting detail for a read tool.

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

Conciseness5/5

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

Front-loaded with what the tool returns, then the when-to-use trigger, then parameter selection, then the truncation caveat — each sentence earns its place with no filler.

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

Completeness5/5

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

No output schema exists, and the description compensates well by describing the return shape (per-node timelines, inputs/outputs, errors) and its truncation limit. Combined with 100% schema coverage and read-only annotations, an agent has everything needed to call and interpret this correctly.

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

Parameters3/5

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

Schema description coverage is 100% — the schema already documents limit's default/max and its being ignored when executionId is set, plus the workspace auth nuance. The description's 'Pass executionId to inspect one run, or just flowId for the most recent runs' adds only marginal selection guidance beyond what the schema states, so the baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb+resource (inspect a flow's executions) and enumerates exactly what comes back: per-node timelines, inputs, outputs, durations, and the failing error. This is clearly distinguishable from siblings like workbench_flows_get or workbench_flows_run, which manage or trigger flows rather than return execution traces.

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

Usage Guidelines4/5

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

Gives an explicit trigger — 'USE THIS when a run misbehaves instead of guessing' — and routes the agent to the follow-on tool (workbench_flows_edit_text) for fixing. It also clarifies executionId vs flowId selection. It lacks an explicit 'when not to use' or a comparison against trace-reading siblings, so it stops short of a 5.

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

workbench_flow_authoring_guideWorkbench flow-authoring guideA
Read-only
Inspect

READ THIS FIRST before writing or editing any raw flow orchestration JSON. Covers the document shape, the settings-vs-input-ports rule (temperature, max_tokens, tools, response_format are PORTS, not settings — constants reach ports via value nodes), exact link format, plugin links, and three complete worked examples.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, closed-world), so the bar is lower. The description usefully adds that it is a preparation prerequisite and enumerates the specific rules and examples it contains, which is real behavioral context for an agent. It does not, however, describe output format or size, keeping it short of a 5.

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

Conciseness5/5

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

Two dense sentences, front-loaded with the imperative 'READ THIS FIRST,' then a compact inventory of covered topics. Every clause earns its place; no filler.

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

Completeness4/5

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

Given zero parameters, no output schema, and annotations that already carry the safety profile, the description supplies the essential detail an agent needs: when to consult it and what it teaches. Minor gap is the absence of any hint about the guide's own return shape, though that is not obligated without an output schema.

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

Parameters4/5

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

Parameter count is zero, so the baseline is 4. No parameters need explaining and none are misrepresented; the description focuses entirely on content, which is appropriate.

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

Purpose5/5

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

States a specific resource (the flow-authoring guide / orchestration JSON format) and enumerates its exact contents (document shape, ports rule, link format, plugin links, worked examples). It is clearly distinguishable from sibling tools like workbench_flows_scaffold or workbench_node_catalog_get.

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

Usage Guidelines5/5

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

Explicitly states when to use it: 'READ THIS FIRST before writing or editing any raw flow orchestration JSON.' The trigger condition and sequencing are unambiguous, leaving nothing to inference.

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

workbench_flows_attach_knowledge_baseGive an agent flow a knowledge base to searchAInspect

Attaches a knowledge base to an AGENT flow's draft, the same way picking it in the agent editor does: a docs knowledge base becomes a search tool the model calls when a question needs it; a tabular one also puts its tables in the prompt and adds a query tool. The flow needs a system prompt (scaffold it with one). Attaching one that's already there changes nothing. Do it BEFORE workbench_flows_publish: a published version is what interfaces and schedules run, so attach, try it with workbench_flows_run, then publish — and if something already pins an older version (an interface grant), re-grant the new version. Tell the model in its system prompt what the knowledge base holds and when to search it. May return needs_confirmation.

NameRequiredDescriptionDefault
flowIdYesThe agent flow, from workbench_flows_scaffold or workbench_flows_list.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.
knowledgeBaseIdYesThe knowledge base id, from workbench_kb_create or workbench_kb_list.

TDQS

A4.8/5.0
Behavior5/5

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

With annotations only declaring readOnly=false, destructive=false, this description carries real additional context: attaching an already-present KB is a no-op (idempotency), the operation may require a confirmation round-trip, and it describes the actual runtime effect on the model's tools and prompt. No contradiction with the annotation profile.

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

Conciseness4/5

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

Front-loaded with the core action and its two behavioral modes, then workflow ordering. Slightly dense as one paragraph and the interface re-grant aside is a bit of a tangent, but no sentence is filler.

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

Completeness5/5

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

No output schema exists, yet the description surfaces the one return value that matters operationally (needs_confirmation) and pairs it with the approvalId parameter, plus precondition and ordering. An agent has everything needed to invoke this correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description adds meaning beyond the schema by explaining what the knowledgeBaseId choice entails (docs vs tabular behavior) and by tying approvalId to the needs_confirmation return. It stops short of describing workspace semantics, which the schema already handles well.

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

Purpose5/5

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

States a specific verb+resource (attach a knowledge base to an AGENT flow's draft) and immediately explains the two distinct behaviors depending on KB type: docs KB becomes a search tool, tabular KB injects tables into the prompt plus a query tool. It distinguishes itself from siblings by naming workbench_flows_publish and workbench_flows_run, and from the workbench_kb_* family by scoping to flow attachment.

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

Usage Guidelines5/5

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

Gives explicit sequencing: attach BEFORE publish, then try it with workbench_flows_run, then publish; plus the exception path (re-grant a newer version to anything pinning an older one, e.g. an interface grant). It also states a precondition (flow needs a system prompt, scaffold it) and multi-call mechanics (needs_confirmation / approvalId).

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

workbench_flows_deleteDelete a Workbench flowA
Destructive
Inspect

Deletes a flow. Its schedules stop, guest share links die, and evals targeting it can no longer run (their binding shows flowOk: false) — check caliper_flow_performance for evals and workbench_flows_schedules_list before proposing, and prefer workbench_flows_update with archived: true when the user just wants it out of the way. May return needs_confirmation.

NameRequiredDescriptionDefault
flowIdYesFlow id, from workbench_flows_list.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations declare destructiveHint=true, but the description goes far beyond that: it enumerates the concrete cascade — schedules stop, share links die, evals can no longer run and show flowOk: false — and discloses the needs_confirmation return. This is exactly the destructive-side-effect context annotations cannot carry.

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

Conciseness5/5

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

Front-loads the action, then the cascade effects, then the pre-check and alternative guidance, closing with the return caveat. Dense but every clause earns its place; no filler.

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

Completeness5/5

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

For a destructive, no-output-schema tool, the description supplies the cascade consequences, the two sibling pre-checks, the safer alternative, and the confirmation protocol. Nothing an agent needs to call this safely is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so flowId, workspace, and approvalId are already fully documented in the schema. The description adds the needs_confirmation/approvalId linkage in the return note but does not enrich the individual parameters. Baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb (Deletes) and resource (a flow), and immediately distinguishes itself from the sibling workbench_flows_update by naming the archive alternative. An agent can tell this apart from workbench_flows_update and workbench_flows_schedules_delete without opening a schema.

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

Usage Guidelines5/5

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

Explicitly routes the agent: prefer workbench_flows_update with archived: true when the user just wants it 'out of the way', and points at caliper_flow_performance and workbench_flows_schedules_list to check before proposing. Names both the alternatives and the conditions selecting them.

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

workbench_flows_edit_textSurgically edit text inside a flowA
Destructive
Inspect

Applies ONE precise text replacement to a flow's DRAFT orchestration — Edit-tool semantics: find must be the EXACT current text, copied character-for-character from workbench_flows_get, and must occur exactly once anywhere in the flow (system prompts, node settings, metadata, a node's type). find is text inside ONE value, not JSON: to change a model, find the model slug alone (anthropic-claude-haiku-4-5) and replace it with another llm slug from workbench_node_catalog_get. It can't add or remove nodes or links. Zero or multiple matches return an error instead of guessing. This is the improvement primitive: check receipts first with caliper_flow_performance, cite the run id in note, apply the edit after approval, then re-run the eval with caliper_evals_run and report the score delta — never claim improvement without the before/after. Edits land on the draft only; the published version changes when someone publishes (workbench_flows_publish, after the user has seen the result). May return needs_confirmation — show the user the exact find/replace diff and wait.

NameRequiredDescriptionDefault
findYesEXACT current text (≥3 chars), copied verbatim — never reconstructed from memory.
noteYesWhy this edit. Cite eval run ids when it follows a measurement (e.g. 'refund answers scored 1/5 on accuracy in run cer_abc — adds the manager-approval rule'). Lands in the audit log.
flowIdYesFlow to edit.
replaceYesReplacement text.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this.
approvalIdNoApproval id from a prior needs_confirmation envelope.

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation/safety profile is known. The description nonetheless adds real context beyond them: edits land on the draft only and publishing is a separate step, zero/multiple matches error rather than guess, and a `needs_confirmation` envelope may require showing a diff and waiting. That is useful behavioral detail layered on top of the annotations.

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

Conciseness4/5

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

Front-loaded with the core action and edit-tool semantics. The sentence count is high, but nearly every sentence carries constraint or workflow info that isn't repeated elsewhere; the density is slightly sprawling but not wasteful.

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

Completeness5/5

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

With no output schema and a mutation tool that can return a confirmation envelope, the description is complete enough for an agent to call it correctly: sourcing the find text, uniqueness constraints, draft-vs-published effects, and the approval/re-run loop are all covered.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds genuine semantics: `find` must be exact text copied character-for-character from workbench_flows_get, must occur exactly once, is text inside a single value rather than JSON, with a concrete model-slug example. This goes beyond the schema's own parameter text and compensates for any inference an agent might otherwise make.

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

Purpose5/5

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

States a specific verb and resource: applies ONE precise text replacement to a flow's DRAFT orchestration. It is clearly distinguished from structural siblings like workbench_flows_update by explicitly saying it can't add or remove nodes or links.

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

Usage Guidelines5/5

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

Gives explicit when-to-use context (the improvement primitive), the ordering of steps (check caliper_flow_performance, cite run id, apply after approval, re-run caliper_evals_run), and points to workbench_flows_get for sourcing the exact text. Alternatives and exclusions are both named.

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

workbench_flows_forkFork a public flow into the workspaceAInspect

Copies a PUBLIC flow from another workspace (a template) into this one as a new draft the user owns. Identify it by its flowUuid (the id on Workbench's public template pages and in workbench_flows_get output); optionally pin which published version to copy. Flows already in this workspace can't be forked — open them instead. Counts toward the plan's flow cap. May return needs_confirmation.

NameRequiredDescriptionDefault
flowUuidYesThe source flow's public uuid.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.
forkedFromVersionNoPublished version label to copy. Default: the latest published.

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations, it discloses meaningful behavior: the result is a draft owned by the user, forking consumes the plan's flow cap, and the call may return needs_confirmation (which the approvalId parameter then resolves). This is exactly the kind of mutation context an agent needs and that annotations alone do not convey.

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

Conciseness5/5

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

Four tightly-packed sentences, front-loaded with the core action before constraints, provenance, cap cost, and the confirmation hint. Every sentence carries non-redundant information.

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

Completeness5/5

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

For a mutating tool with annotations covering the safety profile and a fully documented schema, this covers ownership, cost (flow cap), the confirmation branch, and the invalid-input case. Nothing an agent needs to call it correctly is missing.

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

Parameters4/5

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

With 100% schema description coverage the baseline is 3, but the description adds real value by clarifying the provenance of flowUuid and that forkedFromVersion optionally pins which published version is copied. It does not elaborate on workspace/approvalId semantics beyond the schema, keeping it at 4.

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

Purpose5/5

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

The description states a specific verb and resource — copying a PUBLIC flow from another workspace into this one as a new draft — plus the scope constraint (cross-workspace template). It is immediately distinguishable from siblings like workbench_flows_get, workbench_flows_list, and workbench_flows_update.

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

Usage Guidelines5/5

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

It gives an explicit when-to-use (public flow from another workspace) and an explicit when-not ("Flows already in this workspace can't be forked — open them instead"), which routes the agent away from a misuse of this tool. It also points to where the required identifier comes from (public template pages and workbench_flows_get output).

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

workbench_flows_getRead one Workbench flowA
Read-only
Inspect

One flow. Default view: summary lists its nodes and links so you can pick one; view: node with a nodeId returns that node's full settings and prompt — read THAT before workbench_flows_edit_text, and copy find text from it character-for-character, never from memory. view: full returns the whole orchestration body.

NameRequiredDescriptionDefault
viewNo`summary` (default): the flow's fields plus one line per node (id, type, label, and how long its prompt is) and the links — enough to pick a node. `node`: the full settings of one node (pass nodeId) — what you need before workbench_flows_edit_text. `full`: the whole orchestration body; large.
flowIdYesFlow id.
nodeIdNoWith view `node`: which node.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys (workspace is intrinsic).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavior beyond that: what each view returns, that full is large, and the operational warning to copy `find` text character-for-character from the node view rather than from memory.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the scope ('One flow') and then the routing guidance. Every clause carries actionable content — no filler, no repetition of the title.

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

Completeness4/5

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

No output schema exists, so the description must describe returns, and it does: summary yields fields plus one line per node and links, node yields full settings and prompt, full yields the orchestration body. Workspace handling and error behavior live in the schema, so this is nearly complete, missing only edge-case caveats.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description restates the view modes and the nodeId pairing, which the enum and property descriptions already document; it adds little parameter detail the schema doesn't already carry.

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

Purpose4/5

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

The opening 'One flow' plus the per-view breakdown makes clear this retrieves a single Workbench flow, and the view semantics (nodes/links, one node's settings, whole orchestration body) pin down what is returned. It reads as retrieval rather than a sibling like workbench_flows_list, but the verb is implied rather than stated, so it stops short of a crisp 5.

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

Usage Guidelines5/5

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

It prescribes exactly which view to use and when: default summary to pick a node, `view: node` + nodeId before workbench_flows_edit_text, `view: full` for the whole body. It names the dependent sibling (workbench_flows_edit_text) and the condition that selects this tool over it, leaving nothing to inference.

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

workbench_flows_listList Workbench flowsA
Read-only
Inspect

Lists every flow in the active workspace the caller can see. Returns summaries (id, name, visibility, updatedAt) — fetch one with workbench_flows_get for the full orchestration body.

NameRequiredDescriptionDefault
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys (workspace is intrinsic).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish the safe read-only, non-destructive, closed-world profile, so the bar is lower; the description still adds real value by disclosing the visibility scoping (only flows the caller can see) and the summary-level nature of results. Pagination or result-limit behavior is not mentioned, which is the remaining gap.

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

Conciseness5/5

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

Two tight sentences, zero filler. The scoping statement comes first and the routing hint second, which is the right front-loading order.

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

Completeness4/5

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

With no output schema, the description usefully names the returned fields (id, name, visibility, updatedAt) and points to the get tool for the full body, which covers the main agent questions. Only result-set size/pagination behavior is left unaddressed.

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

Parameters3/5

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

There is one parameter (`workspace`) whose schema description is fully detailed, covering token-type behavior and overrides. The description adds nothing about it, relying entirely on the schema. Baseline 3 is correct when schema coverage is 100%.

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

Purpose5/5

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

States a specific verb (Lists) and resource (every flow) with scope (active workspace the caller can see), and explicitly names the sibling `workbench_flows_get` as the detail counterpart. An agent can separate this discovery tool from the dozens of other workbench_flows_* siblings at a glance.

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

Usage Guidelines4/5

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

Clearly implies use this for enumeration and `workbench_flows_get` when the full orchestration body is needed, which is explicit alternative routing. It stops short of stating when-not to use it (e.g., when the id is already known) or any paging guidance, so it is strong but not fully exhaustive.

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

workbench_flows_publishPublish a Workbench flow versionA
Destructive
Inspect

Snapshots the flow's current DRAFT as a named published version — the version schedules (workbench_flows_schedule), guest share links (workbench_flows_share_create), public-API runs, and 'published'-stage evals execute. The draft keeps evolving after this; runs on the published side don't change until the next publish. Publishing does NOT run the flow, but any eval set to runOnPublish starts a run (that spends credit — mention it when one exists). Refused when the draft hasn't been run since it last changed: try it first with workbench_flows_run on a few real questions, including one it should decline, and read the answers. May return needs_confirmation.

NameRequiredDescriptionDefault
noteNoWhat changed — a commit message.
flowIdYesFlow to publish.
untriedNotrue only when the person asked to publish this draft without trying it first.
versionYesVersion label, e.g. '1.0.0' or '2026-09-04'. Re-using a label retags it to this snapshot.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations flag destructive=true, but the description goes well past that: it explains that the draft keeps evolving while the published snapshot stays frozen, that publishing does NOT execute the flow, that runOnPublish evals spend credit, that refusal occurs for an untried draft, and that a `needs_confirmation` response is possible. These are exactly the side effects an agent must know before invoking a publish.

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

Conciseness4/5

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

Front-loaded with the core action and effect, then prerequisites and side effects. Dense with parentheticals (e.g., the credit-spend aside) which slightly reduce scannability, but nearly every clause carries actionable information.

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

Completeness5/5

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

For a destructive, open-world mutation with no output schema, the description covers preconditions, non-obvious side effects, the confirmation flow, and the refusal path. Nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so all six parameters are documented in the schema, including note, untried, version retagging, workspace scoping, and approvalId. The description adds workflow context around `needs_confirmation` but does not explain the `untried` flag or version label semantics beyond what the schema already says. Baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb and resource ('Snapshots the flow's current DRAFT as a named published version') and immediately clarifies the scope of what that version governs — schedules, share links, public-API runs, evals. An agent can distinguish this from workbench_flows_run, workbench_flows_update, and workbench_flows_schedule without opening any schema.

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

Usage Guidelines5/5

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

Explicitly names the precondition (draft must have been run since last change; otherwise refused), prescribes the alternative to try first ('workbench_flows_run on a few real questions, including one it should decline'), and notes the eval cost side effect. This is when/when-not/alternatives guidance in full.

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

workbench_flows_revisions_listList a flow's versions (publish history)A
Read-only
Inspect

The flow's revision history, newest first: published versions carry a version label and note; entries with version null are draft autosaves. Use it to answer 'is this published?' (any entry with a version), to find a revision id for caliper_evals_create's flowRevisionId, or to see when the draft last changed.

NameRequiredDescriptionDefault
limitNoEntries to return, default 20.
flowIdYesFlow id.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
publishedOnlyNotrue = only labeled published versions (default false).

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds real behavioral context the annotations cannot: newest-first ordering, and the semantic distinction between entries carrying a `version` label versus null-version draft autosaves. It stops short of describing page size or truncation behavior, which is a minor gap.

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

Conciseness5/5

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

Two sentences, front-loaded with the return shape and ordering before the use cases. Every clause earns its place; nothing is repeated from the schema or annotations.

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

Completeness4/5

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

With no output schema, the description must carry the burden of explaining the return shape, and it does so for the key fields (version label, note, null-version drafts) and ordering. It leaves the remaining entry fields and result-size behavior implicit, so it is strong but not exhaustive.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds interpretive value by explaining what a 'labeled published version' is, which is exactly what makes the publishedOnly flag meaningful. It says nothing extra about workspace or limit, so it is above baseline without being complete.

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

Purpose5/5

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

States a specific verb and resource ('The flow's revision history, newest first') and immediately scopes it to publish history, distinguishing it from siblings like workbench_flows_get and workbench_flows_list. An agent can tell what this returns without opening the schema.

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

Usage Guidelines5/5

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

Gives three explicit when-to-use cases — checking publish state, sourcing a revision id for caliper_evals_create's flowRevisionId, and seeing when the draft last changed — including a named sibling tool and the parameter it feeds. This is the strongest form of routing guidance.

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

workbench_flows_runRun a Workbench flowAInspect

Execute a flow and return its outputs synchronously. Runs the draft by default; pass source:"published" (optionally a version) to run the live published version. Spends workspace LLM budget, bounded by the token's cost cap. input is the flow's input envelope, e.g. {"kind":"chat","messages":[…]} or {"kind":"form","values":{…}}.

NameRequiredDescriptionDefault
inputNoFlow input envelope (RunFlowInput). Omit for a flow that needs none.
flowIdYesFlow id to run.
sourceNoWhich version to run. Default: draft.
versionNoPublished version label (only with source:"published").
timeoutMsNoMax runtime in ms (also the hard cost ceiling).
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this. Ignored for workspace API keys.
approvalIdNoRe-call with the approvalId from a needs_confirmation response after the user approves.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and openWorldHint=true but say nothing about cost; the description adds that it spends workspace LLM budget bounded by the token's cost cap and runs synchronously. That is genuine context beyond the structured fields, though side effects, idempotency, and the needs_confirmation/approval path are not surfaced here.

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

Conciseness4/5

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

Three sentences, front-loaded with the core action before the source-selection and input-format details; every sentence carries information. Slightly dense in the final clause but no wasted text.

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

Completeness4/5

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

For a 7-parameter mutation with no output schema, it covers execution mode, source selection, cost implications, and input format. The main gap is that return values are only described as 'its outputs synchronously', leaving the response shape underspecified without an output schema to compensate.

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

Parameters4/5

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

With 100% schema description coverage the baseline is 3, but the description adds concrete meaning by giving example input envelope shapes ({"kind":"chat","messages":[…]} / {"kind":"form","values":{…}}) and clarifying the draft-vs-published default for source/version. This goes beyond restating the schema.

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

Purpose4/5

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

States a specific verb and resource ('Execute a flow and return its outputs synchronously'), which clearly separates it from read-style siblings like workbench_flows_get or workbench_flows_list. It does not explicitly name an alternative tool, so it falls short of the 5-level sibling differentiation, but the action is unambiguous.

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

Usage Guidelines3/5

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

The description explains that draft runs by default and that source:"published" (with optional version) runs the live version, which is useful conditional guidance. However, it never states when to prefer this over adjacent tools such as workbench_flows_schedules_run_now or caliper_evals_run, leaving usage primarily implied.

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

workbench_flows_scaffoldScaffold a first-draft Workbench flowAInspect

Creates a runnable first-draft flow from a spec you author: pick the simplest pattern that fits (classifier for read-and-bucket, structurer for transform/extract/draft-for-review, agent for genuinely conversational), write a production-quality system prompt grounded in what the user told you, and mark anything stubbed with [STUB: ...] markers plus stubNotes. The draft opens in Workbench's simple editor at /w//flows/ — give the user that path. May return needs_confirmation; show the user what you're proposing and wait for their approval, then re-call with the approvalId. When the draft comes from a Compass change, pass its opportunityId so the flow and the change point at each other (Compass shows 'Open in Workbench'; the flow shows where it came from). Then: workbench_flows_run to try it, workbench_flows_publish when it's ready for schedules and share links.

NameRequiredDescriptionDefault
modeYesPattern editor the draft opens in. Pick interviewer for conversations that LEARN something from a person (research calls, intake, retros) — pair it with workbench_flows_share_create so non-account humans can talk to it.
modelNoThe model node slug the draft runs on, from workbench_node_catalog_get, that the workspace allows. For a classifier, a `decision` entry (Jev, Kev, Solar Decide); defaults to TypeSafe: Jev Latest. Otherwise an `llm` entry (e.g. an OpenAI, Anthropic, or Google model); defaults to Claude Haiku 4.5. Set it here rather than editing the flow afterwards.
flowNameYesImperative + specific, ≤80 chars.
stubNotesNoWhat's stubbed / missing / worth wiring next.
variablesNoagent / interviewer: types and descriptions for the {{tokens}} in systemPrompt. Every {{token}} becomes a variable on its own (the test pane and scenarios list it, the app fills it per user at run time); pass this only to set a type other than string or say what fills it.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.
categoriesNoclassifier only: 2-12 buckets. The classifier asks the systemPrompt as one pick-one question with these as the options, and returns `values.category` plus `answers.category` (probabilities and confidence).
descriptionNo1-2 sentences: what it does, where it fits.
systemPromptNoThe draft's behavior — production-quality first attempt with [STUB: ...] / [FILL IN: ...] markers where reality is missing. Required for structurer and classifier. Leave it out of an agent to get the bare model with no instructions (a 'promptless' agent).
opportunityIdNoCompass change (from compass_opportunities_list) this draft implements. Sets the flow ↔ change link; refused when the change already has a draft.
inputDescriptionNoWhat the flow's single input carries.
responseSchemaJsonNostructurer only: the output JSON Schema, JSON-encoded as a string (object root, required fields, additionalProperties false).

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only tell us this is a non-read-only, non-destructive, non-open-world write. The description adds real behavioral context beyond that: a possible `needs_confirmation` response requiring approvalId re-call, the fact that opportunityId is refused when a change already has a draft, and the returned editor path to surface to the user.

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

Conciseness4/5

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

Front-loaded with the core action before branching into pattern choice, stubbing, user-facing path, approval flow, and next steps. Dense but nearly every sentence carries actionable instruction; slightly long and could be split, but no filler.

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

Completeness5/5

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

For a 13-parameter creation tool with no output schema, the description covers the return semantics (editor path, needs_confirmation), the approval loop, the cross-tool link, and the follow-on tools. Nothing an agent needs to call it correctly appears missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, but the description adds cross-parameter workflow meaning the schema can't convey: approvalId is only for a re-call after needs_confirmation, and opportunityId creates the bidirectional Compass link. That is genuine value over the per-parameter schema text.

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

Purpose5/5

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

States a specific verb+resource ('Creates a runnable first-draft flow from a spec you author') and immediately scopes it against the update/create siblings by describing it as a first-draft generator. The pattern-selection guidance (classifier/structurer/agent/interviewer) further pins down exactly what kind of artifact is produced.

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

Usage Guidelines5/5

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

Explicit when-to-use guidance: 'classifier for read-and-bucket, structurer for transform/extract/draft-for-review, agent for genuinely conversational.' It also routes the agent forward to workbench_flows_run and workbench_flows_publish, and explains the needs_confirmation re-call path.

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

workbench_flows_scenarios_createSave a scenario for a flowAInspect

Saves a named scenario: values for the flow's variables, e.g. one demo customer. It shows in the test pane's Scenarios menu, and Caliper evals can run as it. Use the person's details from what the user shared (a CRM screenshot, a profile) and say which ones you made up. May return needs_confirmation.

NameRequiredDescriptionDefault
flowIdYesFlow id.
valuesNoValues by variable name, e.g. { member_first_name: "Lexi", plan_type: "Platinum" }. Names come from workbench_flows_scenarios_list's `variables`; a name the flow doesn't have is left out and reported back.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.
scenarioNameYesWhat it's called in the menu, e.g. 'Lexi Taylor, Platinum'.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations only declare write/non-destructive/openWorld=false, and the description adds meaningful behavioral context beyond them: the scenario surfaces in the test pane's Scenarios menu, Caliper evals can execute as it, and the call 'May return needs_confirmation' (matching the approvalId param). It stops short of explaining the confirmation round-trip in detail.

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

Conciseness4/5

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

Three compact sentences, front-loaded with the core action, then downstream visibility and the sourcing/confirmation notes. No filler, though the sourcing instruction is somewhat tangential to invocation.

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

Completeness4/5

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

For a non-destructive write tool with no output schema, the description covers what gets created, where it surfaces, and the implicit confirmation step. Combined with the fully documented schema, an agent has enough to call it correctly; only the approval cycle could be spelled out further.

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

Parameters3/5

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

Schema description coverage is 100% and the schema itself documents all five parameters richly (flowId, values, workspace, approvalId, scenarioName). The description paraphrases scenarioName/values but adds no syntax or format detail beyond what the schema already carries, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource: 'Saves a named scenario: values for the flow's variables,' and clarifies conceptually what a scenario is ('one demo customer'). It doesn't explicitly name its siblings (scenarios_update/list/delete), but the create intent is unmistakable.

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

Usage Guidelines3/5

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

Offers real workflow guidance ('use the person's details from what the user shared... and say which ones you made up') but that is about sourcing values, not about when to choose this tool over scenarios_update or scenarios_list. Usage context is implied rather than an explicit when/when-not rule.

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

workbench_flows_scenarios_deleteDelete a flow's scenarioA
Destructive
Inspect

Deletes one scenario. A design session running as it goes back to no scenario. May return needs_confirmation.

NameRequiredDescriptionDefault
flowIdYesFlow id.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.
scenarioIdYesScenario id, from workbench_flows_scenarios_list.

TDQS

A3.5/5.0
Behavior4/5

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

Although annotations already declare destructiveHint=true, the description adds real value beyond them: it discloses the side effect that a running design session reverts to no scenario, and it warns that the call may return needs_confirmation, implying a two-phase approval flow. It stops short of stating whether deletion is reversible or what happens to dependent data.

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

Conciseness4/5

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

Three very short sentences, with the core action front-loaded and side effects following. The phrasing of the second sentence ('A design session running as it goes back to no scenario') is slightly awkward, but nothing is wasted.

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

Completeness4/5

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

For a destructive tool whose annotations already carry the safety profile and whose schema fully documents parameters, this covers the essentials: what is deleted, its effect on running sessions, and the confirmation return. Missing only reversibility/dependency details, which are minor gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already documented, including approvalId's role in the confirmation flow. The description only loosely connects to those fields via 'needs_confirmation', so the baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb and resource ("Deletes one scenario"), which cleanly distinguishes it from the sibling create/update/list scenario tools. It does not explicitly name the alternatives, but the delete action is unambiguous.

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

Usage Guidelines2/5

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

There is no guidance on when to delete versus update or reset a scenario, nor any prerequisites (e.g., required scope or workspace rules). The only contextual hint is the confirmation behavior, which is about execution mechanics rather than usage selection.

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

workbench_flows_scenarios_listList a flow's variables and scenariosA
Read-only
Inspect

A flow's variables (each {{token}} in an agent's prompt, with its type) and every saved scenario with its values. Read this before creating or updating a scenario, so the values use the flow's real variable names.

NameRequiredDescriptionDefault
flowIdYesFlow id, from workbench_flows_list.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the description only needs to add context. It does: it explains that variables are {{token}} placeholders in agent prompts with types, and that the read is a prerequisite for writes. It does not mention pagination or result size limits, which keeps it from a 5.

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

Conciseness5/5

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

Two sentences, no filler. The content summary comes first and the usage instruction second, so the most actionable information is neither buried nor repeated.

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

Completeness5/5

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

No output schema exists, so the description carries the burden of describing returns — and it does, enumerating both halves of the payload (variables and scenarios with values). Combined with 100% schema coverage on inputs and clear annotations, an agent has everything needed to call it correctly.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters (flowId, workspace) are fully documented in the schema, including workspace-token nuance. The description adds no parameter-level detail, so the baseline 3 applies.

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

Purpose5/5

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

The description names the exact resource set returned: a flow's variables (with their {{token}} syntax and types) plus every saved scenario and its values. That is specific enough to distinguish it from the sibling scenarios_create/update/delete tools without opening any schema.

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

Usage Guidelines5/5

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

It gives an explicit precondition and ordering rule: 'Read this before creating or updating a scenario,' naming the alternatives by function. The agent knows both when to call it and which tools it must precede.

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

workbench_flows_scenarios_updateChange a flow's scenarioA
Destructive
Inspect

Renames a scenario or changes its values. values MERGES into what's saved: pass only the variables that change, and null to clear one. Get the scenarioId from workbench_flows_scenarios_list. May return needs_confirmation.

NameRequiredDescriptionDefault
flowIdYesFlow id.
valuesNoValues by variable name, e.g. { member_first_name: "Lexi", plan_type: "Platinum" }. Names come from workbench_flows_scenarios_list's `variables`; a name the flow doesn't have is left out and reported back.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.
scenarioIdYesScenario id, from workbench_flows_scenarios_list.
scenarioNameNoNew name.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare the safety profile (destructiveHint=true, readOnlyHint=false). The description goes well beyond that with the critical merge semantics ('pass only the variables that change'), the null-clears-a-variable rule, and the fact that the call may return needs_confirmation, which explains why an approvalId parameter exists.

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

Conciseness5/5

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

Three short sentences, each carrying a distinct fact (what it does, how `values` behaves, where the id comes from, and the confirmation possibility). Zero padding and the key mutation semantics are front-loaded.

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

Completeness4/5

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

With 6 parameters covered 100% by the schema and no output schema, the description supplies the missing behavioral pieces (merge/clear semantics, confirmation flow) for a destructive mutation tool. It stops short of detailing what the response payload looks like on success, but nothing required to call it is absent.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: that `values` merges rather than replaces and that a null value clears a variable. That materially changes how an agent should populate the nested object.

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

Purpose5/5

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

The description states a specific verb pair ('Renames ... or changes its values') against a clearly identified resource (a scenario), which cleanly separates it from the sibling create/delete/list scenario tools. An agent can identify exactly what this call mutates without opening the schema.

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

Usage Guidelines3/5

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

It gives one concrete prerequisite ('Get the scenarioId from workbench_flows_scenarios_list'), which is genuinely useful routing information. However, it never states when to prefer this over scenarios_create, or when a rename is inappropriate, so usage is implied rather than guided.

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

workbench_flows_scheduleSchedule a Workbench flowAInspect

Set a specific built flow to run automatically on a cadence — the deterministic counterpart to a routine. Each run executes the flow's latest PUBLISHED revision with the fixed input envelope and routes the output per delivery. USE THIS when the user wants a flow they've built to run on a schedule ("run my digest flow every morning"). Do NOT create a routine for this — a routine runs a free-form instruction, not a built flow. The schedule runs the PUBLISHED flow, so the flow must be published (check workbench_flows_revisions_list; publish with workbench_flows_publish if it isn't). input is fixed for every run, so the flow itself should fetch anything time-varying at run time. Manage existing schedules with workbench_flows_schedules_list / workbench_flows_schedules_update.

NameRequiredDescriptionDefault
inputYesFixed input envelope every run executes with — {"kind":"chat","messages":[…]} or {"kind":"form","values":{…}}, the same shape workbench_flows_run takes. Constant across runs.
labelNo
flowIdYesFlow to schedule (id from workbench_flows_list).
deliveryNo
intervalNoPlain cadence: hourly, daily, or weekly. Omit when passing recurrence.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.
recurrenceNoWhen it runs, like a calendar event repeats; use it for anything beyond a plain hourly/daily/weekly at one time (then omit interval). {"freq":"hourly"|"daily"|"weekly"|"monthly"|"yearly","every":N,"times":["HH:MM"],"weekdays":[0=Sun…6=Sat],"monthDays":[1…31,-1=last],"nthWeekdays":[{"nth":1…5|-1,"weekdays":[…]}],"months":[1…12],"minutes":[…],"hours":{"from","to"},"timezone":"<IANA>","starts","ends","skip":["YYYY-MM-DD"]}. Examples: weekdays at 8 → {"freq":"weekly","weekdays":[1,2,3,4,5],"times":["08:00"],"timezone":"America/Chicago"}; the last business day of the month → {"freq":"monthly","nthWeekdays":[{"nth":-1,"weekdays":[1,2,3,4,5]}],"timezone":"…"}; every other Friday → {"freq":"weekly","every":2,"weekdays":[5],"starts":"<a Friday>","timezone":"…"}. null clears it.
scheduleTimeNo
scheduleTimezoneNo
scheduleDayOfWeekNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the description only needs to add context, which it does: it discloses the hard prerequisite that the flow must be published, that each run uses the latest published revision with a fixed input envelope, and that output is routed per `delivery`. It omits the needs_confirmation/approval flow implied by the approvalId parameter, which is left entirely 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.

Conciseness4/5

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

Front-loaded with purpose, then the when-to-use rule, then the prerequisite, then parameter guidance — a sensible order with no filler. It is dense and long, but nearly every clause carries operational meaning.

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

Completeness4/5

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

For an 11-parameter mutation tool with no output schema, the description covers what an agent needs to call it correctly: the required published state, sibling routing, and the semantics of the two required params. Gaps remain around the two scheduling modes (interval vs recurrence), delivery routing choices, and the approval-id confirmation loop.

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

Parameters4/5

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

Schema coverage is 55%, so the description must compensate, and it does for the important parameters: it explains that `input` is a fixed envelope matching workbench_flows_run's shape and that the flow should fetch time-varying data at run time, and that `delivery` routes output. It adds little for label, scheduleTime/scheduleTimezone/scheduleDayOfWeek, or the interval-vs-recurrence split beyond what the schema descriptions state.

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

Purpose5/5

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

States a specific verb+resource ('Set a specific built flow to run automatically on a cadence') plus scope qualifiers (deterministic counterpart to a routine, runs the latest PUBLISHED revision). It explicitly distinguishes itself from routines_create and from the sibling schedule management tools.

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

Usage Guidelines5/5

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

Gives an explicit trigger ('USE THIS when the user wants a flow they've built to run on a schedule') with a concrete example, an explicit exclusion ('Do NOT create a routine for this'), and routes follow-up work to workbench_flows_schedules_list / _update and publish via workbench_flows_publish.

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

workbench_flows_schedules_deleteDelete a flow scheduleA
Destructive
Inspect

Removes a schedule for good. Prefer workbench_flows_schedules_update with enabled: false when the user might want it back. May return needs_confirmation.

NameRequiredDescriptionDefault
flowIdYesFlow the schedule belongs to.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.
scheduleIdYesSchedule id, from workbench_flows_schedules_list.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, but the description adds non-structured traits: permanence ('for good') and the fact that the call may return `needs_confirmation`, implying a two-step approval flow. It does not spell out that the first call may not actually delete, but the confirmation hint is valuable context beyond the annotations.

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

Conciseness5/5

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

Three short sentences, zero filler, with the destructive nature and the preferred alternative front-loaded before the return-value caveat.

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

Completeness5/5

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

For a destructive, non-open-world operation with no output schema and full annotation coverage, the description supplies the irreversibility warning, the safer alternative, and the confirmation flow. Nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema coverage is 100%, so flowId, workspace, approvalId and scheduleId are all documented in the schema. The description only implicitly links needs_confirmation to approvalId, adding little meaning beyond what the schema provides; baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb and resource ('Removes a schedule for good') and immediately distinguishes itself from the sibling that is the safer alternative. An agent can route between delete and update without opening either schema.

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

Usage Guidelines5/5

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

Explicitly names the alternative (workbench_flows_schedules_update with enabled: false) and the condition that selects it ('when the user might want it back'). This is a clear when-not-to-use rule, which is exactly what a destructive tool needs.

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

workbench_flows_schedules_listList a flow's schedulesA
Read-only
Inspect

Every schedule on one flow: cadence, whether it's paused (enabled: false), the next fire time, delivery, and the last run's status. Read this before workbench_flows_schedule (don't create a duplicate) and to get the scheduleId for workbench_flows_schedules_update / workbench_flows_schedules_delete / workbench_flows_schedules_run_now.

NameRequiredDescriptionDefault
flowIdYesFlow id, from workbench_flows_list.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds real value beyond that by describing the returned fields (cadence, enabled flag, next fire time, delivery, last run status) and the read-before-write workflow, though it says nothing about pagination or auth requirements for large schedule sets.

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

Conciseness4/5

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

Two sentences, front-loaded with what the tool returns and then the routing guidance. The field enumeration is somewhat dense but each item earns its place for an agent deciding whether this call answers its question.

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

Completeness5/5

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

No output schema exists, so the description carries the burden of describing return content, and it does so with concrete fields. Combined with the sequencing guidance for the schedule lifecycle, nothing material is missing for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, with flowId and workspace both documented in the schema, including the workspace-token nuance. The description adds no parameter-level meaning beyond 'one flow', so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Every schedule on one flow') and enumerates what the listing contains (cadence, paused state, next fire time, delivery, last run status), which lets an agent distinguish it from workbench_flows_list, workbench_flows_schedule, and the other schedule tools without opening any schema.

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

Usage Guidelines5/5

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

Explicitly says when to call it: before workbench_flows_schedule to avoid creating a duplicate, and to obtain the scheduleId needed by workbench_flows_schedules_update, _delete, and _run_now. This is a precise when/when-not with named alternatives.

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

workbench_flows_schedules_run_nowFire a flow schedule once, nowAInspect

Runs one iteration of a schedule immediately through the real scheduled pipeline (same input, same delivery — the email or channel it normally posts to) without moving its cadence. Works on paused schedules. Use it to test a schedule the user just set up. Spends workspace credit and delivers for real, so it sits behind the approval gate — may return needs_confirmation. The run is fire-and-forget: check workbench_flows_schedules_list for lastStatus, or workbench_executions_get for the trace.

NameRequiredDescriptionDefault
flowIdYesFlow the schedule belongs to.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.
scheduleIdYesSchedule id, from workbench_flows_schedules_list.

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses that it spends workspace credit, delivers for real, sits behind an approval gate, may return needs_confirmation, and is fire-and-forget with specific follow-up tools named. This is exactly the behavioral context an agent needs before invoking a real-delivery side-effecting call.

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

Conciseness5/5

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

Dense but front-loaded: the core action comes first, followed by scope, cost/approval caveats, and follow-up. Every sentence carries distinct, actionable information with no filler.

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

Completeness5/5

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

No output schema exists, but the description compensates by telling the agent the run is fire-and-forget and naming workbench_flows_schedules_list (lastStatus) and workbench_executions_get (trace) as the way to observe results. Nothing material is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already documented in the schema. The description's mention of the approval gate and needs_confirmation adds indirect context for approvalId, but it does not add syntax or format detail beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb and resource ('Runs one iteration of a schedule immediately through the real scheduled pipeline') and pins the exact scope: same input, same delivery, no cadence change. This clearly distinguishes it from workbench_flows_run and workbench_flows_schedules_update.

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

Usage Guidelines4/5

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

Explicitly says when to use it ('Use it to test a schedule the user just set up') and adds a useful edge case ('Works on paused schedules'). It stops short of naming the alternative tools (e.g., workbench_flows_run) or stating when NOT to use it, so it is clear context without full routing guidance.

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

workbench_flows_schedules_updatePause / resume / re-time a flow scheduleA
Destructive
Inspect

Changes one schedule: enabled: false pauses it (configuration kept), enabled: true resumes and recomputes the next fire time from now; interval / scheduleTime / scheduleTimezone / scheduleDayOfWeek change the cadence; label, delivery, and input can change too. Pass only what changes. Get the scheduleId from workbench_flows_schedules_list. May return needs_confirmation.

NameRequiredDescriptionDefault
inputNoNew fixed input envelope — {"kind":"chat","messages":[…]} or {"kind":"form","values":{…}}.
labelNo
flowIdYesFlow the schedule belongs to.
enabledNofalse pauses, true resumes.
deliveryNo
intervalNoNew cadence: hourly, daily, or weekly.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.
recurrenceNoWhen it runs, like a calendar event repeats; use it for anything beyond a plain hourly/daily/weekly at one time (then omit interval). {"freq":"hourly"|"daily"|"weekly"|"monthly"|"yearly","every":N,"times":["HH:MM"],"weekdays":[0=Sun…6=Sat],"monthDays":[1…31,-1=last],"nthWeekdays":[{"nth":1…5|-1,"weekdays":[…]}],"months":[1…12],"minutes":[…],"hours":{"from","to"},"timezone":"<IANA>","starts","ends","skip":["YYYY-MM-DD"]}. Examples: weekdays at 8 → {"freq":"weekly","weekdays":[1,2,3,4,5],"times":["08:00"],"timezone":"America/Chicago"}; the last business day of the month → {"freq":"monthly","nthWeekdays":[{"nth":-1,"weekdays":[1,2,3,4,5]}],"timezone":"…"}; every other Friday → {"freq":"weekly","every":2,"weekdays":[5],"starts":"<a Friday>","timezone":"…"}. null clears it.
scheduleIdYesSchedule id, from workbench_flows_schedules_list.
scheduleTimeNo
scheduleTimezoneNo
scheduleDayOfWeekNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false, so the mutation profile is covered. The description adds genuine behavioral value beyond that: pausing keeps configuration, resuming recomputes fire time from now, and 'May return needs_confirmation' warns of an approval round-trip. It doesn't explain what 'destructive' concretely means here, keeping it at 4.

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

Conciseness5/5

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

Dense, front-loaded sentences with no filler; each clause maps a field or action to its effect. The prerequisite note and the needs_confirmation warning are placed at the end without burying the primary purpose.

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

Completeness4/5

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

For a 13-parameter mutation tool with no output schema, the description covers the main behaviors, partial-update contract, prerequisite lookup, and the confirmation flow. Minor gaps (workspace/approvalId handling are left to schema) keep it just below full completeness.

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

Parameters4/5

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

Schema coverage is 62%, so structured fields do part of the work, but the description adds real meaning: enabled's pause/resume semantics, the cadence field group, and that label/delivery/input are also mutable. The recurrence/approval params are documented in-schema rather than the description, so not a 5.

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

Purpose5/5

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

States a specific verb (changes) and resource (one schedule), then enumerates exactly which fields do what: `enabled: false` pauses, `enabled: true` resumes, cadence fields re-time. An agent can distinguish it from `workbench_flows_schedule` (create) and `schedules_run_now` without opening the schema.

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

Usage Guidelines4/5

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

Gives clear operational context — 'Pass only what changes' establishes it as a partial-update tool, and 'Get the scheduleId from workbench_flows_schedules_list' routes the agent to the prerequisite tool. It does not explicitly contrast with sibling scheduling tools (create vs run_now), so not a full 5.

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

workbench_flows_share_createMint a guest share link for a flowAInspect

Creates a no-account guest link where anyone can chat with the flow's latest PUBLISHED revision at workbench's /s/ page — the fastest way to put a working flow in a stakeholder's hands ('here, try it'). The flow must have a published version (workbench_flows_revisions_list shows it; publish with workbench_flows_publish if not). Conversations are capped per guest; the link can expire, and you can list links with workbench_flows_shares_list and kill one with workbench_flows_shares_revoke. May return needs_confirmation — say who the link is for and wait.

NameRequiredDescriptionDefault
labelNoWho/what this link is for, e.g. 'support pilot'.
flowIdYesFlow to share.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this.
approvalIdNoApproval id from a prior needs_confirmation envelope.
expiresInDaysNoDays until the link dies. Omit = revoke-only.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, but the description adds substantial behavior: no-account guest access, /s/<token> page, latest-published-revision-only scoping, per-guest conversation caps, link expiration, and a possible needs_confirmation response. No contradiction with annotations.

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

Conciseness5/5

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

The description is front-loaded with the core action and then adds only necessary prerequisites, lifecycle context, and confirmation handling. Each sentence carries distinct operational value, and none is redundant padding.

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

Completeness5/5

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

For a mutation tool with no output schema, the description supplies the missing context an agent needs: required published state, share-link behavior, expiration, management siblings, and the needs_confirmation/approval flow. Annotations and schema cover safety and parameter details, so nothing critical is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all five parameters, including label, flowId, workspace, approvalId, and expiresInDays. The description reinforces the label/approval flow and published-revision requirement but does not add format or syntax detail beyond the schema, so the baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb and resource: creates a no-account guest link for chatting with the flow's latest published revision. It distinguishes itself from related lifecycle tools by naming workbench_flows_shares_list, workbench_flows_shares_revoke, workbench_flows_revisions_list, and workbench_flows_publish.

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

Usage Guidelines4/5

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

Explains when to use it ('fastest way to put a working flow in a stakeholder's hands') and gives a clear prerequisite: the flow must have a published version, with sibling tools named for checking or publishing. It does not state when not to use it or name an alternative create-sharing mechanism, but related lifecycle operations are covered.

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

workbench_flows_shares_listList a flow's guest share linksA
Read-only
Inspect

Every guest link on one flow, newest first: label, whether it's still live, the shareUrl (live links only — dead ones have no URL), expiry, and how many guests and messages it has seen. Use it to answer 'who has access', to recover a link the user lost, and to get the shareId for workbench_flows_shares_revoke.

NameRequiredDescriptionDefault
flowIdYesFlow id, from workbench_flows_list.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description still adds real behavioral context beyond them: results are ordered newest first, and dead links are returned without a shareUrl, which an agent would otherwise misread as missing data. No pagination or permission notes, but the key behavioral quirk is disclosed.

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

Conciseness5/5

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

Two sentences, both front-loaded: the first leads with scope and ordering then enumerates returned fields, the second leads with the use cases. The parenthetical about dead links is the only aside and it carries necessary meaning.

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

Completeness4/5

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

With no output schema, the description is the sole source of return-shape information and it covers label, liveness, shareUrl, expiry and usage counts. Usage and the downstream revoke linkage are covered too; only edge details like pagination or an empty-list result are unaddressed.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters (flowId, workspace) are documented in the schema, including the token/workspace-key nuance. The description adds nothing about parameter semantics, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Every guest link on one flow') and immediately scopes it to a single flow, distinguishing it from the workspace-level or flow-level siblings. It also names workbench_flows_shares_revoke, so an agent can place it relative to the share lifecycle without opening a schema.

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

Usage Guidelines4/5

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

Gives three concrete use cases ('who has access', recovering a lost link, obtaining the shareId for revoke), which is clear when-to-use guidance. It stops short of stating exclusions or explicitly contrasting with workbench_flows_share_create, so it is strong but not exhaustive.

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

workbench_flows_shares_revokeRevoke a flow's guest share linkA
Destructive
Inspect

Kills one guest link immediately — anyone holding it gets a closed page from then on. Conversations already had stay in the flow's history. Get the shareId from workbench_flows_shares_list. May return needs_confirmation.

NameRequiredDescriptionDefault
flowIdYesFlow the link belongs to.
shareIdYesShare id, from workbench_flows_shares_list.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, but the description adds real context beyond them: the effect is immediate, existing holders lose access, prior conversations survive in the flow's history, and a needs_confirmation response may occur. That scoping of what is and is not destroyed is exactly the kind of disclosure annotations cannot express.

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

Conciseness5/5

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

Three short sentences, front-loaded with the consequence of the call, then persistence behavior, then the id source. No filler and nothing buried.

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

Completeness4/5

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

For a destructive 4-parameter tool with no output schema, the description covers the destructive scope, the confirmation path, and where to obtain the required id. Only minor gaps remain, such as reversibility or idempotency of a revoke, which an agent might want to know.

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

Parameters3/5

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

Schema description coverage is 100%, so flowId, shareId, workspace, and approvalId are already documented, including the approvalId tie-in to needs_confirmation. The description repeats the shareId source but adds no format, constraint, or meaning beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Kills one guest link immediately') and scopes it to a single link, which cleanly separates it from workbench_flows_shares_list and workbench_flows_share_create. An agent can identify the operation without opening the schema.

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

Usage Guidelines4/5

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

It routes the agent to the prerequisite step by naming workbench_flows_shares_list as the source of shareId, which is genuine usage guidance. It does not, however, state any when-not-to-use condition or contrast with a sibling such as share_create, so it falls short of explicit alternative framing.

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

workbench_flows_updateRename / describe / archive / re-scope a Workbench flowA
Destructive
Inspect

Changes a flow's name, description, visibility, tags, or archived state — the metadata around the flow, NOT its orchestration (prompts and nodes change through workbench_flows_edit_text). Pass only what changes. Archiving hides the flow from the default gallery but leaves it runnable, scheduled, and shared; pass archived: false to restore. May return needs_confirmation.

NameRequiredDescriptionDefault
tagsNoReplacement tag set (lowercase labels). The whole set, not a diff.
flowIdYesFlow id, from workbench_flows_list.
archivedNotrue archives, false restores.
flowNameNoNew name.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.
visibilityNoWho can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.
descriptionNoNew description; null clears it.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only say destructiveHint=true; the description goes further by explaining that archiving is non-destructive to operation (still runnable, scheduled, shared) and reversible via archived: false, plus surfaces the needs_confirmation/approvalId handshake. This is exactly the kind of behavior an agent cannot infer from the annotations.

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

Conciseness5/5

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

Four tight sentences with the scope constraint front-loaded, followed by the sibling exclusion, the archive semantics, and the confirmation caveat. No filler or redundancy.

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

Completeness5/5

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

For an 8-param mutation tool with no output schema, the description covers scope, alternatives, partial-update expectation, archive reversibility, and the confirmation flow. Workspace/auth details are already in the schema, so nothing an agent needs to invoke correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already documents partial-set semantics for tags, archived true/false, and workspace auth rules. The description restates the field list and 'pass only what changes' but adds no syntax or format detail beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

Names the concrete resource (a Workbench flow) and the exact metadata fields it mutates (name, description, visibility, tags, archived), then explicitly excludes orchestration content and points to workbench_flows_edit_text. An agent can distinguish it from that sibling without opening either schema.

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

Usage Guidelines5/5

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

States when to use this tool versus workbench_flows_edit_text, tells the caller to 'pass only what changes' (partial update), and gives the condition for restoring a flow (archived: false). Alternative-routing and exclusions are both explicit.

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

workbench_kb_add_documentsAdd documents to a knowledge baseAInspect

Adds documents to a knowledge base and starts ingestion (chunk + embed; graph KBs also extract entities; tabular KBs load CSV as tables). Text goes inline (Markdown, plain text, CSV — encoding utf8); binary files (PDF, .docx) go base64-encoded with their mimeType. Up to 50 sources per call, ~10 MB each. Ingestion runs in the BACKGROUND — the result carries a runId; check it with workbench_kb_ingestion_status when the user asks, don't poll. workbench_kb_search works once it finishes. Content from blocks is ideal source material. Check workbench_kb_documents_list first so you don't add a document twice. Embedding spends workspace inference credit, so this sits behind the approval gate: may return needs_confirmation.

NameRequiredDescriptionDefault
kbIdYesKnowledge base id (from workbench_kb_list or workbench_kb_create).
sourcesYesDocuments to ingest (1-50).
workspaceNoWorkspace slug override.
approvalIdNoApproval id from a prior needs_confirmation envelope.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, but the description adds crucial context beyond them: ingestion runs in the background and returns a runId, embedding spends workspace inference credit, the call may return `needs_confirmation`, and there are size/count limits. This is rich behavioral disclosure that goes well beyond the structured safety hints.

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

Conciseness5/5

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

The description is front-loaded with the core purpose, then flows into operational details (background ingestion, limits, alternatives, approval gate) in a compact, information-dense manner. Every sentence contributes actionable guidance without redundancy or filler.

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

Completeness5/5

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

For a mutation tool with no output schema, the description covers everything an agent needs: ingestion behavior, return value (runId), follow-up tools, limits, approval flow, and duplicate-avoidance. Annotations cover safety, and the description fills all remaining gaps, making the definition self-sufficient.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents kbId, sources, encoding, mimeType, and workspace/approvalId. The description restates the encoding and mimeType rules (utf8 for text, base64 for PDF/docx) and limits (50 sources, ~10 MB each), which are already in the schema constraints. It adds little new semantic meaning beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb ('Adds documents') and resource ('knowledge base'), and immediately clarifies that ingestion starts. It names sibling tools (workbench_kb_ingestion_status, workbench_kb_search, workbench_kb_documents_list) so an agent can distinguish this tool from alternatives without opening schemas.

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

Usage Guidelines5/5

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

Explicitly tells the agent to check workbench_kb_documents_list first to avoid duplicates, to use workbench_kb_ingestion_status only when the user asks (not poll), and that search works only after ingestion finishes. It also identifies ideal source material (<attached-file> blocks) and notes the approval gate, giving clear when/when-not guidance.

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

workbench_kb_createCreate a knowledge baseAInspect

Creates an empty knowledge base. Recipe 'docs' (default) for reference material an agent searches at runtime; 'tabular' for spreadsheet-style data queried with SQL; 'graph' for entity/relationship extraction. After creating, add content with workbench_kb_add_documents, then give an agent flow a search tool over it with workbench_flows_attach_knowledge_base (before publishing the flow). May return needs_confirmation.

NameRequiredDescriptionDefault
nameYesKnowledge base name (1-200 chars).
recipeNoDefault 'docs'.
workspaceNoWorkspace slug override.
approvalIdNoApproval id from a prior needs_confirmation envelope.
visibilityNoWho can see it: PRIVATE (only the user), WORKSPACE (every member, the default), or SHARED (specific people, granted afterwards). Say 'make it private' → PRIVATE.
descriptionNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare the write/non-destructive/openWorld profile, so the bar is lower, and the description adds genuinely new behavior: the tool may return a `needs_confirmation` envelope, which explains the approvalId parameter path. It does not state permission requirements, name-collision behavior, or default visibility (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.

Conciseness5/5

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

Three sentences, front-loaded with the core action, then recipe selection, then the follow-up pipeline. Every clause carries unique information; the trailing note about needs_confirmation is terse but operationally relevant rather than filler.

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

Completeness4/5

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

With six parameters, no output schema, and only weak annotations, the description covers creation semantics, variant choice, follow-up steps, and the deferred-confirmation path. It omits what the call returns (e.g. the new KB identifier) and any naming/permission constraints, which an agent would still need to guess.

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

Parameters4/5

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

Schema description coverage is 83%, so baseline is 3, and the description earns above that by explaining what each recipe produces ('tabular' data queried with SQL, 'graph' entity/relationship extraction) and by tying the confirmation envelope to the approvalId flow. name, workspace, and description parameters gain no further meaning from the description.

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

Purpose5/5

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

States a specific verb and resource ('Creates an empty knowledge base') and immediately differentiates the three variants of that resource via recipe semantics. An agent can distinguish this from workbench_kb_add_documents, workbench_kb_get, or workbench_kb_search without opening any schema.

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

Usage Guidelines4/5

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

Gives concrete downstream pipeline guidance: add content with workbench_kb_add_documents, then attach to an agent flow with workbench_flows_attach_knowledge_base before publishing. It does not say when *not* to use this tool (e.g. if a KB already exists, or workspace constraints), so it stops short of full routing guidance.

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

workbench_kb_deleteDelete a knowledge baseA
Destructive
Inspect

Deletes a knowledge base and everything in it. Flows that search it will find nothing — check which agents use it (the user knows; the KB page in Workbench lists them) and say so before proposing. May return needs_confirmation.

NameRequiredDescriptionDefault
kbIdYesKnowledge base id, from workbench_kb_list.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.

TDQS

A4.2/5.0
Behavior5/5

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

Annotations only say destructiveHint=true; the description goes further by disclosing the downstream consequence (flows that search it will find nothing) and the confirmation loop ('May return needs_confirmation'), which is critical for a destructive tool.

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

Conciseness4/5

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

Two tightly written sentences with the destruction scope front-loaded and the confirmation caveat last. The parenthetical about where the user can see dependent agents is slightly clunky but still earns its place.

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

Completeness4/5

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

For a 3-param destructive tool with no output schema, the description covers blast radius, dependent-flow impact, and the confirmation flow. It never states irreversibility outright or clarifies the workspace-parameter interaction, which are the remaining gaps.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds context for the approvalId round-trip by explaining that a needs_confirmation response can occur, and it reinforces the kbId provenance implicitly. Modest but genuine added value.

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

Purpose4/5

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

States a specific verb and resource ('Deletes a knowledge base') and immediately scopes the blast radius ('and everything in it'), which implicitly separates it from workbench_kb_document_delete. It does not name a sibling explicitly, so it stops short of the top mark.

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

Usage Guidelines4/5

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

Gives a concrete precondition before acting: check which agents use the KB and tell the user before proposing deletion. That is real usage guidance, but no alternative tool or when-not-to-use condition is named.

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

workbench_kb_document_deleteRemove a document from a knowledge baseA
Destructive
Inspect

Removes one ingested document and all its chunks; searches stop returning it at once. Get the documentId from workbench_kb_documents_list. To replace a document, remove it then workbench_kb_add_documents the new version. May return needs_confirmation.

NameRequiredDescriptionDefault
kbIdYesKnowledge base id.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.
documentIdYesDocument id, from workbench_kb_documents_list.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered structurally. The description adds real value beyond that by disclosing cascade behavior (all chunks removed) and the immediate search-visibility effect, plus the possibility of a needs_confirmation response. It stops short of explaining what the confirmation requires or whether the deletion is recoverable.

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

Conciseness5/5

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

Three short sentences, front-loaded with the effect, then the id source, then the replace workflow. No filler; each sentence maps to a distinct decision an agent must make.

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

Completeness5/5

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

For a destructive single-document delete with full schema coverage and annotations, this provides everything needed: scope, source of the id, replacement alternative, and the confirmation possibility. No output schema exists, and the confirmation hint adequately pre-frames a non-standard response.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters including kbId, workspace, approvalId, and documentId are documented in the schema itself. The description's only parameter-adjacent note ('get the documentId from workbench_kb_documents_list') duplicates the schema's own wording for documentId, adding no new semantics. Baseline 3 applies when the schema carries the load.

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

Purpose5/5

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

States a precise verb (removes) and resource (one ingested document and all its chunks), with scope narrowed to a single document rather than the whole knowledge base. This cleanly distinguishes it from siblings like workbench_kb_delete and workbench_kb_documents_list without needing to open a schema.

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

Usage Guidelines5/5

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

Explicitly routes the caller: get documentId from workbench_kb_documents_list, and to replace a document, remove it then workbench_kb_add_documents the new version. It also signals the confirmation flow via 'May return needs_confirmation', so both prerequisites and alternatives are covered.

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

workbench_kb_documents_listList the documents in a knowledge baseA
Read-only
Inspect

Every document ingested into the KB's current content: id, name, type, size, chunk count. Empty for a KB with nothing ingested yet (or one whose ingestion is still running — check workbench_kb_ingestion_status). Use it before workbench_kb_add_documents to avoid re-adding a document, and to get the documentId for workbench_kb_document_delete.

NameRequiredDescriptionDefault
kbIdYesKnowledge base id, from workbench_kb_list.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: the field set returned and the edge case that results are empty for a KB with nothing ingested or one still ingesting. It stops short of discussing pagination or ordering.

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

Conciseness5/5

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

Front-loaded with what is returned, then the edge case, then the usage guidance. Three tight sentences with no redundant restatement of the title or annotations.

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

Completeness4/5

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

With no output schema, the description compensates by naming the returned fields, and the schema fully covers both parameters. The only minor gap is the absence of any note on pagination or result limits for a potentially large document list.

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

Parameters3/5

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

Schema description coverage is 100%, so kbId and workspace are already fully documented in the schema, including the workspace auth requirement. The description adds no parameter-level detail beyond what the schema provides, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb (List) and resource (documents in a knowledge base) and even enumerates the returned fields (id, name, type, size, chunk count). This lets an agent distinguish it from workbench_kb_search, workbench_kb_get, and workbench_kb_ingestion_status without opening any schema.

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

Usage Guidelines5/5

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

Explicitly names the workflows it serves: call it before workbench_kb_add_documents to avoid re-adding a document, and to obtain the documentId for workbench_kb_document_delete. It also routes the empty-result edge case to workbench_kb_ingestion_status, so nothing is left to inference.

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

workbench_kb_getRead one knowledge baseA
Read-only
Inspect

One knowledge base: name, recipe (docs / tabular / graph), status, document and chunk counts, embedding model, and ingestion settings. Read it to confirm a KB has content before pointing a flow at it. Get the kbId from workbench_kb_list.

NameRequiredDescriptionDefault
kbIdYesKnowledge base id.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. With no output schema, the description carries the return-shape burden and does enumerate the fields returned, which is genuinely useful beyond the annotations; it stops short of explaining what status/ingestion settings values mean.

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

Conciseness4/5

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

Three tight sentences, front-loaded with the field inventory, then purpose, then the ID source. No filler; only minor density in the field list.

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

Completeness4/5

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

For a read-only single-fetch tool with annotations covering safety and a schema covering both params, the description fills the remaining gaps: what you get back, when to call it, and where the ID comes from. Nothing essential is missing, though status value semantics are left implicit.

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

Parameters3/5

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

Schema coverage is 100% and the workspace parameter is richly documented in the schema itself. The description only adds provenance for kbId ('get it from workbench_kb_list'), which is more usage routing than parameter semantics, so the baseline 3 holds.

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

Purpose5/5

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

The description states the exact resource and enumerates the concrete fields returned (name, recipe, status, counts, embedding model, ingestion settings), so the agent knows precisely what this tool yields. It also names the sibling workbench_kb_list as the source of the kbId, clearly distinguishing the single-fetch from the list operation.

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

Usage Guidelines4/5

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

It gives a concrete usage context ('read it to confirm a KB has content before pointing a flow at it') and a prerequisite ('get the kbId from workbench_kb_list'). No explicit when-not guidance, but the intended use case is unmistakable.

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

workbench_kb_ingestion_statusCheck an ingestion runA
Read-only
Inspect

The state of one ingestion run started by workbench_kb_add_documents: PENDING / RUNNING / DONE / FAILED, chunks written, and the error when it failed. Read it when the user asks whether their documents are in yet, or before a search that needs them — don't poll in a loop; ingestion of a few documents takes under a minute. Pass the runId the add-documents call returned.

NameRequiredDescriptionDefault
kbIdYesKnowledge base id.
runIdYesIngestion run id, from workbench_kb_add_documents.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds non-structured context: the exact status values, that chunks-written and failure errors are surfaced, and expected latency. It stops short of describing ordering or how long terminal results persist, but adds real value beyond the annotations.

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

Conciseness5/5

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

Three sentences, front-loaded with what is returned, then when to call it, then the parameter. No filler and every clause carries information.

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

Completeness5/5

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

There is no output schema, so the description correctly compensates by naming the returned fields. For a read-only status-check tool with fully documented parameters, nothing an agent needs to invoke it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so kbId, runId and workspace are already documented, including the workspace-token caveat. The description only reinforces runId's provenance ('the runId the add-documents call returned'), adding minimal meaning beyond the schema — the baseline 3 holds.

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

Purpose5/5

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

States a specific resource ('the state of one ingestion run') and enumerates the exact return values (PENDING / RUNNING / DONE / FAILED, chunks written, error). It explicitly names the sibling that creates the run (workbench_kb_add_documents), so an agent can place it correctly among the workbench_kb_* tools.

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

Usage Guidelines5/5

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

Gives explicit triggers ('when the user asks whether their documents are in yet, or before a search that needs them') plus a clear exclusion ('don't poll in a loop'), with the reason and timing expectation (under a minute). It also tells the agent where the runId comes from.

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

workbench_kb_listList knowledge basesA
Read-only
Inspect

Lists every knowledge base in the active workspace the caller can see. Returns summaries (id, name, description, status, doc/chunk counts, embedding model). Use an id with workbench_kb_search to retrieve content.

NameRequiredDescriptionDefault
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys (workspace is intrinsic).

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely new behavioral context beyond that: visibility scoping ("the caller can see") and, importantly, the exact shape of each returned summary, which matters because there is no output schema.

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

Conciseness5/5

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

Three tight sentences: scope first, then return shape, then the follow-up action. Every clause earns its place, and the return-field enumeration substitutes for the missing output schema rather than padding.

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

Completeness5/5

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

For a one-parameter read-only list tool with no output schema, the description covers scope, visibility, returned fields, and the natural next call. Combined with full schema coverage and read-only annotations, nothing an agent needs to invoke it correctly is missing.

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

Parameters3/5

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

The single `workspace` parameter has 100% schema description coverage, including the personal-token vs workspace-API-key rules, so the schema already carries the semantics. The description's phrase "in the active workspace" is consistent with that but adds no format or override guidance beyond it — baseline 3 for a well-documented schema.

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

Purpose4/5

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

The description gives a specific verb and resource ("Lists every knowledge base") plus an explicit scope ("in the active workspace the caller can see"), so an agent immediately knows what it returns. It routes to `workbench_kb_search` for content retrieval, but never contrasts itself with the closest sibling, `workbench_kb_get` (single-KB fetch), so differentiation is only partial.

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

Usage Guidelines3/5

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

Usage is only implied: the reader infers this is the entry point for discovering KB ids, and the sentence "Use an id with `workbench_kb_search` to retrieve content" gives a useful downstream next step. There is no explicit when-to-use/when-not statement and no mention of prerequisites or empty-workspace behavior.

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

workbench_node_catalog_getSearch the Workbench node catalogA
Read-only
Inspect

The ground truth for what nodes exist and what their ports actually are — verify against this instead of recalling. Search by keyword/category for summaries; pass slug for one node's full detail (inputs, outputs, settings). Inputs are PORTS fed by links; settings live on the node — see workbench_flow_authoring_guide. The catalog is the WORKSPACE'S: model nodes the workspace's inference policy forbids come back with allowed: false — never author with those; pick an allowed model. Pass flowId to include the flow's pinned imports as nodes.

NameRequiredDescriptionDefault
qNoKeyword over slug / name / tagline / description.
slugNoExact node slug → full detail for that one node (ports + settings).
limitNoResults per page, 1-50. Default 20.
flowIdNoA flow whose pinned imports should appear as `imported-<uuid>` nodes.
offsetNoPagination offset.
categoryNoFilter by category.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; the catalog's policy annotation is per workspace.

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description still adds real behavioral context the annotations cannot: workspace-scoped catalog contents and the `allowed: false` flag on policy-forbidden model nodes with the instruction to avoid authoring with them. It doesn't cover pagination limits or result shape beyond the summary/detail split, so it sits a notch above the annotation baseline rather than far above it.

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

Conciseness5/5

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

Front-loads the authoritative-source claim, then mode selection, then the conceptual distinction between ports and settings, then the workspace policy caveat and `flowId` behavior. Every clause carries a decision or a constraint; nothing is filler.

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

Completeness5/5

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

No output schema exists, yet the description covers what comes back (summaries vs full node detail), the `allowed` flag, and the flow-pinned imports shape. Combined with the workspace requirement and the authoring-guide cross-reference, an agent has everything needed to call it correctly in either mode.

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

Parameters4/5

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

With 100% schema description coverage the baseline is 3, and the description clears it by explaining mode semantics: which parameters produce summaries vs single-node detail (inputs/outputs/settings) and what `flowId` actually injects (pinned imports as `imported-<uuid>` nodes). The `workspace` policy note reinforces rather than repeats the schema text.

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

Purpose5/5

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

States a specific verb (search / get) plus resource (Workbench node catalog) and its scope: node existence and their actual ports. It positions itself as ground truth and differentiates from siblings by pointing at `workbench_flow_authoring_guide` for authoring semantics.

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

Usage Guidelines5/5

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

Explicitly routes between two modes — keyword/category for summaries vs `slug` for full detail — and states the anti-pattern it replaces ('verify against this instead of recalling'). It also names a sibling tool for adjacent concerns and gives the policy rule ('never author with those; pick an allowed model'), so an agent knows both when to call and what to do with the result.

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

workbench_shim_add_answerAdd an answer to a shimAInspect

Adds one answer (a label and, optionally, when it applies). The shim needs three examples of it before it builds again with the new answer. May return needs_confirmation.

NameRequiredDescriptionDefault
answerYes
shimIdYesShim id, from workbench_shim_list.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.
descriptionNoWhen this answer applies.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations declare readOnly=false and destructive=false, so safety is partly covered, but the description adds real behavioral context beyond them: the three-example build threshold and the special `needs_confirmation` return path. It does not say what happens to existing answers or how the confirmation round-trip maps to approvalId, which the schema handles.

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

Conciseness4/5

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

Three short sentences, front-loaded with the core action and each carrying information (composition of an answer, the three-example build requirement, the confirmation return). Only the parenthetical is slightly clunky, but nothing is wasted.

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

Completeness4/5

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

For a mutation tool with no output schema, the description covers the key operational facts: what is added, the build-threshold requirement, and the confirmation return. The main remaining gap is not relating this tool to add_examples, but overall it is sufficient to call the tool correctly.

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

Parameters3/5

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

Schema description coverage is 80%, so the schema documents most parameters (shimId, workspace, approvalId, description). The description adds marginal meaning by framing `answer` as a label plus optional applicability, but the bare `answer` param itself remains undocumented in the schema. Baseline 3 fits.

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

Purpose4/5

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

Specific verb and resource: 'Adds one answer' and clarifies the answer is a label plus an optional applicability condition. It does not differentiate itself from the closely related sibling workbench_shim_add_examples, so an agent could confuse the two.

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

Usage Guidelines3/5

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

Usage is implied through workflow context ('the shim needs three examples of it before it builds again'), which tells the agent this is part of a multi-step authoring flow. However, there is no explicit when-to-use versus the sibling add_examples tool, nor prerequisites for the first call.

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

workbench_shim_add_examplesAdd examples to an answerAInspect

Adds example inputs to one answer. Write inputs a real person would actually type in the shim's setting — varied in length, register and specifics, each one clearly this answer and not another — never paraphrases of the answer's name. Read the shim first so new examples fit alongside the existing ones and land where recall is low. Exact duplicates are skipped. The shim rebuilds on its own afterwards; read it again for the new report. May return needs_confirmation.

NameRequiredDescriptionDefault
answerYesThe answer these examples belong to, exactly as labelled.
shimIdYesShim id, from workbench_shim_list.
examplesYes
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses idempotency behavior ("Exact duplicates are skipped"), a non-obvious side effect ("The shim rebuilds on its own afterwards"), the follow-up action ("read it again for the new report"), and a special return state ("May return `needs_confirmation`"). These are exactly the traits an agent cannot infer from readOnlyHint/destructiveHint.

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

Conciseness4/5

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

Front-loaded with the core action, then the guidance, side effect and return note in efficient order. Dense but each sentence carries distinct information; minor room to separate content guidance from lifecycle behavior.

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

Completeness4/5

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

With no output schema, the description carries the return burden and does so by flagging the auto-rebuild/re-read cycle and the needs_confirmation state. A mutation tool with adequate but not exhaustive coverage; nothing critical to calling it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 80%, so the schema already documents shimId, workspace and approvalId; the description correctly does not repeat those. It adds real meaning for the examples field (varied length/register, not paraphrases of the answer's name), but that is marginal against an already well-covered schema.

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

Purpose4/5

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

States a specific verb and resource ("Adds example inputs to one answer") scoped precisely to one answer. It is clearly distinguishable from workbench_shim_add_answer and the get/list/create siblings, though it never explicitly contrasts with add_answer, which is the closest sibling.

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

Usage Guidelines4/5

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

Gives a concrete workflow prerequisite ("Read the shim first so new examples fit alongside the existing ones") and directs where to focus effort ("land where recall is low"). It does not name an alternative tool or state when not to use this one, so it stops short of full when/when-not routing.

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

workbench_shim_createCreate a shimAInspect

Creates a shim from a name, the question it answers, and its answers. Add examples afterwards with workbench_shim_add_examples — three or more per answer and it builds on its own. May return needs_confirmation.

NameRequiredDescriptionDefault
nameYesA short name, e.g. "Support triage".
answersYes
questionYesThe question, e.g. "Which team should read this message?"
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.
inputsComeFromNoOne line on where the inputs come from, in the user's words.

TDQS

A4/5.0
Behavior4/5

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

Annotations declare a non-read-only but non-destructive, non-open-world write. The description adds real context beyond that: it may return `needs_confirmation`, implying an approval flow mediated by approvalId. It doesn't explain permissions or what else the response contains, so not a 5.

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

Conciseness5/5

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

Two tight sentences, front-loaded with the create action and its inputs, then the follow-up action and the confirmation caveat. No filler or repetition of schema text.

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

Completeness4/5

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

For a create tool with no output schema and good schema coverage, the description covers the required inputs, the next-step workflow, and the possibility of a needs_confirmation return. It is nearly complete; only the shape of a successful return and any permission preconditions are left implicit.

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

Parameters3/5

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

Schema description coverage is 83%, so the schema already documents name, question, answers, workspace, approvalId and inputsComeFrom. The description restates the three required inputs but adds no format or constraint detail beyond the schema, making it baseline-adequate rather than additive.

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

Purpose4/5

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

States a specific verb (creates) and resource (shim) plus the three inputs it is built from, which distinguishes it from workbench_shim_add_examples and workbench_shim_add_answer by scope. It does not define what a 'shim' is conceptually, but the resource is unambiguous within the workbench namespace.

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

Usage Guidelines4/5

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

Gives a clear sequencing rule: create first, then add examples with workbench_shim_add_examples, with a concrete threshold (three or more per answer). No explicit when-not or exclusion versus siblings like workbench_shim_add_answer, so it stops short of full routing guidance.

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

workbench_shim_getRead one shimA
Read-only
Inspect

One shim in full: the question, where its inputs come from, every answer with its description and examples, what the shim still needs before it can build, and the newest build's report — held-out accuracy, recall per answer, which answers get mistaken for which, and the compiler's notes. Read it before writing examples: match the setting and the existing examples' register, and put new examples where recall is low or the compiler says an answer is thin.

NameRequiredDescriptionDefault
shimIdYesShim id, from workbench_shim_list.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered, yet the description goes well beyond them by enumerating the returned payload — question, input sources, per-answer descriptions and examples, build-readiness gaps, and build metrics like held-out accuracy, per-answer recall, confusion pairs, and compiler notes. With no output schema, this return-format disclosure is genuinely valuable.

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

Conciseness4/5

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

Front-loaded with 'One shim in full' followed by an em-dash inventory and then actionable guidance. It is dense and long, but nearly every clause conveys concrete content or instruction rather than filler, so it earns its place despite the length.

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

Completeness5/5

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

For a read-only retrieval tool with no output schema, the description fully compensates by describing the return payload in detail and even explaining how to act on it (write examples toward low-recall answers). Nothing an agent needs to call this correctly is missing.

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

Parameters3/5

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

Schema coverage is 100%: shimId is documented as coming from workbench_shim_list, and workspace documents the personal-token/workspace-key rules. The description adds no additional parameter semantics, so the baseline 3 is appropriate — the schema carries the full burden.

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

Purpose5/5

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

The description states exactly what this tool returns: the full contents of one shim — the question, input provenance, every answer with examples, build readiness, and the latest build report. This is clearly distinguishable from siblings like workbench_shim_list (enumeration), workbench_shim_create, and workbench_shim_add_answer/add_examples, so an agent can route correctly without inspecting schemas.

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

Usage Guidelines4/5

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

It gives concrete usage context: 'Read it before writing examples', match the existing examples' register, and place new examples where recall is low or the compiler flags thin answers. That is strong when-to-use guidance tied to a workflow, but it names no explicit exclusion or alternative tool (e.g. don't call if you only need the id list).

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

workbench_shim_listList shimsA
Read-only
Inspect

Every shim the user can see: id, name, the question it answers, how many answers and examples it has, and the published version's held-out accuracy (null until something is published). A shim is a small decision model that runs inside an app with no model call. Start here to get a shimId.

NameRequiredDescriptionDefault
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so safety is covered. The description adds real value beyond that: it discloses the exact return shape and the edge case that held-out accuracy is 'null until something is published', which no annotation conveys. Pagination/volume behavior is not mentioned, keeping it from a 5.

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

Conciseness5/5

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

Three tight sentences, each doing distinct work: the return-field list, the definition of 'shim', and the entry-point cue. The most actionable guidance (start here for a shimId) is not buried, and there is no filler.

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

Completeness5/5

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

With no output schema, the description carries the return-value burden and does so by enumerating every returned field plus the null-accuracy edge case. Combined with annotations covering safety and a fully documented single parameter, an agent has everything needed to call and interpret it correctly.

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

Parameters3/5

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

Only one parameter (workspace) and schema description coverage is 100%, so the schema already documents slug semantics and token/default-workspace behavior. The description adds nothing about the parameter, which is the expected baseline when the schema does the heavy lifting.

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

Purpose5/5

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

States a specific verb+resource (list every shim) and enumerates exactly what the listing contains: id, name, the question it answers, answer/example counts, and published held-out accuracy. It also defines the domain term 'shim', so the agent knows what it is listing without opening any schema, and it is clearly differentiated from the singular workbench_shim_get.

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

Usage Guidelines4/5

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

Explicitly routes the agent as an entry point ('Start here to get a shimId'), which tells it to call this before the get/add_answer/add_examples siblings. It stops short of naming those siblings or stating when not to use it, so it is clear context rather than a full routing rule.

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

workbench_tasks_actAct on a Task gate (record a verdict)AInspect

Records THIS user's verdict on a run that is waiting on them — the labels come from the gate (workbench_tasks_run_view shows them via the plan; a wrong label errors listing the real options). Echo the verdict + note back to the user in one line BEFORE calling; that echo is the confirmation. Refuses when the gate is assigned to someone else.

NameRequiredDescriptionDefault
noteNoThe user's reasoning, attached to the verdict.
runIdYesTask run id that is waiting_human.
verdictYesOne of the gate's verdict labels, e.g. "confirmed".
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is handled structurally. The description adds genuinely new behavior: it refuses when the gate belongs to someone else (authorization rule), an invalid verdict errors and lists the real options (error contract), and it prescribes echoing the verdict and note before the call as the confirmation step.

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

Conciseness4/5

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

Three sentences, front-loaded with the core action, then constraints, then the confirmation convention. Dense but every clause carries information; the parentheticals are informative rather than filler. Slightly packed, which keeps it just under the top mark.

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

Completeness5/5

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

For a mutation tool with no output schema, it covers the action, the valid-input source, the failure modes (wrong label, wrong assignee), and the required confirmation workflow. An agent has everything needed to invoke it correctly without guessing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description still adds meaning beyond the schema: verdict values must be one of the gate's labels, a bad label produces an error enumerating the valid ones, and note is the user's reasoning echoed back. That is useful semantic guidance the schema's terse field descriptions do not supply.

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

Purpose5/5

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

States a specific verb and resource ('Records THIS user's verdict on a run that is waiting on them') and scopes it to the gate/run concept. It also distinguishes itself from the sibling workbench_tasks_run_view, which is named as the read-side tool that shows the labels, so an agent can tell the two apart without opening either schema.

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

Usage Guidelines4/5

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

Gives clear context for when to call: a run in waiting_human state that is waiting on this user, with labels sourced from the gate. It also names workbench_tasks_run_view as the way to discover valid labels and warns that a wrong label errors. No explicit exclusions beyond the assignment refusal, so it stops short of a full when/when-not pair.

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

workbench_tasks_compileCompile a sentence into a Task planAInspect

Runs the compiler over a sentence and returns the PROPOSED plan (or repair-grade problems — fix by refining the sentence with the user, not by guessing). Nothing persists. Present the proposal in plain terms: which clauses run flows, which you will handle, who decides, what the compiler noted. computer.sites lists sites the plan names and whether the Task allows them; workbench_tasks_set_sites asks an admin to allow the rest. Then iterate or freeze. Compile may take ~15s.

NameRequiredDescriptionDefault
taskIdNoThe task this sentence belongs to, when compiling an edit — keeps it out of the child-task candidates.
sentenceYesThe sentence to compile.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoRe-call with the approvalId from a needs_confirmation response after the user approves.

TDQS

A4.3/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: nothing persists, failures come back as repair-grade problems rather than partial state, the call takes ~15s, the response exposes computer.sites and whether the Task permits each site, and there is a confirmation path. The 'nothing persists' claim is a conservative but not contradictory pairing with readOnlyHint=false, which is based on the compile being a non-trivial compute rather than a pure read.

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

Conciseness4/5

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

Front-loads the highest-value facts — what it does and that nothing persists — then the failure mode and latency. Dense but nearly every sentence earns its place; the presentation instruction ('which clauses run flows, which you will handle, who decides') is the one line that could be trimmed.

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

Completeness4/5

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

With no output schema, the description carries the burden of describing returns and does so at a usable level: a proposed plan, repair-grade problems, and the computer.sites field. The finer shape of the plan object is left unspecified, but an agent knows what comes back and what to do with it.

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

Parameters3/5

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

Schema coverage is 100%, so taskId, sentence, workspace and approvalId are already documented. The description only adds meaning around the sentence (it must be refined iteratively) and doesn't touch taskId or workspace at all, so it sits at the baseline for well-documented params.

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

Purpose5/5

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

States a specific verb and resource — compile a sentence into a PROPOSED Task plan — and makes the non-persisting, proposal-only nature explicit. That distinguishes it from workbench_tasks_create, workbench_tasks_freeze and workbench_tasks_set_sites, all of which it names or implies as separate steps.

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

Usage Guidelines4/5

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

Gives concrete usage rules: refine the sentence with the user rather than guessing when the compiler returns problems, use workbench_tasks_set_sites to resolve disallowed sites, then iterate or freeze. It stops short of stating when to reach for compile versus get/update on an existing task, so not a full when/when-not map.

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

workbench_tasks_createCreate a draft TaskAInspect

Creates a DRAFT Task from a name + sentence. A Task is for work with people in the loop (someone approves, decides or acts on each item before anything else happens) or a specific process mapped in Compass; its runs are measured. When nobody but you acts on it and you'd just do the same thing each time on a schedule, make a routine instead (routines_create). Use this once the user's sentence feels settled after you've refined it together — then compile it. The sentence should be THEIR words: trigger first ('When a claim arrives…'), then steps, branches, and who decides what. Name rooms, sheets, tables, flows and people by their names, never by id: people read the sentence on the Task's page.

NameRequiredDescriptionDefault
sentenceYesThe process sentence, in the user's words.
taskNameYesShort task name.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false, destructiveHint=false and openWorldHint=false; the description adds genuinely new behavior: the result is a draft (not a live process) and must be compiled afterward. It also discloses a user-facing readability constraint — entities must be named, not id-referenced, because people read the sentence on the Task's page. Minor gap: it does not mention the needs_confirmation/approvalId flow that the create call can hit.

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

Conciseness4/5

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

Front-loaded with the one-line purpose, then Task definition, then alternative and content guidance — a sensible order with no filler sentences. It runs slightly long and the closing sentence blends authoring guidance with a next-step instruction, but every sentence carries information an agent would otherwise have to guess.

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

Completeness4/5

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

For a mutation tool with no output schema and thin annotations, the description covers what is produced (a draft), how the input should be composed, how to name entities, and what to do next (compile). Not fully complete: the approval/confirmation path and what the create response contains are left to the schema or unstated.

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

Parameters4/5

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

Schema coverage is 100%, so the schema alone sets a baseline of 3. The description goes beyond it by specifying what the `sentence` content should look like: the user's own words, trigger first ('When a claim arrives…'), then steps, branches, and who decides what — plus the rule to reference rooms, sheets, tables, flows and people by name rather than id.

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

Purpose5/5

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

States a specific verb, resource and resulting state: 'Creates a DRAFT Task from a name + sentence'. It defines what a Task is (people in the loop, or a mapped process; runs measured) and explicitly contrasts it with a routine, so an agent can separate this from routines_create and the many workbench_tasks_* siblings without opening a schema.

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

Usage Guidelines5/5

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

Gives explicit when-to-use ('once the user's sentence feels settled after you've refined it together') and when-not-to-use plus the named alternative ('when nobody but you acts on it and you'd just do the same thing each time on a schedule, make a routine instead (routines_create)'). It also routes the agent to the next step ('then compile it'), which is the natural follow-on action.

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

workbench_tasks_deleteDelete a Workbench TaskA
Destructive
Inspect

Deletes a task. Runs still in flight are stopped (a gate waiting on someone is closed), and its schedule trigger stops firing; past runs stay in history. Check workbench_tasks_get for live runs and say so before proposing. May return needs_confirmation.

NameRequiredDescriptionDefault
taskIdYesTask id, from workbench_tasks_list.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the destructiveHint=true annotation by describing exactly what is destroyed versus retained: in-flight runs stopped, a waiting gate closed, schedule trigger halted, past runs kept in history. It also warns that the call may return needs_confirmation, which is real behavioral context an agent needs.

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

Conciseness4/5

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

Four short sentences, front-loaded with the core action and effect, then the pre-check guidance and the confirmation note. Dense and largely waste-free, though the parenthetical about the gate is a slight tangent.

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

Completeness5/5

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

For a destructive three-parameter tool with no output schema, the description covers the mutation effects, the pre-call verification step, and the possible confirmation response. An agent has everything needed to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so taskId, workspace, and approvalId are already fully documented in the schema. The description only indirectly adds meaning by explaining the needs_confirmation/approvalId loop, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Deletes a task') and immediately clarifies the effect scope: in-flight runs stopped, schedule trigger stops, past runs preserved. This distinguishes it implicitly from pause-like siblings such as workbench_tasks_freeze, though no sibling is named directly.

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

Usage Guidelines4/5

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

Gives an explicit pre-flight condition: check workbench_tasks_get for live runs and disclose them before proposing deletion. It also signals the confirmation flow, but it does not name a non-destructive alternative (e.g. freeze) for when the agent should not delete.

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

workbench_tasks_freezeFreeze a compiled plan (activate the Task)A
Destructive
Inspect

Freezes a reviewed plan as the Task's next version and activates it. Pass the EXACT plan object a compile returned — never hand-edit it (change the sentence and recompile instead). Freeze ONLY after the user has seen the proposal and said go; echo what you're freezing in one line first. In-flight runs keep their pinned versions. After freezing, offer to start a first run.

NameRequiredDescriptionDefault
planYesThe plan object from workbench_tasks_compile, verbatim.
taskIdYesThe task id (create a draft first if none).
sentenceYesThe sentence this plan was compiled from.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, and the description adds real context beyond them: in-flight runs keep their pinned versions, and the action creates a new Task version with activation. It does not clarify what happens to the superseded prior version, so it stops short of fully characterizing the destructive scope.

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

Conciseness5/5

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

Five short sentences, each carrying a distinct rule, with the core action front-loaded and the workflow guardrails after. No filler or restatement of the tool name.

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

Completeness5/5

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

For a mutation tool with no output schema, the description covers the prerequisite (compile), the approval gate, the versioning effect on running executions, and the sensible next step. Nothing needed to invoke it correctly is missing, and annotations carry the safety profile.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds a non-obvious constraint on the plan parameter — it must come verbatim from compile and must never be hand-edited, with recompilation as the remedy. That is meaning beyond the schema's plain 'verbatim' note.

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

Purpose5/5

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

States a specific verb and resource — freezing a reviewed plan as the Task's next version and activating it — which is unmistakably distinct from compile, run, or start siblings. An agent can tell exactly what state change this causes without opening the schema.

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

Usage Guidelines5/5

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

Explicit sequencing: freeze ONLY after the user has seen the proposal and approved, pass the exact plan object from workbench_tasks_compile, never hand-edit (recompile instead), and offer a first run afterward. It names the prerequisite (compile) and the gating condition (user approval) directly.

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

workbench_tasks_getRead one Workbench Task (definition + recent runs)A
Read-only
Inspect

One Task in full: its sentence, status, the latest saved plan (the clauses — which run flows, which the assistant handles, who decides at each gate) with the flow and people names the plan refers to, and its recent runs, plus the sites its machine may reach (allowedSites) and the sites its plan names or past runs were refused (computer.sites). Read this before editing a task's sentence (workbench_tasks_compile with taskId) and when the user asks what a task does. Get the taskId from workbench_tasks_list.

NameRequiredDescriptionDefault
taskIdYesTask id.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already establish that this is a safe, read-only, non-destructive operation. The description adds rich context beyond annotations by spelling out what is returned, including plan clauses, flow and people names, recent runs, allowedSites, and refused sites.

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

Conciseness4/5

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

The description is front-loaded with the core purpose and every clause describes relevant return content or usage. It is somewhat dense and run-on in the first sentence, but no sentence is wasted.

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

Completeness5/5

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

Because there is no output schema, the description carries the burden of explaining return values, and it does so thoroughly. Combined with the usage guidance and annotation safety profile, an agent has enough information to call this read tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so both taskId and workspace are already documented in the schema. The description usefully notes that taskId comes from workbench_tasks_list, but it adds little about workspace semantics or value formats beyond what the schema provides.

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

Purpose5/5

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

The description opens with 'One Task in full' and explicitly enumerates the task sentence, status, latest saved plan, recent runs, allowedSites, and refused sites. That makes the verb/resource and scope clear enough to distinguish it from list, create, update, and compile siblings.

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

Usage Guidelines5/5

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

It states exactly when to use it: before editing a task's sentence via workbench_tasks_compile, and when the user asks what a task does. It also tells the agent where to get the required taskId from workbench_tasks_list.

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

workbench_tasks_listList Workbench TasksA
Read-only
Inspect

Lists the workspace's Tasks — sentence-orchestrated processes — with their sentence, status, and recent runs (id, status, who a waiting run is on). Use this to find a task the user names ('claims intake') and to see what's in flight; workbench_tasks_get reads one in full.

NameRequiredDescriptionDefault
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare this a safe read (readOnlyHint=true, destructiveHint=false), so the safety profile is covered. The description adds value by disclosing the shape of the listing, including that each run shows 'who a waiting run is on', which is not derivable from the schema. It stops short of pagination, ordering, or auth notes, but those gaps are modest given the annotation coverage.

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

Conciseness5/5

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

Two sentences, front-loaded with the core action and immediately followed by the routing rule to the sibling tool. The parentheticals add real specification (field list, concrete example) rather than filler.

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

Completeness4/5

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

There is no output schema, so the description correctly compensates by enumerating the returned fields, and the single optional parameter is fully documented in the schema. The only omission is list-size behavior or ordering, which is minor for a scoped, read-only listing tool.

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

Parameters3/5

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

The schema has 100% description coverage on the single `workspace` parameter, including the personal-token vs. workspace-API-key nuance, so the schema does the heavy lifting. The description adds no parameter detail of its own, which is the expected baseline when schema coverage is high.

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

Purpose5/5

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

States a specific verb and resource ('Lists the workspace's Tasks'), defines what a Task is ('sentence-orchestrated processes'), and previews the returned fields (sentence, status, recent runs). It also distinguishes itself from workbench_tasks_get, which 'reads one in full', so an agent can tell the two apart without opening either schema.

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

Usage Guidelines5/5

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

Gives an explicit use case with a concrete example ('find a task the user names ("claims intake")'), a second use case ('see what's in flight'), and names the alternative that handles the single-item case. Nothing about when to pick this over its siblings is left to inference.

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

workbench_tasks_run_viewView a Task run (the lit sentence)A
Read-only
Inspect

The run's current state rendered as its sentence: what ran (with timings), which path each gate took, what's waiting on whom and for how long, what's coming up. Use whenever the user asks where something stands, and after acting on a gate.

NameRequiredDescriptionDefault
runIdYesTask run id.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. With no output schema, the description earns real credit by disclosing the return contents (what ran with timings, gate paths, who is blocking and for how long, what is next). It omits any notes on freshness/pagination, so a 4 rather than 5.

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

Conciseness4/5

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

Two tight sentences, with the content of the view front-loaded before the usage trigger. Minor friction from the metaphorical 'rendered as its sentence' and the title's 'lit sentence', which add flavor but also decoding overhead.

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

Completeness4/5

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

The tool is a two-parameter read with annotations covering safety and no output schema; the description fills the resulting gap by explaining what the response contains and when to fetch it. It is complete enough to call correctly, with only minor omissions like whether the view reflects live or cached state.

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

Parameters3/5

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

Schema description coverage is 100%, so runId and workspace are already documented in the schema, including the workspace default/override nuance for personal tokens. The description adds no parameter-level meaning beyond that, making the baseline 3 correct.

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

Purpose4/5

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

The description states a specific verb+resource — the current state of a Task run — and enumerates what the view contains (timings, gate paths, blockers, upcoming steps). That is far more concrete than a tautology like 'view a task run'. It does not explicitly distinguish itself from close siblings such as workbench_tasks_get or workbench_executions_get, which keeps it just short of a 5.

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

Usage Guidelines4/5

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

'Use whenever the user asks where something stands, and after acting on a gate' gives clear situational triggers, and the second clause implicitly routes the agent here after workbench_tasks_act. No when-not conditions or explicit named alternatives are provided, so not a 5.

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

workbench_tasks_set_sitesSet the sites a Task can reachAInspect

Sets the full list of sites a Task's machine may reach (example.com, or *.example.com for its subdomains; up to 20), for steps that have to use a site like a person would. It replaces the list, so read workbench_tasks_get first (allowedSites, and computer.sites for what the plan names) and pass every site to keep. Always waits for approval, and only a workspace admin's approval applies it; for anyone else it says who can. The latest saved version runs with the new list.

NameRequiredDescriptionDefault
sitesYesEvery site the Task may reach.
taskIdYesTask id, from workbench_tasks_list.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing that the list is replaced wholesale (a real data-loss risk despite destructiveHint=false), that the call always waits for approval, that only a workspace admin's approval applies it and others get an explanation of who can approve, and that the latest saved version picks up the new list.

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

Conciseness4/5

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

Four dense sentences that front-load the action, then the replacement warning, then the approval gate. The 'up to 20' restates maxItems from the schema, but otherwise every clause carries new information.

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

Completeness5/5

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

For a mutating, approval-gated tool with no output schema, the description covers the prerequisite read, replacement danger, approval requirement and who can satisfy it, and the downstream effect on the running version. Nothing an agent needs in order to call it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema lacks: accepted site syntax including subdomain wildcards, the replace-not-merge semantics of 'sites', and the leave-approvalId-off-on-first-call flow implied for the approval parameter.

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

Purpose5/5

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

States a specific verb and resource: it sets the full list of sites a Task's machine may reach, with wildcard examples and a cap of 20. It also names the sibling it pairs with (workbench_tasks_get) and the scope constraint (full replacement), so an agent can distinguish it from routine-reading or task-editing tools.

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

Usage Guidelines4/5

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

Gives an explicit prerequisite read (workbench_tasks_get, including which fields to consult) and a usage condition ('steps that have to use a site like a person would'), plus the warning to pass every site to keep. It does not name a contrasting alternative such as routines_set_sites for a similar operation on routines, which keeps it short of a full 5.

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

workbench_tasks_startStart a Task runAInspect

Kicks off a run of a Task and returns at once; the run carries on by itself and is live on the task's page. When the task expects an input document (its trigger has an input), pass the user's material as input — pasted text, extracted attachment text, or JSON. Tell the user it has started and what it does next. Check where it stands with workbench_tasks_run_view when they ask; don't poll it in a loop.

NameRequiredDescriptionDefault
inputNoTrigger payload — the document text / JSON the task starts from.
taskIdYesTask id (from workbench_tasks_list).
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond annotations (readOnly=false, openWorld=true, destructive=false), the description discloses the key behavioral trait an agent cannot infer: the call is fire-and-forget, the run continues server-side, and results appear live on the task's page. It also prescribes post-call behavior ('Tell the user it has started and what it does next').

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

Conciseness4/5

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

Front-loads the asynchronous contract in the first clause, then layers input guidance and status-check guidance in order of usefulness. Slightly dense—the 'Tell the user it has started and what it does next' instruction is agent-facing coaching rather than tool semantics, though it does earn its place as orchestration guidance.

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

Completeness4/5

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

For a mutation tool with no output schema, it covers what happens after invocation, where to observe results, and how to supply input. The needs_confirmation/approvalId recovery path is left to the schema description rather than the tool description, which is a minor gap for an agent that may hit that response mid-flow.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3; the description still adds meaning by enumerating acceptable `input` forms ('pasted text, extracted attachment text, or JSON') and tying the parameter to a trigger having an input. It adds nothing extra for workspace or approvalId, but the schema already documents those.

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

Purpose5/5

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

States a specific verb and resource ('Kicks off a run of a Task') and immediately defines its scope with 'returns at once; the run carries on by itself'. This asynchronous framing distinguishes it from siblings like workbench_tasks_run_view or workbench_flows_run.

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

Usage Guidelines5/5

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

Gives explicit conditions for passing `input` ('when the task expects an input document (its trigger has an input)'), names the alternative for status checks (workbench_tasks_run_view), and adds an explicit exclusion ('don't poll it in a loop'). When/when-not/alternative are all present.

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

workbench_tasks_updateRename a Workbench TaskA
Destructive
Inspect

Changes a task's name — the gallery label only. The sentence and plan are versioned and change through workbench_tasks_compile + workbench_tasks_freeze, never here. May return needs_confirmation.

NameRequiredDescriptionDefault
taskIdYesTask id, from workbench_tasks_list.
taskNameYesNew name.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.
approvalIdNoApproval id from a prior needs_confirmation response. Omit on the first call.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, so the description does not need to establish mutability. It adds real value beyond the annotations by disclosing the confirmation flow ('May return needs_confirmation'), which is a behavior an agent must handle. It does not, however, explain what 'destructive' means here or that the change is reversible, leaving some behavioral context thin against a destructive annotation.

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

Conciseness5/5

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

Two tight sentences with the scope constraint front-loaded and the sibling routing in the second. No filler, every clause earns its place.

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

Completeness4/5

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

For a low-complexity update tool with full schema coverage and no output schema, the description supplies the key non-obvious behaviors: gallery-label-only scope and the needs_confirmation response. Minor gaps remain (reversibility, what triggers confirmation), but it is sufficient for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100% and the schema documents all four parameters, including workspace auth nuances and approvalId semantics. The description adds no parameter-level detail beyond what the schema already provides, so the baseline of 3 is correct.

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

Purpose5/5

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

The description states a specific verb and resource ('Changes a task's name') and immediately scopes it to 'the gallery label only'. It further distinguishes from siblings by naming workbench_tasks_compile and workbench_tasks_freeze as the tools that change the sentence and plan, so the agent can tell exactly what this tool does and does not do.

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

Usage Guidelines5/5

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

Explicitly routes the agent away from this tool for sentence/plan edits ('change through workbench_tasks_compile + workbench_tasks_freeze, never here') and flags the 'needs_confirmation' flow. When and when-not are both covered without inference.

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.

  1. 5 tool updates
    • Changedsearch_workspace1 field changed
      • changedInput schema / properties / kinds / items / enum
        Previous value: -[
        -  "flow",
        -  "page",
        -  "dataset",
        -  "eval",
        -  "entry",
        -  "board",
        -  "file",
        -  "shim",
        -  "knowledge_base",
        -  "task",
        -  "rubric",
        -  "review",
        -  "spec",
        -  "source",
        -  "doc",
        -  "sheet",
        -  "diagram",
        -  "interface",
        -  "change",
        -  "folder"
        -]New value: +[
        +  "flow",
        +  "page",
        +  "dataset",
        +  "eval",
        +  "entry",
        +  "board",
        +  "file",
        +  "shim",
        +  "knowledge_base",
        +  "task",
        +  "rubric",
        +  "review",
        +  "spec",
        +  "source",
        +  "doc",
        +  "sheet",
        +  "diagram",
        +  "interface",
        +  "change",
        +  "field",
        +  "study",
        +  "metric",
        +  "folder"
        +]
    • Changedworkbench_flows_publish1 field changed
      • addedInput schema / properties / untried
        Added value: +{
        +  "description": "true only when the person asked to publish this draft without trying it first.",
        +  "type": "boolean"
        +}
    • Changedworkbench_flows_schedule3 fields changed
      • changedInput schema / properties / interval / description
        Previous value: -"Cadence: hourly, daily, or weekly."New value: +"Plain cadence: hourly, daily, or weekly. Omit when passing recurrence."
      • addedInput schema / properties / recurrence
        Added value: +{
        +  "anyOf": [
        +    {
        +      "properties": {
        +        "ends": {
        +          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        +          "type": "string"
        +        },
        +        "every": {
        +          "default": 1,
        +          "maximum": 366,
        +          "minimum": 1,
        +          "type": "integer"
        +        },
        +        "freq": {
        +          "enum": [
        +            "hourly",
        +            "daily",
        +            "weekly",
        +            "monthly",
        +            "yearly"
        +          ],
        +          "type": "string"
        +        },
        +        "hours": {
        +          "properties": {
        +            "from": {
        +              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
        +              "type": "string"
        +            },
        +            "to": {
        +              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "from",
        +            "to"
        +          ],
        +          "type": "object"
        +        },
        +        "minutes": {
        +          "items": {
        +            "maximum": 59,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "maxItems": 12,
        +          "minItems": 1,
        +          "type": "array"
        +        },
        +        "monthDays": {
        +          "items": {
        +            "maximum": 31,
        +            "minimum": -1,
        +            "type": "integer"
        +          },
        +          "maxItems": 31,
        +          "minItems": 1,
        +          "type": "array"
        +        },
        +        "months": {
        +          "items": {
        +            "maximum": 12,
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          "maxItems": 12,
        +          "minItems": 1,
        +          "type": "array"
        +        },
        +        "nthWeekdays": {
        +          "items": {
        +            "properties": {
        +              "nth": {
        +                "maximum": 5,
        +                "minimum": -1,
        +                "type": "integer"
        +              },
        +              "weekdays": {
        +                "items": {
        +                  "maximum": 6,
        +                  "minimum": 0,
        +                  "type": "integer"
        +                },
        +                "maxItems": 7,
        +                "minItems": 1,
        +                "type": "array"
        +              }
        +            },
        +            "required": [
        +              "nth",
        +              "weekdays"
        +            ],
        +            "type": "object"
        +          },
        +          "maxItems": 5,
        +          "minItems": 1,
        +          "type": "array"
        +        },
        +        "skip": {
        +          "items": {
        +            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        +            "type": "string"
        +          },
        +          "maxItems": 100,
        +          "type": "array"
        +        },
        +        "starts": {
        +          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        +          "type": "string"
        +        },
        +        "times": {
        +          "items": {
        +            "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
        +            "type": "string"
        +          },
        +          "maxItems": 24,
        +          "minItems": 1,
        +          "type": "array"
        +        },
        +        "timezone": {
        +          "maxLength": 64,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "weekdays": {
        +          "items": {
        +            "maximum": 6,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "maxItems": 7,
        +          "minItems": 1,
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "freq",
        +        "timezone"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "When it runs, like a calendar event repeats; use it for anything beyond a plain hourly/daily/weekly at one time (then omit interval). {\"freq\":\"hourly\"|\"daily\"|\"weekly\"|\"monthly\"|\"yearly\",\"every\":N,\"times\":[\"HH:MM\"],\"weekdays\":[0=Sun…6=Sat],\"monthDays\":[1…31,-1=last],\"nthWeekdays\":[{\"nth\":1…5|-1,\"weekdays\":[…]}],\"months\":[1…12],\"minutes\":[…],\"hours\":{\"from\",\"to\"},\"timezone\":\"<IANA>\",\"starts\",\"ends\",\"skip\":[\"YYYY-MM-DD\"]}. Examples: weekdays at 8 → {\"freq\":\"weekly\",\"weekdays\":[1,2,3,4,5],\"times\":[\"08:00\"],\"timezone\":\"America/Chicago\"}; the last business day of the month → {\"freq\":\"monthly\",\"nthWeekdays\":[{\"nth\":-1,\"weekdays\":[1,2,3,4,5]}],\"timezone\":\"…\"}; every other Friday → {\"freq\":\"weekly\",\"every\":2,\"weekdays\":[5],\"starts\":\"<a Friday>\",\"timezone\":\"…\"}. null clears it."
        +}
      • changedInput schema / required
        Previous value: -[
        -  "flowId",
        -  "interval",
        -  "input"
        -]New value: +[
        +  "flowId",
        +  "input"
        +]
    • Changedworkbench_flows_schedules_update1 field changed
      • addedInput schema / properties / recurrence
        Added value: +{
        +  "anyOf": [
        +    {
        +      "properties": {
        +        "ends": {
        +          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        +          "type": "string"
        +        },
        +        "every": {
        +          "default": 1,
        +          "maximum": 366,
        +          "minimum": 1,
        +          "type": "integer"
        +        },
        +        "freq": {
        +          "enum": [
        +            "hourly",
        +            "daily",
        +            "weekly",
        +            "monthly",
        +            "yearly"
        +          ],
        +          "type": "string"
        +        },
        +        "hours": {
        +          "properties": {
        +            "from": {
        +              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
        +              "type": "string"
        +            },
        +            "to": {
        +              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "from",
        +            "to"
        +          ],
        +          "type": "object"
        +        },
        +        "minutes": {
        +          "items": {
        +            "maximum": 59,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "maxItems": 12,
        +          "minItems": 1,
        +          "type": "array"
        +        },
        +        "monthDays": {
        +          "items": {
        +            "maximum": 31,
        +            "minimum": -1,
        +            "type": "integer"
        +          },
        +          "maxItems": 31,
        +          "minItems": 1,
        +          "type": "array"
        +        },
        +        "months": {
        +          "items": {
        +            "maximum": 12,
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          "maxItems": 12,
        +          "minItems": 1,
        +          "type": "array"
        +        },
        +        "nthWeekdays": {
        +          "items": {
        +            "properties": {
        +              "nth": {
        +                "maximum": 5,
        +                "minimum": -1,
        +                "type": "integer"
        +              },
        +              "weekdays": {
        +                "items": {
        +                  "maximum": 6,
        +                  "minimum": 0,
        +                  "type": "integer"
        +                },
        +                "maxItems": 7,
        +                "minItems": 1,
        +                "type": "array"
        +              }
        +            },
        +            "required": [
        +              "nth",
        +              "weekdays"
        +            ],
        +            "type": "object"
        +          },
        +          "maxItems": 5,
        +          "minItems": 1,
        +          "type": "array"
        +        },
        +        "skip": {
        +          "items": {
        +            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        +            "type": "string"
        +          },
        +          "maxItems": 100,
        +          "type": "array"
        +        },
        +        "starts": {
        +          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        +          "type": "string"
        +        },
        +        "times": {
        +          "items": {
        +            "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
        +            "type": "string"
        +          },
        +          "maxItems": 24,
        +          "minItems": 1,
        +          "type": "array"
        +        },
        +        "timezone": {
        +          "maxLength": 64,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "weekdays": {
        +          "items": {
        +            "maximum": 6,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "maxItems": 7,
        +          "minItems": 1,
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "freq",
        +        "timezone"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "When it runs, like a calendar event repeats; use it for anything beyond a plain hourly/daily/weekly at one time (then omit interval). {\"freq\":\"hourly\"|\"daily\"|\"weekly\"|\"monthly\"|\"yearly\",\"every\":N,\"times\":[\"HH:MM\"],\"weekdays\":[0=Sun…6=Sat],\"monthDays\":[1…31,-1=last],\"nthWeekdays\":[{\"nth\":1…5|-1,\"weekdays\":[…]}],\"months\":[1…12],\"minutes\":[…],\"hours\":{\"from\",\"to\"},\"timezone\":\"<IANA>\",\"starts\",\"ends\",\"skip\":[\"YYYY-MM-DD\"]}. Examples: weekdays at 8 → {\"freq\":\"weekly\",\"weekdays\":[1,2,3,4,5],\"times\":[\"08:00\"],\"timezone\":\"America/Chicago\"}; the last business day of the month → {\"freq\":\"monthly\",\"nthWeekdays\":[{\"nth\":-1,\"weekdays\":[1,2,3,4,5]}],\"timezone\":\"…\"}; every other Friday → {\"freq\":\"weekly\",\"every\":2,\"weekdays\":[5],\"starts\":\"<a Friday>\",\"timezone\":\"…\"}. null clears it."
        +}
    • Addedworkbench_tasks_set_sites

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables managing orchestration workflows through tools for creating, preflighting, linting, and running sequences, checking instance status and outputs, sending signals, retrying instances, and inspecting DLQ and usage.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A stdio MCP server that lets any MCP client dispatch tasks to the local WorkBuddy desktop agent, wait until a run reaches a terminal state, and independently verify evidence such as session transcripts, tool-call counts, and archived copies. It also exposes read-only tools for locating WorkBuddy projects and sessions, publishing runs into the desktop app's workspace, and inspecting scheduled automation tasks, their run history, and overall scheduler health.
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Enables AI agents to inspect saved flows and their input schemas, start and monitor runs, and manage agents, sessions, skills, Brain knowledge, artifacts and account administration through 92 tools. Operations are confirmation-gated and use explicitly selected private credential profiles for account and team access.
    92
    15 npm
    1
    AGPL 3.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources