Goodeye
Server Details
Design, save, and run outcome-aligned AI workflows and verifiers, with reliable image output.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.3/5 across 72 of 72 tools scored. Lowest: 2.9/5.
Every tool targets a distinct resource-action pair, with names like delete_image, deploy_verifier, and grant_workflow leaving no ambiguity. Overlap is virtually nonexistent despite the large number of tools.
All tools follow a strict verb_noun pattern in snake_case, e.g., accept_invitation, archive_template, revoke_api_key. The naming convention is uniform and predictable across the entire set.
With 72 tools, the count far exceeds the recommended 3–15 range. While the platform is feature-rich, the sheer number may overwhelm agents and suggests insufficient consolidation.
The tool surface covers most CRUD operations for templates, workflows, images, verifiers, and teams. However, the invitation lifecycle lacks a 'send_invitation' tool, which is a notable omission.
Available Tools
79 toolsaccept_invitationAInspect
Accept a pending invitation addressed to the caller.
The invitation must be in pending state and not expired.
Accepting a team_membership invitation creates the member row;
accepting an ownership invitation transfers ownership immediately.
Returns the result payload from the underlying action.
| Name | Required | Description | Default |
|---|---|---|---|
| invitation_id | Yes | The invitation to act on, identified by its UUID. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations providing behavioral hints, the description fully discloses the effects: creating a member row for team_membership or transferring ownership for ownership invitations, and returning the result payload. This exceeds the typical burden for transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with three sentences that front-load the main action and efficiently cover preconditions, behavioral details, and return value. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema exists), the description covers purpose, preconditions, effects, and return. It lacks info on error cases or permissions but is largely complete, warranting a score of 4.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the single parameter with 100% description, including its purpose as a UUID. The description adds no additional semantic value beyond what the schema already provides, so the baseline score of 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool accepts a pending invitation, specifying the two types of invitations (team_membership and ownership) and their outcomes. While the purpose is distinct from siblings like cancel_invitation or decline_invitation, it does not explicitly differentiate itself, so a score of 4 is appropriate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage: the invitation must be pending and not expired. However, it does not mention when to use alternatives (e.g., decline_invitation), which prevents a higher score. It achieves a 4 for clear usage context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_team_memberAInspect
Add a user to a team. Owner only. User accepts UUID, email, or handle.
| Name | Required | Description | Default |
|---|---|---|---|
| team_identifier | Yes | The team to act on, identified by its UUID or handle. | |
| user_identifier | Yes | The target user, identified by their UUID, email, or handle. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false). The description adds value by specifying the 'Owner only' constraint, which is critical for correct invocation. It does not detail potential side effects like duplicate handling, but the owner requirement is a meaningful behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the core action. Every sentence provides distinct information: the action, the owner constraint, and identifier formats. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the output schema is present (covering return values), the description lacks important context such as error conditions (e.g., if user already a team member), relationship to invitation flow, or required user existence. For a simple tool, this is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already describes both parameters well. The description only reiterates that user_identifier accepts UUID, email, or handle, which is already in the schema. No additional meaning is added beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Add' and resource 'user to a team', making the action unambiguous. It also specifies the owner-only restriction and accepted identifier formats, differentiating it from sibling tools like remove_team_member and list_team_members.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('Owner only') but does not explicitly state when to use versus alternatives like invitations or other team management tools. No mention of prerequisites like user existence or team membership status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_templateAIdempotentInspect
Archive a template by UUID or @handle/slug.
Owner only. Archiving keeps the slug occupied and hides the template
from public listing. Forks pinned at this template keep working;
lookup_fork_lineage surfaces parent_template_archived_at.
Idempotent on already-archived templates.
| Name | Required | Description | Default |
|---|---|---|---|
| template_id | Yes | The template to act on, identified by its UUID or @handle/slug. | |
| archive_reason | No | Optional note recording why the template was archived. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds rich behavioral context: owner-only access, slug occupation, hiding from public listing, fork persistence, metadata update on lineage, and idempotency for already-archived templates. No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with four focused sentences. It front-loads the main action and identifier format, then lists key behavioral effects and conditions. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple parameter set (2 params) and existence of an output schema, the description covers the main action, ownership, idempotency, effects on slugs and forks, and visibility. It sufficiently explains the tool's behavior for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add new meaning beyond what the schema provides for 'template_id' (UUID or @handle/slug) and 'archive_reason' (optional note). It mentions 'Owner only' but that's not tied to a specific parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool archives a template by UUID or @handle/slug. It distinguishes from siblings like 'delete_template' (archiving keeps slug occupied and hides from public, but forks keep working) and 'unarchive_template' (reverse action). The verb 'Archive' and resource 'template' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies 'Owner only' as a usage constraint, and explains effects (slug occupied, hidden from public, forks continue). It implicitly contrasts with deletion and unarchiving, but does not explicitly name alternatives like 'delete_template' or 'unarchive_template'. This is clear but lacks explicit exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_workflowAIdempotentInspect
Archive a workflow you own. Idempotent.
Sets archived_at and keeps the slug occupied so no other workflow
can claim the same name for this owner.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | Yes | The workflow to act on, identified by its UUID, slug, or name. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false. Description adds value by explaining that archived_at is set and the slug remains occupied, beyond what annotations provide. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with core purpose and idempotency. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature (one param, annotations covering idempotency and non-destructiveness, and an output schema exists), the description is complete. No missing critical info.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter with 100% schema description coverage. Description does not add any additional semantic or behavioral info beyond the schema's description of workflow_id. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action 'archive' on resource 'workflow you own'. The term 'Idempotent' adds precision. Distinguishes from siblings like delete_workflow and unarchive_workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly notes idempotency and behavior of keeping the slug occupied, which implies when to use (archive vs delete). However, no explicit when-not-to-use or alternatives given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_workflowARead-onlyInspect
Review an existing workflow against best practices (or a local skill not yet on Goodeye) and fix what it flags.
Pack-returner: response is {skill_md, references} plus workflow_id
when one was given. The agent runs the audit locally with the user: it
assesses the workflow body and every directing sibling file against a
documented best-practice rubric, runs the platform quality verifier via
run_verifier, produces a priority-ranked report, and applies only the
fixes the user approves via save_workflow(source='audit'), editing a local
copy first when one exists.
workflow_id is optional. With it, audits that registry workflow and
requires view access. Without it, audits a local skill the user points at
and recommends saving it to Goodeye.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | No | Workflow UUID, slug, or name to audit. Omit to audit a local skill the user points at (the report then recommends saving it). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare readOnlyHint: true, implying no writes, but the description explicitly states the tool applies fixes via save_workflow, which is a write operation. This is a direct contradiction. The description itself is transparent about the process, but the mismatch with annotations severely undermines trust. Hence, score 1.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is detailed and includes a pack-returner note and separate explanation for workflow_id. While moderately long, each part serves a purpose and there is no redundancy. The structure is logical, but could be slightly more concise without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description need not detail return values. It covers the process, prerequisites (view access), and two usage modes. It lacks details about the exact rubric or error handling, but overall it provides sufficient context for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only one parameter (workflow_id) and 100% schema coverage, the baseline is 3. The description adds meaningful context: it explains the two operating modes based on whether workflow_id is provided, and clarifies the view access requirement. This adds value beyond the schema description, justifying a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reviews workflows against best practices and fixes flagged issues. It specifies the process (assess, run verifier, produce report, apply approved fixes) and distinguishes between auditing a registry workflow (with workflow_id) and a local skill (without). This specificity and differentiation from sibling tools like check_workflow_safety and optimize_workflow earns a high score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (to audit workflows or local skills) and the role of the optional workflow_id. It mentions internal use of run_verifier and save_workflow, but does not explicitly exclude alternative tools or scenarios. The guidance is clear but not exhaustive, so a 4 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_invitationAIdempotentInspect
Cancel a pending invitation you sent (proposer only).
Sets resolution="cancelled". The recipient can no longer accept
or decline after this. Returns {invitation_id, resolution}.
| Name | Required | Description | Default |
|---|---|---|---|
| invitation_id | Yes | The invitation to act on, identified by its UUID. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the state change (resolution='cancelled') and the effect on the recipient, beyond what annotations provide. It confirms the mutation (readOnlyHint=false) and non-destructive (destructiveHint=false) nature, with idempotency implied but not elaborated. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with three short sentences, each adding crucial information: purpose, effect, and return value. No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with one parameter and an output schema, the description is mostly complete. It covers purpose, constraint, outcome, and return format. However, it could mention error scenarios (e.g., if not proposer or invitation already processed).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add significant meaning beyond the schema's description of invitation_id as a UUID, but it confirms the parameter's role in the cancellation action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'cancel' and the resource 'pending invitation you sent', with a scope constraint 'proposer only'. It effectively distinguishes this tool from its siblings like accept_invitation and decline_invitation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies the user must be the proposer and explains the effect (recipient cannot accept/decline). However, it does not explicitly state when not to use it or mention alternative tools, though the sibling context provides some guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_subscriptionAIdempotentInspect
Cancel your Pro subscription at the end of the current billing period.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond the annotations by specifying that cancellation occurs at the end of the billing period, not immediately. This aligns with the non-destructive hint and idempotent hint, providing useful behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, clearly communicating the action and timing. It is appropriately concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and the existence of an output schema, the description explains the core action and timing. It could mention the post-cancellation state (e.g., downgrade to free), but overall it is fairly complete for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100%, so the description does not need to add parameter information. The baseline for no parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool cancels a Pro subscription at the end of the current billing period, which is a specific verb+resource combination and distinguishes it from siblings like upgrade_to_pro and create_billing_portal_session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when the user wants to cancel their Pro subscription at period end, but it does not explicitly state when not to use it or provide alternative tools for other cancellation scenarios (e.g., immediate cancellation).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_template_safetyAInspect
Run both system safety verifiers against a published template version.
Resolves a UUID, owner-scoped slug, or @handle/slug. Defaults
to the latest live version. Bills two metered verifier runs
against the caller. The combined status is one of clean,
flagged, blocked, or error; per-side block and
advisory carry the verifier id, version, run id, verdict,
and reasoning. Anonymous public access (per-IP-hash grant) is
available on the REST surface; the MCP transport always
authenticates.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Pin to a specific version number; omit to use the latest version. | |
| template_id | Yes | The template to act on, identified by its UUID or @handle/slug. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false) indicate it's not read-only or destructive. The description adds that it 'Bills two metered verifier runs against the caller', disclosing a cost implication not captured in annotations. It also describes the output structure without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two paragraphs, concise and front-loaded with the main purpose. It includes necessary details without being verbose. Could be slightly more structured, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (two verifiers, billing, multiple ID formats, output fields) and presence of an output schema, the description adequately covers the tool's behavior and effects. It mentions billing and status outcomes, which is sufficient for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds value by explaining that template_id can be a UUID, slug, or @handle/slug, and reinforces the version parameter's behavior. This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs both system safety verifiers on a published template version. It specifies the verb 'run', the resource 'template version', and the scope 'both system safety verifiers'. This distinguishes it from siblings like 'check_workflow_safety' and 'run_verifier'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to specify the template (UUID, slug, @handle/slug) and defaults to the latest live version. It mentions billing and different access patterns (REST vs MCP). While it doesn't explicitly state when not to use, it provides sufficient context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_workflow_safetyAInspect
Run both system safety verifiers against a saved workflow version.
Resolves a UUID or owner-scoped slug. Visibility mirrors
get_workflow: owner or any active grant; cross-user pointers
surface as not found. Defaults to the latest version. Bills two
metered verifier runs against the caller. The combined status
is one of clean, flagged, blocked, or error;
per-side block and advisory carry the verifier id, version,
run id, verdict, and reasoning.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Pin to a specific version number; omit to use the latest version. | |
| workflow_id | Yes | The workflow to act on, identified by its UUID, slug, or name. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: it bills two metered verifier runs, describes the combined status and per-side block/advisory fields, and notes visibility rules. Annotations only supply non-safety hints, so the description carries the transparency burden well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient with no redundant sentences. It is front-loaded with the main purpose. While a bullet list might improve readability, the current structure is clear and compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (mentioned in context), the description sufficiently covers identification, visibility, billing, and default version. It includes key output statuses and fields, making it complete for a safety check tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaning: it clarifies default version behavior ('Defaults to the latest version') and access context ('visibility mirrors get_workflow'). This enhances understanding beyond schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs both system safety verifiers on a workflow version. It specifies resolution of UUID/slug, visibility, and default version, distinguishing it from siblings like run_verifier (single verifier) and check_template_safety (templates).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (when both safety verifiers are needed) but does not explicitly state when not to use it or mention alternatives like run_verifier for single verifier runs. Usage guidance is implied but lacks clear exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
claim_handleAIdempotentInspect
Claim a handle for the authenticated caller.
Validates against the reserved list, rejects collisions, and stamps
users.handle + users.handle_claimed_at. Idempotent when the
caller re-submits their already-claimed handle.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | Yes | The handle to claim for your account. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (idempotentHint=true, etc.), the description adds validation against reserved list, collision rejection, and field stamping. It also clarifies idempotency behavior for re-submission, providing useful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is three concise sentences with purpose first, then behavior, then idempotency. Every sentence adds value; no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema, the description covers purpose, validation, idempotency, and effects. Given the annotations and schema details, it feels complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% with a clear description for the handle parameter. The description adds that handle is validated against a reserved list, but does not add significant new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Claim a handle for the authenticated caller', specifying the verb, resource, and actor. This distinguishes it from sibling tools like rename_handle or accept_invitation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for first-time handle claiming but lacks explicit guidance on when not to use it or mention of alternatives like rename_handle. Contextual information is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_auto_top_upAInspect
Turn on automatic credit top-ups and set (or update) their terms.
Requires a default payment method already on file (a manual credit purchase saves one). Errors clearly when no default payment method is on file, or when the requested amount, threshold, or monthly cap falls outside the allowed range. Re-running this also clears any previously failed automatic top-up state, acting as a retry.
| Name | Required | Description | Default |
|---|---|---|---|
| amount_usd | Yes | Amount to add, in whole US dollars, each time your balance drops below the threshold. | |
| threshold_usd | No | Balance, in whole US dollars, that triggers an automatic top-up. Defaults to the top-up amount when omitted. | |
| monthly_cap_usd | No | Maximum total, in whole US dollars, automatic top-ups can spend in a calendar month. Defaults to four times the top-up amount when omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations, such as error behavior ('Errors clearly when no default payment method is on file, or when the requested amount... falls outside the allowed range') and the fact that re-running clears previous failed state. Annotations are all false and are consistent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at three sentences, with the main action front-loaded. Every sentence adds value (prerequisite, error handling, retry behavior) without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters with defaults, prerequisite, error cases) and the presence of an output schema, the description is complete. It covers necessary context for the agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description mentions the parameter types (amount, threshold, monthly cap) but does not add new meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the main action: 'Turn on automatic credit top-ups and set (or update) their terms.' It uses a specific verb ('turn on and set/update') and resource ('automatic credit top-ups'), and distinguishes from siblings like disable_auto_top_up and purchase_credits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage guidance by stating a prerequisite: 'Requires a default payment method already on file (a manual credit purchase saves one).' It also explains that re-running clears failed state, acting as a retry. While it doesn't explicitly say when not to use it, the context of sibling tools implies its purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_billing_portal_sessionAInspect
Get a link to the Stripe billing portal to manage your subscription and payment.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond the annotations. It mentions 'get a link' but does not specify whether it creates a session (write) or just retrieves a URL. Annotations have readOnlyHint=false, which is not contradicted, but no extra context on auth, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is clear and to the point. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and a simple purpose, the description is sufficiently complete. It explains what the tool does and what it returns (a link). Output schema is available for return type details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and the input schema is empty with 100% coverage. The description does not need to add parameter info; baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'gets a link' to the 'Stripe billing portal' for managing subscription and payment. It is specific and distinguishes from siblings like cancel_subscription.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Sibling tools include cancel_subscription and upgrade_to_pro, but the description does not clarify when to choose this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_teamAInspect
Create a team owned by the caller. Handle is immutable post-creation.
Fails with handle_not_claimed if the caller still holds a
provisional user handle. Team handles share the handles
namespace with user handles.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | Yes | Handle for the new team, drawn from the shared handle namespace. Immutable after creation. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses handle immutability and namespace sharing, and failure condition. However, with no behavioral hints in annotations (all false), description could elaborate more on side effects or permissions required. It adds some value beyond annotations but is not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the primary action and add key constraints. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter creation tool with an output schema, the description covers the essential failure condition and handle behavior. It feels complete for the tool's complexity, though it could briefly mention what the response contains (but output schema likely covers that).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a detailed description of the handle parameter. The description repeats the immutability and namespace info already present in the schema, adding no new semantic information, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a team owned by the caller, with specific verb and resource. It is unambiguous and distinct from sibling tools like delete_team or list_teams.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides failure condition (handle_not_claimed if provisional handle held) and notes handle namespace sharing, offering context for when to use. Lacks explicit alternatives but given uniqueness of the tool, guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decline_invitationAIdempotentInspect
Decline a pending invitation addressed to the caller.
Sets resolution="declined" on the invitation. The proposer
may re-invite after this. Idempotent when called on an already-resolved
invitation returns InvitationAlreadyResolved.
| Name | Required | Description | Default |
|---|---|---|---|
| invitation_id | Yes | The invitation to act on, identified by its UUID. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and destructiveHint=false. The description adds detail: sets resolution='declined', mentions idempotency with an error (InvitationAlreadyResolved), and notes re-invite possibility. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two effective sentences. It front-loads the main action and adds necessary behavioral details without superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (single parameter, clear output from idempotency and error behavior), the description covers all necessary context. The presence of an output schema means return values are handled separately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, invitation_id, is fully described in the schema (100% coverage). The tool description does not add extra semantic information 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Decline a pending invitation addressed to the caller.' It differentiates from siblings like accept_invitation and cancel_invitation by its specific verb and target.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (declining a pending invitation) and provides context: 'The proposer may re-invite after this.' However, it does not explicitly state when not to use it or compare with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_imageADestructiveInspect
Hard-delete a hosted image you own by id.
Permanently removes the image and its stored bytes (when no other image
shares the same content). There is no recovery path. Raises
image_not_found (404) when the image does not exist or belongs to
another user (existence masking: the two cases are not distinguished).
Returns {image_id, deleted: true}.
| Name | Required | Description | Default |
|---|---|---|---|
| image_id | Yes | The hosted image to act on, identified by its UUID. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description adds critical details: permanent removal, condition on shared bytes, no recovery path, and 404 with existence masking. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each providing necessary information: action, effect, error case, return value. No redundancy. Front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (1 param, no output schema shown but description gives return JSON), the description is fully sufficient. It covers behavior, errors, and result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (image_id) with schema description already explaining it. The description references 'by id' but doesn't add new semantic context. Schema coverage is 100%, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it hard-deletes a hosted image by id. It distinguishes itself from sibling tools like `delete_image_generator` by specifying the resource. The verb 'delete' and resource 'image' are explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It mentions ownership requirement and permanent deletion, implying when not to use (if you don't own the image or want recovery). It also notes existence masking, which is important context. However, it does not explicitly list alternatives for similar actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_image_generatorADestructiveInspect
Permanently and immediately erase an image generator you own (scope=user only).
generator_id accepts a UUID string.
This is permanent: the generator, all its versions (provider config,
model, parameters), all run records, and all anonymous run records are
removed from the live system at once. There is no recovery path. Use
revoke_image_generator if you want to deactivate the generator without
erasing it, keeping the audit trail intact.
Encrypted backups age out within the platform's standard retention window (up to three months), so the data is not instantly erased from all systems everywhere, but it is no longer accessible through any product surface after this call.
Serving gate: if any live published template version carries a snapshot that references this generator, deletion is refused with a Conflict. Unpublish the relevant template version(s) first, then call this operation.
Platform-managed (scope=system) generators and another user's generators
always surface as NotFound. No confirmation token is required.
Returns {generator_id, name, deleted: true}.
| Name | Required | Description | Default |
|---|---|---|---|
| generator_id | Yes | The image generator to act on, identified by its UUID. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description details the full extent of destruction: all versions, run records, anonymous run records are removed, no recovery path. It also covers edge cases like platform-managed generators surfacing as NotFound and no confirmation token needed. These behaviors are not apparent from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized: begins with the primary action, then covers permanence, alternatives, constraints, edge cases, and return value. While detailed, every sentence adds unique information, with no superfluous content. It is slightly lengthy but efficient for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description comprehensively covers the tool's context: scope, irreversibility, alternative, conflict conditions, edge cases for system generators, return format, and backup retention policy. Given the tool's destructive nature and with an output schema indicated, the description is fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter generator_id is described in the schema as a UUID, and the description adds that it accepts a UUID string, which is not explicitly in the schema format. It also clarifies the scope constraint (own generator) beyond the schema. Since schema coverage is 100% and the description adds practical context, a score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'permanently and immediately erase an image generator you own' with specific verb 'erase' and resource 'image generator'. It distinguishes from sibling tool 'revoke_image_generator', which is explicitly mentioned as an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance on when to use vs. revoke: 'Use revoke_image_generator if you want to deactivate the generator without erasing it'. Also mentions prerequisite about unpublishing template versions that reference the generator, providing clear conditions for successful invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_teamADestructiveInspect
Delete a team you own by UUID or handle. Releases the handle for reuse.
| Name | Required | Description | Default |
|---|---|---|---|
| team_identifier | Yes | The team to act on, identified by its UUID or handle. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the destructive nature is known. The description adds the behavioral detail that the handle is released for reuse, which is not deducible from annotations. However, it does not mention other consequences like deletion of team data or member dissociation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences. Every word serves a purpose: stating the action, identifier methods, and side effect. No redundant or vague phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (destructive action, one parameter, output schema exists), the description covers the core purpose and side effect but lacks details on member handling, reversibility, or required permissions beyond ownership. The output schema may compensate, but the description could be more thorough for a deletion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage for the single parameter, describing it as 'UUID or handle'. The description adds the crucial semantic that the team must be owned by the user, which is not in the schema. This helps the agent select the correct identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete a team you own') and the resource ('team'). It specifies that deletion can be done by UUID or handle, and notes the side effect of releasing the handle. This differentiates it from sibling tools like 'remove_team_member' or 'transfer_team_ownership'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates that the team must be owned by the user, providing a prerequisite. However, it does not explicitly state when not to use the tool (e.g., if the goal is to transfer ownership instead) or mention alternatives among siblings. Additional context about team member impact would enhance guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_templateADestructiveInspect
Permanently and immediately erase a template you own.
This is permanent: the template, all its versions, all attached files,
and all version verification records are removed from the live system at
once. There is no recovery path. Use archive_template if you want a
reversible alternative.
Encrypted backups age out within the platform's standard retention window (up to three months), so the data is not instantly erased from all systems everywhere, but it is no longer accessible through any product surface after this call.
Serving gate: if the template is not archived AND has at least one published version, deletion is refused. Unpublish the relevant version(s) or archive the template first, then call this operation.
Fork severing: any workflow forked from this template keeps its own
content copy. Only the fork's parent pointer is set to null. The fork
remains fully usable; lookup_fork_lineage will report its source as
permanently deleted.
Owner only. Pointing at another user's template raises NotFound. Works on both live (serving-gate permitting) and archived templates.
| Name | Required | Description | Default |
|---|---|---|---|
| template_id | Yes | The template to act on, identified by its UUID or @handle/slug. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations set destructiveHint=true, but the description adds extensive behavioral details: irreversibility, data removal scope (template, versions, files, records), backup retention window, serving gate conditions, and fork pointer behavior. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured into clear sections (permanence, serving gate, fork severing, ownership) and every sentence provides value. Slightly verbose but maintains clarity; could be tightened in a few spots without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a destructive action with multiple conditions and side effects, the description is thorough. It covers prerequisites, restrictions, and consequences (fork pointer nullification, backup retention). Output schema exists, so return values don't need explanation. Complete for the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter template_id with 100% schema coverage. The schema already describes it as UUID or @handle/slug. The tool description adds context like 'Owner only' but no new parameter-specific semantics 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool permanently erases a template, with specific verb 'delete' and resource 'template'. It distinguishes from the sibling 'archive_template' by noting the reversible alternative, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains when to use (permanent deletion) and when not to (prefer archive_template for reversibility). Also provides conditions like serving gate (must unpublish or archive) and fork severing effects, offering complete usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_template_versionADestructiveInspect
Permanently and immediately erase a single template version.
This is permanent: the version row, all its attached files, all version
verification records, and any content no longer referenced by any
surviving version or workflow version are removed from the live system
at once. There is no recovery path. Use archive_template if you
want a reversible alternative for the whole template. Encrypted backups
age out within the platform's standard retention window (up to three
months), so the data is not instantly erased from all systems
everywhere, but it is no longer accessible through any product surface
after this call.
Serving gate: the version must first be unpublished
(unpublish_template_version) before it can be erased. A
still-published version cannot be permanently deleted because it is
currently being served to readers. Unpublish it first, then call this
operation. To remove the entire template including all its versions, use
delete_template instead.
Version numbers remain monotonic with a gap where the erased version was. Surviving versions are not renumbered.
Owner only. Pointing at another user's template raises NotFound.
| Name | Required | Description | Default |
|---|---|---|---|
| version | Yes | The version number to permanently erase. | |
| template_id | Yes | The template to act on, identified by its UUID or @handle/slug. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations already indicating destructiveHint=true, the description adds rich behavioral context: details on what exactly is removed (version row, files, verification records, unreferenced content), the irreversibility, the three-month backup retention window, and the monotic version numbering with gaps. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat long but well-structured with logical paragraphs. Every sentence adds value. Front-loaded with the core action. Could be slightly more concise but remains clear and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive and irreversible nature, the description is thorough: covers permanence, what is removed, prerequisites, alternatives, version numbering, and security (owner only). Output schema exists but not shown, so return values are not described, but that's acceptable. Complete for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters fully described in schema). The description adds no new information about parameters beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it permanently erases a single template version. It uses specific verbs ('erase', 'permanently delete') and identifies the resource. It distinguishes from siblings like 'archive_template' (reversible) and 'delete_template' (whole template), and mentions the prerequisite 'unpublish_template_version'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: when permanent removal is desired. Provides alternatives: 'archive_template' for reversible removal, 'delete_template' for entire template. Also specifies prerequisite: version must be unpublished first via 'unpublish_template_version'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_verifierADestructiveInspect
Permanently and immediately erase a verifier you own (scope=user only).
verifier_id accepts a UUID string.
This is permanent: the verifier, all its versions (criterion, calibration
examples, input contracts), all run records, and all access grants are
removed from the live system at once. There is no recovery path. Use
revoke_verifier if you want to deactivate the verifier without erasing
it, keeping the audit trail intact.
Encrypted backups age out within the platform's standard retention window (up to three months), so the data is not instantly erased from all systems everywhere, but it is no longer accessible through any product surface after this call.
Serving gate: if any live published template version carries a snapshot that references this verifier, deletion is refused with a Conflict. Unpublish the relevant template version(s) first, then call this operation.
Platform-managed (scope=system) verifiers and another user's verifiers
always surface as NotFound. No confirmation token is required.
Returns {verifier_id, name, deleted: true}.
| Name | Required | Description | Default |
|---|---|---|---|
| verifier_id | Yes | The verifier to act on, identified by its UUID or, for a verifier you own, its name. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Disclosures beyond annotations: lists exactly what gets permanently deleted (verifier, versions, run records, access grants), states no recovery path, mentions backup retention window, and notes no confirmation token needed. Does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with front-loaded action statement, then detailed bullet points. Every sentence adds value without redundancy. Efficient use of text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the destructive nature, the description covers all critical aspects: what is deleted, recovery, retention, constraints (serving gate), scope, and return value. No gaps remain for a safe and informed invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already describes verifier_id as UUID or name. Description adds context: only works for user-scoped verifiers, and reaffirms the return value includes deleted: true. Schema coverage is 100%, so baseline is 3; the additional context raises it to 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool's purpose: 'Permanently and immediately erase a verifier you own'. It distinguishes from sibling tools like revoke_verifier and get_verifier, and specifies scope constraints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use and when-not-to-use guidance: mentions revoke_verifier as alternative for deactivation without erasure, details serving gate conflict with published templates, and clarifies platform-managed/other's verifiers return NotFound.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_workflowADestructiveInspect
Permanently and immediately erase a workflow you own.
This is permanent: the workflow, all its versions, all attached files,
and all access grants are removed from the live system at once. There
is no recovery path. Use archive_workflow if you want a reversible
alternative.
Encrypted backups age out within the platform's standard retention window (up to three months), so the data is not instantly erased from all systems everywhere, but it is no longer accessible through any product surface after this call.
Owner only. Works on both live and archived workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | Yes | The workflow to act on, identified by its UUID, slug, or name. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description adds significant value by detailing the permanent nature, removal of versions/files/grants, lack of recovery path, and backup retention window (up to three months but inaccessible). This goes well beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, well-structured with clear paragraphs, and every sentence adds value. It is front-loaded with the core action and permanence, then expands on details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with complex effects, the description covers permanence, what is removed, recovery, ownership, and backup window. An output schema exists, so return values are not needed. The description is fully adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage for the single parameter, the baseline is 3. The description adds the owner restriction (workflow you own) which is not in the schema, but this is a minor addition. No further parameter details are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'erase' and identifies the resource as 'a workflow you own'. It explicitly distinguishes from the sibling tool 'archive_workflow' by noting it is permanent and irreversible.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when to use (for permanent deletion) and when not to (recommends 'archive_workflow' as a reversible alternative). It also specifies 'Owner only' and applicability to both live and archived workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_workflow_versionADestructiveInspect
Permanently and immediately erase a single non-current workflow version.
This is permanent: the version row, all its attached files, and any
content that is no longer referenced by any surviving version or
published template version are removed from the live system at once.
There is no recovery path. Use archive_workflow if you want a
reversible alternative for the whole workflow.
Encrypted backups age out within the platform's standard retention window (up to three months), so the data is not instantly erased from all systems everywhere, but it is no longer accessible through any product surface after this call.
The current (live) version cannot be erased with this call. Use
delete_workflow to permanently remove the entire workflow including
its current version.
Version numbers remain monotonic with a gap where the erased version was. Surviving versions are not renumbered.
Owner only. Pointing at another user's workflow raises NotFound.
| Name | Required | Description | Default |
|---|---|---|---|
| version | Yes | The non-current version number to permanently erase. | |
| workflow_id | Yes | The workflow to act on, identified by its UUID, slug, or name. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes far beyond annotations: details permanence, what gets deleted (version row, files, unreferenced content), no recovery path, backup retention period, current version restriction, and version number gaps. No contradiction with destructiveHint: true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise yet comprehensive. Every sentence adds value, front-loaded with core action, then covers consequences, alternatives, and constraints. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Fully covers all relevant context for a destructive irreversible operation: permanence, scope of deletion, backup timeline, what cannot be deleted, ownership requirement. Output schema exists but description doesn't need return details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already has 100% coverage with clear descriptions for both parameters. Description adds minimal extra meaning (e.g., 'non-current' for version, 'UUID, slug, or name' for workflow_id) but not necessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action: 'permanently and immediately erase a single non-current workflow version.' Distinguishes from sibling tools like archive_workflow and delete_workflow by naming them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use and when-not-to-use: 'use archive_workflow if you want a reversible alternative,' 'Use delete_workflow to permanently remove the entire workflow.' Also notes 'Owner only'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deploy_image_generatorAInspect
Deploy a reusable image generator that workflows reference to produce images from a chosen model: creates it or appends a version.
An image generator is a named, versioned configuration that routes
image generation calls to a specific model. Generators are private and
owner-scoped. Workflows reference them by UUID or uuid@version.
You cannot deploy a new generator whose name matches an active
platform scope=system generator (those are tier-level configs
that are run-only and not listed or fetched).
Versioning: the first deploy with a given name creates the
generator at version 1. Re-deploying the same name appends a new
version and requires expected_version_token from the latest known
version (returned by deploy/list/get). A new generator must omit the
token; an existing one without a token returns Conflict.
Deploy-time validation: the model is checked against the pricing
layer. A model that does not resolve to a known image endpoint with an
authoritative price is rejected before any row is written.
Returns: {generator_id, name, description, current_version, version, version_token, status, scope, provider, model, generation_contract, config_hash, created_at}. Persist version_token for the next
re-deploy.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | Payload for ``deploy_image_generator``: create a new image generator or append a new version to an existing one (owner-scoped, name-uniqueness within owner). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond minimal annotations by disclosing behavioral traits such as owner-scoped privacy, versioning concurrency (token-based), deploy-time validation against pricing layer, and the requirement to persist the version_token for future re-deploys. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear paragraphs for purpose, scope, versioning, validation, and return. While slightly lengthy, each sentence adds necessary detail. Front-loaded with main purpose. Could be marginally tighter, but effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (versioning, concurrency, scope constraints) and the presence of an output schema listing return fields, the description covers all essential aspects: creation vs. version append, token handling, validation, and scope rules. No major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds significant value by explaining the interaction between parameters (e.g., token omitted on first deploy) and constraints not in the schema (e.g., system name uniqueness). This elevates the score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: 'Deploy a reusable image generator that workflows reference to produce images from a chosen model: creates it or appends a version.' It clearly differentiates from sibling tools like generate_image and delete_image_generator by focusing on deployment and versioning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides detailed when-to-use and when-not-to-use guidance, including a specific prohibition: 'You cannot deploy a new generator whose name matches an active platform scope=system generator.' It explains versioning rules, token requirements for first vs. re-deploy, and validation conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deploy_verifierAInspect
Deploy a reusable semantic verifier (an LLM-judge check workflows reference by id) that scores agent output against a criterion: creates it or appends a version.
A semantic verifier is a single judgment ("does this output satisfy this
criterion?") evaluated by an LLM judge. Verifiers are private and
owner-scoped. Workflows reference them by verifier_id (or
verifier_id@version). You cannot deploy a new verifier whose
name matches an active platform scope=system verifier: those
definitions are server-owned, never listed or fetched, and only
executable through run_verifier.
Versioning: the first deploy with a given name creates the verifier
at version 1. Re-deploying the same name appends a new version and
requires expected_version_token from the latest known version
(returned by deploy/list/get). A new verifier must omit the token; an
existing one without a token returns Conflict.
Input contracts:
text:input_fieldsrequired,media_urlrejected.text_image:input_fieldsplusmedia_urlrequired at run time.image:input_fieldsempty, onlymedia_urlat run time.
Few-shot examples (3 to 10 typical) calibrate the judge; each example must match the contract (text-only inputs, text+image, or image-only).
Returns: {verifier_id, name, current_version, version, version_token, status, input_contract, config_hash}. Persist version_token for
the next re-deploy.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | Payload for ``deploy_verifier``: create a new verifier or append a new version to an existing one (owner-scoped, name-uniqueness within owner). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are non-informative (all hints false), but the description fully compensates by detailing behavioral traits: verifier creation vs. versioning, system verifier restrictions, concurrency via version tokens, input contract rules, and return format. No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured, covering all necessary aspects without redundancy. Every sentence adds value. It could be slightly more concise, but the complexity justifies the length. Minor improvement would be breaking into shorter paragraphs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (versioning, contracts, concurrency, system verifiers), the description is remarkably complete. It explains all critical behaviors, constraints, and return structure. The output schema exists, so the description need not detail all fields. No gaps are evident.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value beyond the schema by explaining versioning logic, concurrency, system verifier restrictions, and input contract implications. However, many schema descriptions are already detailed; the description mostly synthesizes them. Thus a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: deploy a reusable semantic verifier that creates or appends a version. It uses specific verbs ('deploy', 'create', 'append') and distinguishes from siblings like run_verifier, list_verifiers, get_verifier, delete_verifier, and revoke_verifier by focusing on creation and versioning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides extensive guidance: when to use (create or update verifiers), when not to use (conflict with system verifiers), versioning behavior, expected_version_token requirements, input contract constraints, and the role of few-shot examples. It implicitly contrasts with other verifier tools, making usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deprecate_template_versionAIdempotentInspect
Mark one template version as deprecated by UUID or @handle/slug.
Owner only. Soft signal: the version stays fetchable;
fork_template and lookup_fork_lineage surface the
deprecation. message is last-write-wins;
deprecated_at anchors on first call.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Message shown to anyone fetching or forking this version, explaining the deprecation. | |
| version | Yes | The version number to deprecate. | |
| template_id | Yes | The template to act on, identified by its UUID or @handle/slug. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes idempotency ('last-write-wins'), non-destructive nature ('soft signal, version stays fetchable'), and deprecation timing ('deprecated_at anchors on first call'). Fully aligns 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four concise sentences, each adding essential information. No fluff. Front-loaded with main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Explains return behavior (version stays fetchable), effect on other tools (fork_template, lookup_fork_lineage), and idempotent handling. Complete for a mutation tool with output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage. Description adds value by noting 'message is last-write-wins', which is beyond schema. Minor extra context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Mark one template version as deprecated' with specific resources. Distinct from siblings like delete_template_version.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions 'Owner only' and describes soft-signal behavior versus alternatives. Lacks explicit when-not-to-use but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design_workflowARead-onlyInspect
Create a new workflow from scratch: a guided session that designs the workflow and its verifiers. The agent should follow it locally and call save_workflow() to persist the result.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. The description adds that it is a guided session that designs workflow and verifiers, requiring a follow-up call to save_workflow, which gives behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently describe purpose and usage, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and an output schema, the description fully explains the tool's role and the required follow-up action, making it complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (baseline 4). The description correctly implies no additional input is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new workflow from scratch via a guided session, explicitly distinguishing it from siblings like save_workflow (which persists) and optimize_workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description instructs the agent to follow the session locally and call save_workflow to persist, providing clear usage context but not explicitly stating when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disable_auto_top_upAInspect
Turn off automatic credit top-ups.
Clears any stored failure state; leaves the previously configured amount, threshold, and monthly cap in place for a later re-enable.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes clearing failure state and preserving configuration, going beyond annotations. Could mention idempotency, but adds valuable context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no waste, front-loaded with main action. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and an output schema, description covers functionality and side effects fully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, schema coverage 100%, baseline 4. No need for additional parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states the tool turns off automatic credit top-ups and distinguishes from siblings like configure_auto_top_up by noting it preserves configuration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context for use (disable auto top-up) but lacks explicit when-not-to-use or alternatives; implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fork_templateAInspect
Fork a public template into a private workflow owned by the caller.
Authentication is required. Returns the new workflow's id and
lineage metadata; anonymous callers get AuthRequired.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional name for the new private workflow; defaults to the template's slug. | |
| version | No | Pin to a specific version number; omit to use the latest version. | |
| identifier | Yes | The template to fetch, identified by its UUID, @handle/slug, or @handle/slug@vN to pin a specific published version. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses authentication requirement, return value (id and lineage metadata), and behavior for anonymous callers (AuthRequired). Annotations are minimal (all false), so description adds valuable behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, front-loaded with purpose. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given presence of output schema, description adequately covers authentication, result, and visibility (public template). No major gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description does not need to detail parameters. Baseline 3 is appropriate; no additional parameter meaning is added beyond what schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'fork' and clearly identifies the resource (public template) and target (private workflow owned by caller). Distinguishes from sibling operations like 'get_template' or 'create_workflow'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States when to use: forking a public template into a private workflow. Lacks explicit when-not-to-use or alternative suggestions, but the context is clear given sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_imageAInspect
Generate one or more images from a text prompt, billed to the caller's credits.
Requires authentication. Anonymous image generation is available only via
the REST API (POST /v1/image-generators/{id}/runs); the MCP transport
always authenticates.
Resolution order for the generator (highest priority first):
A deployed
generatorref (uuid@versionor bare UUID): pins the deployed version config.The
modelcontrol path (authenticated one-off, ephemeral). Not usable from published templates.A tier
generatorref (system:<tier>): resolves to the tier's current best model (auto-upgrade). Available tiers:system:image-standard(default),system:image-premium,system:image-edit(image-to-image, requiresreference_image_url).Default:
system:image-standardwhen no generator or model is given.
generator and model are mutually exclusive.
For image_to_image generators, reference_image_url is required
and must be a public HTTP or HTTPS URL. For text_to_image generators,
providing reference_image_url is rejected.
Billing: spend is deducted from the caller's monthly credit balance.
BudgetExhausted (402) and AccountSuspended (403) propagate if the
balance is zero or the account is suspended.
visibility sets the access level of the hosted copy of each image:
public (default) returns a link that opens in any browser;
private returns a link only you can open and forward to people you
choose, while the plain URL stays locked.
Returns: {run_id, model_tier_or_model, image_url, image_urls, width, height, num_images, cost_usd, duration_ms, status, created_at, error_code, error_message, hosted_images}. hosted_images carries
the durable Goodeye-hosted copy of each image with its url (the
browser-viewable link) and visibility. The prompt is never stored;
only its hash is persisted on the run row.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | Payload for ``generate_image``: produce one or more images from a prompt, billed to the caller's credit balance. Supply ``generator`` to use a named system tier (e.g. ``system:image-standard``) or a deployed generator by ``uuid@version``. Supply ``model`` for an authenticated one-off using a concrete model identifier. ``generator`` and ``model`` are mutually exclusive; omitting both resolves to the default tier. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description fully discloses behavioral traits such as billing deduction, generator resolution precedence, mutual exclusivity, visibility behavior, and that the prompt is not stored. Annotations are minimal (all false), so the description carries the full burden and exceeds expectations by providing rich operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bullet points and sections, but it is relatively lengthy. However, every sentence adds value given the complexity of the tool. A slight reduction in verbosity could improve conciseness, but it remains clear and organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (billing, multi-tier resolution, multiple parameters, output schema), the description is complete. It covers authentication, parameter interactions, error propagation, output fields, and storage behavior. The presence of an output schema reduces the burden, but the description still explains the return fields in detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3, but the description adds significant value by explaining the semantics of the generator resolution (system tiers, UUIDs), mutual exclusivity with model, and the implications of visibility. It also clarifies parameter overrides and reference_image_url requirements, going beyond the schema's descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Generate one or more images from a text prompt, billed to the caller's credits,' which is a specific verb-resource combination. It distinguishes the tool from siblings like delete_image, get_image, and upload_image, which perform distinct operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool (e.g., authenticated image generation) and when not to (e.g., anonymous generation only via REST API). It details the resolution order for generator/model, mutual exclusivity, required parameters for image-to-image, and billing implications, leaving no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_auto_top_upARead-onlyInspect
Check your automatic credit top-up configuration and this month's spend toward it.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description does not need to emphasize safety. It adds context about retrieving monthly spend, but does not disclose any additional behavioral traits like response format or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the main action ('Check your automatic credit top-up configuration') and then adds the spend detail. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an output schema existing, the description is adequate. It tells the agent exactly what information is returned. A perfect score would require mentioning that it is read-only, but annotations already cover that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With no parameters, the schema coverage is 100%. The description adds meaning by explaining what the tool retrieves, which is the top-up configuration and spend. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'check' and specifies the resource 'automatic credit top-up configuration' along with 'this month's spend'. This clearly distinguishes it from sibling tools like 'configure_auto_top_up' and 'disable_auto_top_up', which are write operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for viewing current settings and usage. It does not explicitly state when to use it versus alternatives, but the read-only nature is evident from the name and annotations, providing clear context with no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_imageARead-onlyInspect
Fetch a hosted image by id. Caller must own it.
Returns the full image record including the serving URL. Raises
image_not_found (404) when the image does not exist or belongs to
another user (existence masking: the two cases are not distinguished).
| Name | Required | Description | Default |
|---|---|---|---|
| image_id | Yes | The hosted image to act on, identified by its UUID. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds return content ('full image record including serving URL') and error behavior with existence masking, going beyond readOnlyHint annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose, return value, error handling. No redundancy, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema existing, description sufficiently covers purpose, ownership, return content, and error behavior. Complete for a simple get tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter with 100% schema coverage. Description adds no additional semantic detail beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Fetch a hosted image by id' with specific verb and resource. Ownership requirement distinguishes it from tools like list_images, update_image, delete_image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit ownership constraint guides usage, but no mention of when not to use or alternatives like list_images or get_image_generator.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_image_generatorARead-onlyInspect
Inspect one image generator you own (its model and full config) at head or a pinned version.
generator_id accepts a UUID string. Platform system:... tier
aliases and system generator UUIDs are not returned here (NotFound):
system generators are run-only and their internal config never surfaces
through list, get, deploy, or revoke.
Defaults to the current version; pass version to pin. Returns the
full deploy-time payload (provider, model,
generation_contract, default_params) plus config_hash
(SHA-256 over the config) so callers can detect drift across versions.
Requires ownership; a cross-user or revoked generator surfaces as
NotFound.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Pin to a specific version number; omit to use the latest version. | |
| generator_id | Yes | The image generator to act on, identified by its UUID. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations providing readOnlyHint, the description adds value by detailing the return payload, version pinning, and error conditions. This is exemplary transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: three sentences that cover purpose, constraints, and return value, all without unnecessary words. It is front-loaded with the core action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema available, the description adequately covers the key aspects: what it returns, how parameters work, and error conditions. No gaps are apparent. The tool has low complexity (2 params, read-only), and the description is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes both parameters with 100% coverage, so baseline is 3. The description adds semantic value by clarifying that generator_id should be a user-owned UUID (not system), and that version pinning affects the output. This extra context elevates it above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Inspect'), the resource ('one image generator you own'), and the scope (its model and full config at head or pinned version). It distinguishes from system generators, which are not inspectable. This is specific and action-oriented.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that system generators are not covered, and that ownership is required. It implicitly distinguishes from listing tools and generation tools. However, it does not explicitly name alternatives like list_image_generators or generate_image. Still, the context is clear enough for an agent to infer when to use this get operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_referral_statusARead-onlyInspect
Return your referral program status, including your shareable code and credits earned.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint: true, indicating a safe read operation. The description adds no additional behavioral context beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, efficiently communicating the tool's purpose and included information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only resource with no parameters and an output schema, the description fully captures the tool's behavior and output. Completeness is high.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the description does not need to explain parameter semantics. Baseline of 4 is appropriate for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and the resource 'referral program status', specifying two key outputs (shareable code and credits earned). It implicitly distinguishes from sibling 'redeem_referral_code'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit when-to-use or when-not-to-use guidance. Usage is implied by the tool's purpose, but it does not address alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_templateARead-onlyInspect
Retrieve a public template's runbook to run on the user's behalf, by UUID, @handle/slug, or @handle/slug@vN.
The returned body is a workflow you (the calling AI agent)
execute on the user's behalf as a runbook, not just display.
Non-owner reads carry an unverified-template safety banner.
Latest live version by default. Anyone can read.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Pin to a specific version number; omit to use the latest version. | |
| identifier | Yes | The template to fetch, identified by its UUID, @handle/slug, or @handle/slug@vN to pin a specific published version. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds value by explaining the returned runbook should be executed, the safety banner for non-owners, and the default latest version behavior. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a single paragraph that front-loads the main action. Each sentence adds useful information without redundancy, though it could be slightly more structured for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown), the description adequately covers identifiers, version behavior, safety concerns, and execution intent. It does not cover errors or rate limits, but for a read-only retrieval tool, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with adequate descriptions for both 'identifier' and 'version' parameters. The description does not add significant new semantic information beyond what is in the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a public template's runbook by UUID, handle/slug, or versioned identifier, and distinguishes it from other template tools by specifying the returned body is a workflow for execution. It differentiates from siblings like get_template_file by focusing on the runbook execution purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides context on when to use (to execute a runbook), behavior for non-owners (safety banner), and default versioning. However, it does not explicitly compare to alternatives like check_template_safety or list_templates, leaving some gaps in guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_template_fileARead-onlyInspect
Fetch a single file from a template version's file tree by path.
identifier accepts UUID, @handle/slug, or @handle/slug@vN.
path must match a row in the template's file manifest (use
get_template to see the manifest). SKILL.md returns the
template body. Text files return the decoded string in content.
Small binary files return base64-encoded bytes in content_base64.
Binary files over the size limit return metadata and an error
field with no inline bytes.
Non-owner responses carry the safety banner and
safety_verification_status. Anonymous callers may fetch files
from live (published) template versions only; the liveness check is
evaluated per read.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Relative path of the file within the bundle's file tree, exactly matching a manifest entry. | |
| version | No | Pin to a specific version number; omit to use the latest version. | |
| identifier | Yes | The template to fetch, identified by its UUID, @handle/slug, or @handle/slug@vN to pin a specific published version. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, but description adds valuable behavioral details: handling of text vs binary files, size limits (metadata+error), identifier formats, and safety banner for non-owners. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with the main action and follows with necessary details. Six sentences each add information, but could be slightly more terse. Overall well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (context signals), description covers file behavior (text, binary, over-limit), identifier options, and access restrictions. Complete for the tool's complexity with 3 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds meaning beyond schema: explains identifier formats (UUID, @handle/slug, @vN), that path must match manifest, and version parameter's purpose. Adds significant value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetch a single file from a template version's file tree by path', using specific verb and resource. It distinguishes from sibling tools like get_template (which returns the template manifest) and get_workflow_file (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent to use get_template to see the manifest for path validation, and notes restrictions for non-owners and anonymous callers, providing clear context for when to use this tool vs alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usageARead-onlyInspect
Check how much of your monthly credit grant you have used, with the remaining balance.
Also includes your automatic credit top-up configuration and this month's spend toward it, null if you have never configured one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=false. The description adds value by noting that top-up configuration data (including this month's spend) is returned, and that it null if never configured. This provides behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with main purpose. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with an output schema, the description sufficiently explains the return values (balance, top-up config). No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. Per guidelines, baseline is 4. The description explains what the tool returns, which is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool checks monthly credit grant usage and remaining balance, and includes top-up configuration details. This specific verb+resource pairs well with the tool name and distinguishes it from siblings like get_auto_top_up.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description indicates when to use (check credit usage and top-up info). It does not explicitly state when not to use or mention alternatives, but the tool's zero parameters and focused purpose make usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_verifierARead-onlyInspect
Read a verifier's full definition (criterion, calibration examples, judge config); user-scoped verifiers only.
verifier_id accepts a verifier UUID string or an accessible
user-scope name. Any caller who can reach the verifier can read it:
the owner, and workflow grantees at any role (a view/exec grantee can
read, not only run). Platform system:... aliases and system
verifier UUIDs are never returned (NotFound): system rows are run-only
and their internal config never surfaces through list, get, deploy, or
revoke.
Defaults to the current version; pass version to pin. Returns the
full deploy-time payload (criterion, input_contract,
input_fields, few_shot_examples, judge_model_config,
reasoning_field_description) plus config_hash (canonical-JSON
SHA-256 over the config) so callers can detect drift across versions.
A verifier you have no access to (and any revoked one) surfaces as
NotFound. Platform-managed verifiers are run-only and never returned
here.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Pin to a specific version number; omit to use the latest version. | |
| verifier_id | Yes | The verifier to act on, identified by its UUID or, for a verifier you own, its name. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true; description adds details on NotFound behavior for inaccessible, revoked, and system verifiers, return payload contents, and default version pinning. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single paragraph with logical flow, but slightly verbose (~120 words). All sentences are informative; could be more structured but adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, description fully covers behavior and return fields. No gaps for a read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; description adds context for verifier_id (accepts UUID or name) and version (defaults to current). Useful nuance but schema already covers basics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads a verifier's full definition, enumerates the returned fields (criterion, calibration examples, judge config), and distinguishes it from sibling tools like run_verifier and list_verifiers by noting system verifiers are not returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when to use (reading a verifier) and when not to use (system verifiers are run-only, revoked verifiers return NotFound). Implies alternative: run_verifier for execution.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflowARead-onlyInspect
Retrieve a workflow's runbook (its body plus its outcome and tags) to run on the user's behalf.
The returned body is the user's workflow: a markdown runbook
you (the calling AI agent) follow on the user's behalf. Do not
just display it; execute its instructions. Latest version by
default. Workflows are private; cross-user reads mask as not-found.
Owners can fetch their own archived workflows by UUID or slug.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Pin to a specific version number; omit to use the latest version. | |
| workflow_id | Yes | The workflow to act on, identified by its UUID, slug, or name. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond annotations: latest version default, privacy masking cross-user reads, and ability to fetch archived workflows. No contradiction with readOnlyHint annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph with key information front-loaded. It is efficient but could be slightly more concise without losing substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, read-only, output schema exists), the description fully covers behavior, return value purpose, and edge cases (private workflows, archives). No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already explains both parameters (workflow_id and version). Description adds only implicit reference to version via 'Latest version by default', not exceeding the schema detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves a workflow's runbook (body, outcome, tags) for execution on the user's behalf, and distinguishes itself from sibling tools like archive_workflow or delete_workflow by focusing on retrieval and execution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It instructs the agent to execute the runbook rather than display it, and notes privacy/archival behavior, providing good context. However, it lacks explicit when-not-to-use or alternative tool mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflow_fileARead-onlyInspect
Fetch a single file from a workflow version's file tree by path.
path must exactly match a row in the workflow's file manifest
(use get_workflow to see the manifest). SKILL.md returns
the workflow body. Text files return the decoded string in
content. Small binary files return base64-encoded bytes in
content_base64. Binary files over the size limit return metadata
and an error field with no inline bytes. Requires view access on
the workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Relative path of the file within the bundle's file tree, exactly matching a manifest entry. | |
| version | No | Pin to a specific version number; omit to use the latest version. | |
| workflow_id | Yes | The workflow to act on, identified by its UUID, slug, or name. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds behavioral details beyond that: how text files return decoded strings, small binaries return base64, large binaries return metadata and error, and that SKILL.md returns the workflow body. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a well-structured single paragraph of 6 sentences, starting with the main purpose then detail. It is efficient but could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all key behaviors: path matching, version handling, file type handling, size limits, permission requirement. With an output schema present, return values are documented elsewhere, so the description is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds minimal extra parameter context beyond the schema (e.g., SKILL.md returns workflow body), but does not substantially enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetch a single file from a workflow version's file tree by path.' The verb 'Fetch' and resource 'single file' are specific, and it distinguishes itself from sibling tools like get_workflow_files (plural) and get_workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use get_workflow to see the manifest, explains behavior for different file types (text, small binary, large binary), and notes the permission requirement. However, it does not explicitly state when not to use this tool or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflow_filesARead-onlyInspect
Fetch multiple files from a workflow version's file tree in a single call.
paths is a list of relative paths, each of which must exactly match
a row in the workflow's file manifest (use get_workflow to see the
manifest). Envelopes are returned in lexicographic path order.
Each envelope carries the same fields as get_workflow_file. Unknown
paths appear as per-path error: "not_found" envelopes rather than
failing the whole request. Once the aggregate inline budget is exhausted,
remaining inline-eligible files are returned as
error: "batch_response_cap_exceeded" references with no content.
Every requested path appears exactly once in the response.
Requires view access on the workflow. Returns {"files": [...]}.
| Name | Required | Description | Default |
|---|---|---|---|
| paths | Yes | List of relative paths to fetch in one call. | |
| version | No | Pin to a specific version number; omit to use the latest version. | |
| workflow_id | Yes | The workflow to act on, identified by its UUID, slug, or name. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description details important behaviors: unknown paths return 'not_found' envelopes instead of failing, aggregate inline budget can cause 'batch_response_cap_exceeded' errors, paths are returned in lexicographic order, each path appears exactly once, and the response structure is given. There is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately detailed but each sentence serves a purpose. It is well-structured with clear paragraphs covering different aspects (path matching, ordering, error handling, budget). No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a batch file fetch tool with error handling, budget limits, and ordering, the description covers all key aspects. The presence of an output schema relieves the need to describe return values, but edge cases are thoroughly documented. The description is complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description goes beyond schema by explaining that 'paths' must exactly match manifest rows, ordering is lexicographic, unknown paths return error envelopes, and the budget exhaustion behavior. For 'version', it clarifies pinning vs latest. 'workflow_id' as UUID/slug/name is mentioned. These details add significant value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetch multiple files from a workflow version's file tree in a single call', using a specific verb and resource. It implicitly distinguishes from 'get_workflow_file' (single file) and 'get_workflow' (manifest retrieval through reference).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description instructs to use exact paths from the manifest obtained via 'get_workflow', and notes that unknown paths return error envelopes, providing clear context. However, it does not explicitly list alternative tools for when this tool should not be used, though the purpose (batch fetch vs single file) is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grant_workflowAInspect
Grant workflow access to a user or team by UUID, email, or handle.
By default the grantee sees the workflow version current at share time and any later versions, but not older ones. Set include_history to true to give the grantee the full version history.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | Access level to grant: 'view', 'edit', or 'admin'. | |
| workflow_id | Yes | The workflow to act on, identified by its UUID, slug, or name. | |
| include_history | No | When true, the grantee sees the full version history; when false (default), only the version current at share time and later. | |
| grantee_email_or_at_team_handle | Yes | The grantee: a user's email, or a team's @handle. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations by explaining version history behavior: default grants access to current version and later, but not older versions unless include_history is set. Annotations only show non-read/write/destructive hints, so description adds valuable context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. First sentence states the purpose immediately, second sentence explains an important behavioral nuance. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main purpose and key behavioral details. Since there is an output schema, return values are not needed. Missing permissions or error handling but still complete enough for a grant tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters are described in the input schema (100% coverage). The description adds extra meaning by mentioning identification methods (UUID, email, handle) and explaining the effect of include_history, which enhances understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Grant' and resource 'workflow access', clearly stating the action. It distinguishes the tool from siblings like revoke_workflow_grant by focusing on granting access.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool (to grant access) and provides context about default version history behavior. It implicitly contrasts with revoke_workflow_grant but does not explicitly list alternatives or when-not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_api_keysARead-onlyInspect
List your live (non-revoked) API keys.
Returns {"items": [...], "next_cursor": str | null}. Page until next_cursor is null. Never returns hashes or plaintext.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return in one page (1 to 200). | |
| cursor | No | Pagination cursor from a previous response's next_cursor; omit to start from the first page. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description adds critical security context: 'Never returns hashes or plaintext.' This discloses important behavioral traits about what the tool does not expose, which is valuable for an API key listing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, front-loaded with the purpose, then describes the return format, and finally gives pagination instructions. Every sentence is essential, and there is no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has two well-documented parameters, an output schema, and is read-only, the description covers all necessary aspects: what it does, how to paginate, and what it does not return. It is complete for a simple listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with descriptions for 'limit' and 'cursor'. The tool description does not add additional semantic meaning beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List', the resource 'your live (non-revoked) API keys', and distinguishes from siblings like mint_api_key or revoke_api_key. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains pagination behavior (page until next_cursor is null) and the return format. While it doesn't explicitly state when not to use it, the context of sibling tools makes it clear this is for viewing existing keys, not for creating or revoking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_image_generatorsARead-onlyInspect
List active (non-revoked) image generators owned by the caller.
Platform-managed system generators (the standard, premium, and
image-to-image tiers) are excluded; those are run-only and not listed.
Cursor-based pagination mirrors list_verifiers.
Returns {items: [{generator_id, name, description, current_version, version_token, status, scope, created_at, updated_at}], next_cursor: str | null}.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return in one page (1 to 200). | |
| cursor | No | Pagination cursor from a previous response's next_cursor; omit to start from the first page. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare read-only behavior. The description adds detail: lists only non-revoked generators, excludes platform-managed ones, and describes pagination behavior mirroring list_verifiers, all 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences covering purpose, exclusions, pagination, and return format. Front-loaded with main purpose, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with simple pagination, the description fully covers what the tool does, what it returns (including field list), and its limitations (exclusions). No gaps given the output schema is provided inline.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds value by referencing list_verifiers pagination behavior, providing extra context for cursor usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'List' and the resource 'active (non-revoked) image generators owned by the caller'. It specifies exclusions (platform-managed) and scope, making it distinct from sibling list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context that only user-owned generators are listed and platform-managed ones are excluded, informing when not to use this tool. However, no explicit alternatives are named for other use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_imagesARead-onlyInspect
List hosted images owned by the caller, with optional filters.
source filters by upload origin: "upload" for directly uploaded
images, "generated" for images created via the image generation
tools. Omit to return all sources.
visibility filters by access level: "public" or "private".
Omit to return both.
Pagination: pass next_cursor from a previous response as cursor
to retrieve the next page. Returns {items: [...], next_cursor: str | null}.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return in one page (1 to 200). | |
| cursor | No | Pagination cursor from a previous response's next_cursor; omit to start from the first page. | |
| source | No | Filter by origin: 'upload' for directly uploaded images, 'generated' for images created by the image tools; omit for all. | |
| visibility | No | Filter by access level: 'public' or 'private'; omit for both. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the readOnlyHint annotation by detailing pagination behavior and return format ('Returns {items: [...], next_cursor: str | null}'). This provides critical behavioral context that helps an agent understand how to iterate results, with no contradictions to annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at approximately 6 lines, front-loaded with the main purpose, and uses well-structured bullet points for filters and pagination. Every sentence adds value without redundancy, making it easy for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and the description's coverage of filters, pagination, and return format, the description is fully complete for this tool. It addresses all necessary aspects without relying solely on structured fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by elaborating on the source filter (e.g., explicitly mentioning 'generated' images) and explaining pagination cursor usage, which is not fully captured in the schema descriptions. This enhancement justifies a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List hosted images owned by the caller, with optional filters,' specifying a verb (list) and resource (hosted images). This distinguishes it from sibling tools like get_image (single image) and delete_image, making the purpose immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for retrieving multiple images with optional filters but does not explicitly contrast with alternatives like get_image for individual images or upload_image. The usage context is clear but lacks explicit when-not or sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_invitationsARead-onlyInspect
List invitations visible to the caller.
filter="received" returns invitations where you are the recipient.
filter="sent" returns invitations you created. filter="all" combines both.
state="pending" excludes expired and resolved rows. Cursor-paginated.
Returns {items: [...], next_cursor: str | null}.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return in one page (1 to 200). | |
| state | No | Which states to include: 'pending' only, or 'all' (includes expired and resolved invitations). | pending |
| cursor | No | Pagination cursor from a previous response's next_cursor; omit to start from the first page. | |
| filter | No | Which invitations to return: 'received' (addressed to you), 'sent' (you created), or 'all'. | received |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds transparency by explaining cursor pagination, return format, and the effect of filter and state parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: first sentence states purpose, then parameter explanations with examples, then pagination and return format. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the parameter count, schema richness, and presence of output schema, the description fully covers behavior: listing with filters, state, and cursor pagination. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant value by providing examples and clarifying parameter behavior (e.g., 'filter="received" returns invitations where you are the recipient').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List invitations visible to the caller' and elaborates on filters and pagination, distinguishing it from siblings like accept_invitation or cancel_invitation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for viewing invitations with various filters, but does not explicitly state when to use this tool versus alternatives or provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_team_membersARead-onlyInspect
List members of a team by UUID or handle. Owner appears via a synthetic row.
| Name | Required | Description | Default |
|---|---|---|---|
| team_identifier | Yes | The team to act on, identified by its UUID or handle. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, confirming safe read behavior. The description adds value beyond annotations by disclosing that the owner appears via a synthetic row, which is a non-obvious behavioral trait. No contradictions detected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two short, clear sentences. It is front-loaded with the core purpose and includes an important behavioral note without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (one parameter, read-only, with output schema), the description is complete. It covers the action, identification method, and a notable result behavior. The presence of an output schema means return values need not be detailed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100% for the single parameter team_identifier. The description mentions 'by UUID or handle', which mirrors the schema's own description. No new meaning is added beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List', the resource 'members of a team', and the identification method 'by UUID or handle'. It also adds a specific detail about the owner appearing via a synthetic row. Among siblings like add_team_member and list_teams, this tool's function is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives, such as listing teams or adding members. It lacks context about prerequisites or conditions that might warrant using this tool over others. While the purpose is clear, usage scenarios are left implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_teamsARead-onlyInspect
List teams visible to the caller (owned + member of).
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Which teams to return: 'mine' (you own), 'member' (you belong to but do not own), or 'all'. | all |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the description doesn't need to restate that. It adds value by clarifying the scope ('visible to the caller') and that teams include both owned and member teams. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the verb and resource. Every word is meaningful, with no wasted language. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity, full schema coverage, annotation support, and presence of an output schema (which documents return values), the description provides sufficient context. It covers what, scope, and behavior, meeting completeness requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the filter parameter fully described in the schema. The tool description does not add any additional parameter semantics beyond the schema, which meets the baseline. No extra context is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List teams visible to the caller (owned + member of)' clearly states the action (list) and resource (teams), and specifies the scope of visible teams. This distinguishes it from sibling tools like 'list_team_members' (which lists members of a specific team) and other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. However, the name and context (siblings) imply it's the go-to for listing teams. No usage exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesARead-onlyInspect
List public templates.
Anyone can read. filter='mine' restricts to the caller's templates. Archived templates are excluded unless include_archived is set, and even then only the caller's own archived templates are returned.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return in one page (1 to 200). | |
| cursor | No | Pagination cursor from a previous response's next_cursor; omit to start from the first page. | |
| filter | No | Which templates to return: 'mine' (you own) or 'all' public templates. | all |
| search | No | Case-insensitive substring filter over name, description, and tags. | |
| include_archived | No | When true, the caller's own archived templates are included alongside live ones. Archived templates belonging to other owners are never surfaced. Anonymous callers and non-owners always see only live templates. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true, so description adds value by specifying that archived templates are excluded unless include_archived is set, and only own archived are returned. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with main purpose. Every sentence adds value; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers key aspects: visibility, filtering, archived behavior. With complete schema, annotations, and output schema, description is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds meaningful context for filter and include_archived parameters beyond the schema. Explains behavior of 'mine' filter and archived inclusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List public templates' with a specific verb and resource. Distinguishes from sibling 'search_templates' by focusing on basic listing with filters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear contexts: 'Anyone can read', 'filter='mine' restricts to own templates', and archived behavior. Lacks explicit exclusion of when to use search_templates instead, but still guides usage well.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_verifiersARead-onlyInspect
List active (non-revoked) verifiers visible to the caller.
Returns {items: [{verifier_id, name, description, current_version, status, version_token, created_at, updated_at, role, source_workflow_id}], next_cursor: str | null}. Includes owned
verifiers plus workflow-derived grants. Platform-managed
scope=system verifiers never appear. Anonymous callers get an
empty list. Use get_verifier to read the full deploy-time config
of a specific version; any grantee who can reach the verifier can
read it.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return in one page (1 to 200). | |
| cursor | No | Pagination cursor from a previous response's next_cursor; omit to start from the first page. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, but the description adds significant behavioral details: paginated items with specific fields, exclusion of system verifiers, anonymous callers get empty list, inclusion of owned and workflow-derived grants. This provides rich context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose, but includes a code block for the return format which adds length. It is mostly efficient with two paragraphs. Could be slightly more concise, but still clear and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (listing with pagination, visibility rules, alternative tool), the description covers all necessary aspects. Output schema exists, reducing the need to describe return format in detail. The description is complete and leaves no ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both `limit` and `cursor` fully described in the schema. The description adds no extra parameter-level details beyond the schema. Baseline 3 is appropriate as the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists active (non-revoked) verifiers visible to the caller, specifies what is included and excluded (system verifiers never appear), and distinguishes itself from the sibling tool `get_verifier`. It provides a specific verb and resource with clear scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions using `get_verifier` for reading full deploy-time config of a specific version, providing an alternative. It implies usage context for listing vs detailed viewing. However, it does not explicitly state when not to use this tool or exclude other scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workflow_grantsARead-onlyInspect
List direct user and team grants on a workflow. Admin or owner only.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | Yes | The workflow to act on, identified by its UUID, slug, or name. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds behavioral context beyond annotations by specifying 'direct user and team grants' and authorization requirement. However, it doesn't clarify if grants are only explicit or include inherited ones.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with two sentences, front-loaded with action, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, description does not need to explain return values. However, it could briefly mention that it lists only direct grants, but is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already describes workflow_id fully. Description does not add new parameter info, but baseline 3 is appropriate as schema handles it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'List' and resource 'grants on a workflow', clearly distinguishing from siblings like grant_workflow or revoke_workflow_grant. The authorization note also clarifies scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions 'Admin or owner only' which provides some context on who can use it, but lacks guidance on when to use this tool over alternatives (e.g., after granting, before revocation) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workflowsARead-onlyInspect
List workflows you own or that are shared with you.
Returns {"items": [...], "next_cursor": str | null}. Page until next_cursor is null. Each item carries an "archived_at" field (ISO-8601 string for an archived workflow, null for a live one). Archived workflows are excluded unless include_archived is set, in which case your own archived workflows are included.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Restrict to workflows carrying this tag. | |
| limit | No | Maximum number of items to return in one page (1 to 200). | |
| cursor | No | Pagination cursor from a previous response's next_cursor; omit to start from the first page. | |
| filter | No | Which workflows to return: 'mine' (you own), 'shared-with-me' (granted to you), or 'all'. | all |
| search | No | Case-insensitive substring filter over name, description, and tags. | |
| include_archived | No | Include your own archived workflows in the result. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, and the description adds beyond that by explaining the return format, pagination, and archived field behavior. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences plus return format line, front-loaded with clear purpose, no wasted words. Extremely concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and annotations cover safety, the description sufficiently covers pagination, archived behavior, and return shape. Complete for a list tool, though missing explicit mention of filter parameter behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context about return format and archived_at but does not significantly elaborate on individual parameters beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List workflows you own or that are shared with you', specifying the verb 'list', resource 'workflows', and scope. This distinguishes it from sibling list tools like list_templates or search_workflows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit pagination instructions ('Page until next_cursor is null') and explains archived workflow behavior. However, it does not compare to search_workflows for when to use this tool vs searching, which would improve guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_fork_lineageARead-onlyInspect
Check whether a forked workflow's upstream template has new versions or was unpublished (returns parent_template_id, parent_template_version, upstream_latest_version, is_upstream_unpublished).
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | Yes | The workflow to act on, identified by its UUID, slug, or name. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the description adds context about the return fields but does not further elaborate on behavioral traits. Useful but not extensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with a parenthetical listing return fields. No waste, front-loaded with purpose. Highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and an output schema, the description covers purpose and return fields adequately. Minor omission: no mention of error conditions or behavior when not a fork, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'workflow_id' is well-defined in the schema. The description adds no additional meaning (schema coverage is 100%), so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks for new versions or unpublishing of a forked workflow's upstream template, and lists the returned fields. It is specific and distinguishes from siblings by its unique function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (i.e., when checking fork lineage), but does not explicitly provide guidance on when not to use or recommend alternatives. The context is clear enough for a simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mint_api_keyAInspect
Mint a new good_live_ API key. The secret is returned ONCE.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | A label to identify this API key in later listings. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite having annotations that are all false (no hints), the description explicitly warns that the secret is returned only once, a critical behavioral trait beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence that front-loads the key action and includes a critical note about the one-time return, making it efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with an output schema, the description is minimal. It covers the essential behavioral note but lacks broader context such as security implications, prerequisites, or how it fits into the overall key lifecycle.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the 'name' parameter fully (100% coverage), and the description adds no extra meaning beyond what the schema provides, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Mint') and resource ('good_live_ API key'), and distinguishes from siblings like list_api_keys and revoke_api_key by its unique creation function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to create a new API key but does not provide explicit guidance on when to use versus alternatives like revoke_api_key, nor does it mention prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
optimize_descriptionARead-onlyInspect
Tune an existing workflow's trigger: sharpen its description so it fires at the right times.
Pack-returner: response is {skill_md, references, workflow_id, max_iterations}. The agent runs the loop locally with the user to
tune the workflow's description (the text that decides when the
workflow fires) for trigger accuracy, then persists the winner via
save_workflow(source='description_optimization') only after explicit
user approval. Only the description changes; body, outcome, tags, and
sibling files carry forward unchanged. Requires edit access on the
workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | Yes | The workflow to act on, identified by its UUID, slug, or name. | |
| max_iterations | No | Optimization loop budget (1 to 1000). Defaults to 10 when omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims the tool modifies and persists changes via save_workflow, but annotations declare readOnlyHint=true, a direct contradiction. This severely undermines transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose, but the 'Pack-returner' line introduces jargon. Overall efficient with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (not shown), the description covers return format, requirements (edit access), and the optimization workflow including user approval.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the description adds useful context: max_iterations defaults to 10, workflow_id accepts UUID/slug/name, and the pack-returner response structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool tunes a workflow's trigger description to fire at the right times. It specifies that only the description changes, distinguishing it from siblings like optimize_workflow or save_workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use (to sharpen trigger accuracy) and what remains unchanged, but does not explicitly mention when not to use or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
optimize_workflowBRead-onlyInspect
Automatically improve an existing workflow: runs an optimization loop to lift it against its outcome.
Pack-returner: response is {skill_md, references, workflow_id, max_iterations}. The agent runs the optimization loop locally
with the user, drives Researcher / Editor / Runner subagents over
a locked scenario set, and persists the winner via
save_workflow(source='optimization') only after explicit user
approval. Requires edit access on the workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | Yes | The workflow to act on, identified by its UUID, slug, or name. | |
| max_iterations | No | Optimization loop budget (1 to 1000). Defaults to 20 when omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims it 'persists the winner via save_workflow' which is a write operation, but the annotation declares readOnlyHint: true. This is a direct contradiction, making the description misleading about the tool's side-effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and then provides necessary details about the process and constraints. It uses two sentences plus a technical note, which is efficient, though the 'Pack-returner' term is slightly opaque.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description is detailed about the optimization loop, subagents, and approval requirement, the contradiction with readOnlyHint undermines trust. It also lacks explanation of terms like 'locked scenario set' and does not reference the output schema explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and descriptions already explain workflow_id and max_iterations (including default and range). The description re-states these without adding meaningful new semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Automatically improve an existing workflow' with specific verb and resource. It distinguishes from siblings like 'design_workflow' (creation) and 'teach_workflow' (teaching) by focusing on optimization loop and persistence via save_workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It mentions 'requires edit access' and 'persists the winner via save_workflow only after explicit user approval', providing some context. However, it does not explicitly state when to use this tool versus alternatives like 'teach_workflow' or 'design_workflow', nor what conditions warrant avoiding it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_template_versionAInspect
Publish the latest version of your workflow as a new public template version.
First publish creates the template (slug reused from the workflow). Each call appends a monotonic version. Requires a claimed handle. Bundle a 'demo/README.md' writeup with images referenced by relative path inside 'demo/' to render a visual demo on the public template page.
Publishing makes the template's verifier definitions public: anyone who views the template (including anonymous readers) can read each verifier's criterion and calibration examples. Publishing is hard-blocked if a verifier definition contains a secret or credential, and flagged if it appears to contain private data. When the template references verifiers, the response includes a 'verifier_exposure_notice' restating this.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | Yes | The workflow to act on, identified by its UUID, slug, or name. | |
| release_notes | No | Optional notes describing what changed in this published version. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no behavioral annotations, the description fully discloses key traits: publishing makes verifier definitions public, hard-blocked on secrets, and flagged on private data. It also mentions the response notice, providing complete transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a lead sentence and line breaks for detail. Every sentence contributes useful information, though it could be slightly more concise without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity and presence of an output schema, the description covers prerequisites, side effects, constraints, and return behavior. No major gaps are identified for a publish operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with descriptions for both parameters. The tool description adds context about how workflow_id is used (the workflow becomes a template) and the purpose of release_notes, adding value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool publishes the latest workflow version as a new public template version. It uses specific verbs and resources ('publish', 'template version') and distinguishes from sibling tools like archive_template, delete_template_version, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions prerequisites ('Requires a claimed handle') and important side effects (public verifier definitions). It lacks explicit when-not-to-use or alternative tools, but the context is clear enough for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
purchase_creditsAInspect
Buy a one-time credit top-up, charging a card on file or falling back to checkout.
Charges the default payment method on file when one exists and returns the new balance. Otherwise returns a secure hosted checkout link so the purchase can complete interactively. Errors clearly when self-service billing is not enabled on this deployment, or when the requested amount falls outside the allowed range.
| Name | Required | Description | Default |
|---|---|---|---|
| amount_usd | Yes | Amount of credits to buy, in whole US dollars. | |
| idempotency_key | No | Optional caller-supplied key that makes a retried purchase request safe to resend without buying credits twice. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint false (mutation), idempotentHint false, destructiveHint false. The description adds context: charges default payment method or returns checkout link, and returns new balance. It also notes error conditions. The description aligns with annotations and provides useful behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct, using 4-5 sentences with no unnecessary fluff. It effectively front-loads the core action and then details the two possible scenarios and error conditions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, the description explains the two possible outcomes (balance or checkout link) and errors. This covers the essential context for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 2 parameters, both with descriptions (schema coverage 100%). The description does not add new information about parameters beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it buys a one-time credit top-up, distinguishing it from sibling tools like configure_auto_top_up or cancel_subscription. The verb 'buy' and resource 'credit top-up' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use (one-time purchase) and describes two paths: charging card on file or falling back to checkout link. It also mentions error conditions (self-service billing disabled, amount out of range). However, it does not explicitly state when not to use or suggest alternatives like configure_auto_top_up for recurring purchases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redeem_referral_codeAInspect
Redeem a referral code to claim your one-time new-user bonus credits.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The referral code to redeem for one-time bonus credits. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds 'one-time' constraint, which is a key behavioral trait beyond annotations. However, it does not detail error handling or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, front-loads the action and outcome. Perfectly concise for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (1 parameter, output schema exists), the description covers the main behavioral constraint ('one-time') and purpose. Minor lack of explicit prerequisites or error cases, but adequate for a simple redeem action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes the parameter 'code' as 'The referral code to redeem for one-time bonus credits.' The description does not add new semantic information beyond reinforcing the purpose, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Redeem'), the resource ('referral code'), and the outcome ('claim your one-time new-user bonus credits'). It distinguishes from sibling 'get_referral_status' which checks status rather than redeeming.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for new users with a referral code to claim bonus credits, but does not explicitly state when not to use it (e.g., if already redeemed) or mention the alternative 'get_referral_status' for checking eligibility.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_team_memberBInspect
Remove a team member by UUID, email, or handle.
| Name | Required | Description | Default |
|---|---|---|---|
| team_identifier | Yes | The team to act on, identified by its UUID or handle. | |
| user_identifier | Yes | The target user, identified by their UUID, email, or handle. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only says 'Remove' but does not elaborate on side effects (e.g., impact on shared workflows, permissions, or content). Annotations set destructiveHint to false, which might mislead about the actual effects of removal. No mention of reversibility or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the verb, no redundancy. Every word contributes to understanding the tool's core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and an output schema (not shown), the description provides the essential information. However, it omits behavioral context like idempotency (idempotentHint false) and potential failure modes, which could be important for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters have clear descriptions matching the tool's description. The description reinforces the accepted identifier formats but adds no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove'), the resource ('team member'), and the allowed identification methods (UUID, email, or handle). It distinguishes from the sibling tool 'add_team_member' by specifying removal rather than addition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like 'cancel_invitation' for pending invites or 'leave_shared_workflow'. The description does not mention prerequisites (e.g., ownership/admin status) or scenarios where removal is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_handleAInspect
Rename your already-claimed handle.
Enforces 1 rename per rolling 90 days plus 3 per UTC calendar year. Self-reclaim of your own released handle within its 90-day reservation window is free and does not consume a rename slot.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | Yes | The new handle to rename to. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide little behavioral info (all false), so the description carries the burden. It discloses important constraints like rate limits and the free reclaim exception, which are critical for the agent to understand side effects. However, it does not mention error behavior or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences that front-load the main action. Every sentence adds essential information with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, basic operation) and existence of an output schema, the description covers purpose and key constraints. It lacks details on return values or error conditions, but those are partially addressed by the output schema and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the parameter 'handle' with a clear description. The tool description adds no additional semantic detail about the parameter beyond the schema, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Rename your already-claimed handle,' providing a specific verb and resource. It distinguishes itself from sibling tools like 'claim_handle' by focusing on renaming an existing handle, not claiming a new one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions rename limits (1 per 90 days + 3 per year) and the special case of free self-reclaim within the 90-day reservation window. While it doesn't explicitly state when not to use or name alternatives, these details guide appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revoke_api_keyBIdempotentInspect
Revoke an API key you own. Idempotent.
| Name | Required | Description | Default |
|---|---|---|---|
| key_id | Yes | The API key to act on, identified by its id. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and destructiveHint=false. The description only repeats 'Idempotent' and adds 'you own' for authorization, but no additional behavioral traits beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with verb, no wasted words. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and simple action, the description covers ownership and idempotency. Could mention effect on existing tokens, but adequate for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description is clear. The tool description does not add extra meaning to the parameter beyond schema, meeting baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Revoke') and the resource ('API key you own'), distinguishing it from sibling tools like mint_api_key and list_api_keys. It is specific and not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., revoke_image_generator, delete_*). The idempotency note is useful but does not provide context on selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revoke_image_generatorAIdempotentInspect
Revoke a user-owned image generator by UUID.
Platform scope=system generators cannot be revoked (NotFound).
Sets status="revoked" and revoked_at. Revoked generators
disappear from list/get/generate for you (subsequent calls surface as
NotFound). Existing generation run rows are kept for audit. There is no
un-revoke; deploy a fresh generator under a new name to replace one.
Returns {generator_id, name, revoked: true}.
| Name | Required | Description | Default |
|---|---|---|---|
| generator_id | Yes | The image generator to act on, identified by its UUID. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and destructiveHint=false, and the description adds rich context: status change, field updates, visibility effects, audit retention, and irreversibility. This goes well beyond annotations, fully disclosing behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the purpose, and uses bullet-point style sentences that each add essential information. No redundant or excessive wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, clear output), the description covers all necessary aspects: action, conditions, side effects, irreversibility, and return format. Output schema exists but the description still sufficiently explains the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the parameter is straightforward (generator_id). The description repeats that it's a UUID but adds no new semantic meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Revoke') and resource ('user-owned image generator'), with explicit verb+resource. It distinguishes from siblings by specifying that system-scope generators cannot be revoked and by detailing the post-revocation behavior that differs from deletion tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use (user-owned generators) and when not (system generators cause NotFound). It also advises that revocation is irreversible and suggests deploying a fresh generator as an alternative, providing good guidance without explicitly comparing to delete_image_generator.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revoke_verifierAIdempotentInspect
Revoke a verifier you own (scope=user only).
verifier_id accepts UUID string or caller-owned name. Platform
scope=system verifiers cannot be revoked (NotFound).
Sets status="revoked" and revoked_at. Revoked verifiers
disappear from list/get/run for you (subsequent calls surface as NotFound).
Existing verifier_runs rows are kept for audit. There is no
un-revoke; deploy a fresh verifier under a new name to replace one.
Returns {verifier_id, name, revoked: true}.
| Name | Required | Description | Default |
|---|---|---|---|
| verifier_id | Yes | The verifier to act on, identified by its UUID or, for a verifier you own, its name. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses all relevant behavioral traits: it sets status and revoked_at, causes revoked verifiers to disappear from list/get/run, existing runs are kept for audit, and cannot be reversed. Annotations (idempotentHint=true) are consistent because once revoked, re-revoking has no further effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and concise, front-loading the primary purpose and then adding important details. A minor improvement could be combining the first two sentences, but it is already efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter, the existence of an output schema (implied by the return description), and the rich behavioral details, the description is fully complete. No further information is needed for correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a description for verifier_id. The description adds value by clarifying that it accepts UUID or caller-owned name, which is not in the schema. This aids correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (revoke a verifier you own) and distinguishes it from sibling tools like delete_verifier by explaining that revoked verifiers can be replaced but not un-revoked. The verb+resource combination is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when the tool is applicable (user-owned verifiers) and when it is not (scope=system verifiers, which cause a NotFound). It also provides clear guidance on what to do instead of un-revoking (deploy a fresh verifier).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revoke_workflow_grantBIdempotentInspect
Revoke a direct workflow grant for a user or team identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | Yes | The workflow to act on, identified by its UUID, slug, or name. | |
| grantee_email_or_at_team_handle | Yes | The grantee whose access to revoke: a user's email, or a team's @handle. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description merely restates the action; it does not disclose behavioral traits like idempotency (provided by annotation) or what happens if the grant doesn't exist. Adds no value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded verb, no redundant information. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, so return values are covered. For a simple two-parameter revoke action, the description is adequate but could briefly mention idempotency or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameter descriptions are already present. The description adds no extra meaning beyond what the schema provides, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Revoke') and the resource ('direct workflow grant'), and distinguishes from sibling tools like 'grant_workflow' and 'list_workflow_grants'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, no prerequisites mentioned (e.g., existence of a grant), and no context on when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_verifierAInspect
Run a verifier on agent output to get a pass/fail judgment with reasoning.
verifier_id resolves to an active verifier: UUID string,
accessible user-scope name (owned or one unambiguous grant), or
platform alias system:<name> for platform-managed judges (no
criterion/config leakage via list/get).
inputs keys must match the version's input_fields exactly
(no missing or extra). media_url is required for text_image
and image contracts, forbidden for text. Caller-shape errors
return a 400 with no row written; judge runtime errors persist a row
with status="error" and an error_code of runtime_error,
verifier_unavailable, or timeout.
Provenance fields (workflow_id, workflow_version,
workflow_ref, run_id) are optional and stamped onto the row.
workflow_id is access-checked: a workflow the caller cannot see
surfaces as NotFound.
Returns: {verifier_run_id, verifier_id, version, status, passed, reasoning, duration_ms, created_at} on success, plus error_code
and error_message on error. passed is null on errors. On a
successful run that you attributed to a workflow you own, the result
also carries workflow_id.
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | Yes | Field values for the verifier, keyed by the version's input field names (exact match, no missing or extra keys). | |
| run_id | No | Optional caller-supplied run identifier to correlate this run, for provenance. | |
| version | No | Pin to a specific version number; omit to use the latest version. | |
| media_url | No | Public image URL to judge; required for image and text+image verifiers, rejected for text-only ones. | |
| verifier_id | Yes | The verifier to act on, identified by its UUID or, for a verifier you own, its name. | |
| workflow_id | No | Optional id of the workflow this run is associated with, for provenance; a workflow you cannot see is rejected. | |
| workflow_ref | No | Optional free-form workflow label (slug or name) to stamp on the run, for provenance. | |
| workflow_version | No | Optional workflow version number to stamp on the run, for provenance. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses error handling behavior (400 on caller errors with no row written, runtime errors with status='error' and error codes), provenance field behavior, and access-checking for workflow_id. This adds significant value beyond the annotations, which only indicate readOnlyHint=false and destructiveHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and then systematically covers parameters, error behavior, and return format. It is well-structured and each sentence adds value. Slightly lengthy but appropriate for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, nested objects, required fields, output schema), the description is complete: it covers input resolution, error scenarios, return format, and provenance. The output schema is provided separately, so no need to detail it further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds meaning beyond the schema: explains verifier_id resolution (UUID, user-scope name, platform alias), media_url requirements based on contract type, access-checking for workflow_id, and optionality of provenance fields. Each parameter is given context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Run a verifier on agent output to get a pass/fail judgment with reasoning.' This explicitly identifies the verb (run) and resource (verifier), and distinguishes it from sibling tools like deploy_verifier, get_verifier, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (to execute a verifier) and provides constraints (e.g., inputs must match exactly, media_url requirements for different contract types). It does not explicitly compare to alternatives, but the unique purpose of running a verifier is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_workflowAInspect
Save a workflow to your private registry so you can run, share, or improve it later (name, description, body, outcome, tags).
Addressing: omit workflow_id to save in your own namespace, which
updates your own workflow of this name or creates a new one. Saving by
name never edits a workflow someone else shared with you. To edit a
workflow you own or have edit access to, pass its workflow_id (and a
matching name). If a workflow of this name is shared with you at edit
access and you save by name alone, the reference is ambiguous and the
call asks you to address it by id.
Optional source ('manual' | 'teach' | 'optimization' |
'description_optimization' | 'audit') attributes the version to a
manual save, a teach_workflow session, a workflow optimization session,
a description optimization session, or an audit_workflow session; omit
to leave NULL.
Returns workflow_id and version. Workflows are private to the caller; share via publish_template_version.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | Publish-workflow payload aligned with the Claude Code skills convention. Required top-level fields mirror a Claude Code ``SKILL.md`` frontmatter: ``name`` (kebab-case handle) and ``description`` (one-sentence summary). ``outcome`` and ``tags`` are top-level discovery facets surfaced by ``list_workflows``; everything else lives in the ``body`` and is opaque to the registry. Workflows are always private to the caller. Public sharing is the ``templates`` surface (``publish_template_version`` / ``fork_template``); there is no ``visibility`` knob on a workflow row. Unknown fields are silently dropped (``extra="ignore"``) so pre-cleanup clients that still send ``manifest`` / ``visibility`` / ``kpi`` etc. continue to publish without a 422; those fields just no longer make it into storage. For back-compat the server accepts ``slug`` as an alias for ``name`` on input only; responses always return ``name`` (and ``slug`` during the transition window). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no behavioral hints (readOnlyHint=false). The description discloses mutation behavior (create/update), namespace constraints, concurrency token usage, and silent dropping of unknown fields. It stops short of discussing rate limits or authorization requirements, but the core behaviors are well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but well-organized into clear paragraphs addressing purpose, addressing, optional fields, and return values. Every sentence adds value, but some sections (e.g., the payload block) could be slightly tightened without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the input schema (nested payload, many optional fields with specific preservation rules) and the existence of an output schema, the description covers all essential aspects: addressing modes, field behaviors, privacy, and the relationship to template sharing. No critical gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant value beyond the schema: it explains the two addressing modes, the purpose of expected_version_token as a concurrency token, and the preservation behavior of verifiers/image_generators on update. The payload overview and field aliasing (slug for name) provide context not in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Save a workflow to your private registry' and details the two addressing modes (by name vs workflow_id), distinguishing it from siblings like archive_workflow or delete_workflow. The verb 'save' and resource 'workflow' are explicitly defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to omit workflow_id (to save in your own namespace) vs when to supply it (to edit a specific workflow). It warns about ambiguity when saving by name on a shared workflow and directs sharing to publish_template_version.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_templatesARead-onlyInspect
LLM-ranked natural-language search over public or owned templates.
This does not perform lexical query prefiltering. Use list_templates with search=... for deterministic metadata filtering.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | Natural-language search request over public or owned templates. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so no mutation expected. Description adds value by specifying 'LLM-ranked' and 'natural-language search', and clarifies that it does not do lexical prefiltering. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. First sentence states purpose, second provides usage guidelines (when not to use and alternative). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a search tool with an output schema, the description is complete: it explains the search method, scope (public/owned), and limitation (no lexical prefiltering). With output schema present, no need to describe return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions (query, limit, filter). The tool description does not add additional parameter semantics beyond what schema provides, so baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'LLM-ranked natural-language search over public or owned templates.' It uses a specific verb (search) and resource (templates), and distinguishes from sibling 'list_templates' by implying semantic vs metadata search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool vs alternative: 'This does not perform lexical query prefiltering. Use list_templates with search=... for deterministic metadata filtering.' Provides clear exclusion and alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_workflowsARead-onlyInspect
LLM-ranked natural-language search over workflows visible to you.
This does not perform lexical query prefiltering. Use list_workflows with search=... for deterministic metadata filtering.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | Natural-language search request over workflows visible to the caller. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, confirming no side effects. The description adds crucial behavioral context: the search is LLM-ranked (non-deterministic) and does not prefilter lexically. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of just two sentences, front-loading the main purpose and immediately contrasting with a sibling. Every sentence is essential and adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown but indicated) and comprehensive input schema, the description covers the tool's purpose, usage guidelines, behavioral transparency, and parameter semantics sufficiently. The description is complete for an AI agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the input schema provides detailed descriptions for all parameters (tag, limit, query, filter). The description does not add extra parameter meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is an 'LLM-ranked natural-language search over workflows visible to you,' specifying the verb (search), resource (workflows), and nature (natural language, ranked). It distinguishes from list_workflows by explicitly contrasting with deterministic filtering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'This does not perform lexical query prefiltering. Use list_workflows with search=... for deterministic metadata filtering,' providing clear guidance on when to use this tool versus the sibling list_workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
teach_workflowBRead-onlyInspect
Improve an existing workflow by hand: teach it from examples and corrections you provide.
The agent follows the pack locally with the user and persists changes via save_workflow(source='teach'). Requires edit access on the workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | Yes | The workflow to act on, identified by its UUID, slug, or name. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description states the tool improves and persists changes (write operation), but annotations declare readOnlyHint: true, a direct contradiction. This misleads an AI agent about the tool's side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no fluff, front-loaded with core purpose. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the teaching mechanism vaguely ('follows the pack locally') and omits details about the teaching process, but the presence of an output schema partially compensates for missing return information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the single parameter with a clear description. The tool description adds no extra semantic value beyond what the schema already provides, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action ('Improve an existing workflow by hand: teach it from examples and corrections') and distinguishes it from siblings like 'design_workflow' (design from scratch) and 'optimize_workflow' (automated optimization).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions a prerequisite ('Requires edit access on the workflow') but does not explicitly explain when to use this tool versus teaching alternatives or automated optimization, leaving ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_team_ownershipBInspect
Transfer ownership to a user by UUID, email, or handle.
| Name | Required | Description | Default |
|---|---|---|---|
| team_identifier | Yes | The team to act on, identified by its UUID or handle. | |
| new_owner_user_identifier | Yes | The user to transfer ownership to, by UUID, email, or handle. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds that ownership is transferred, but does not disclose additional behavioral traits such as permission requirements, effect on current owner, or reversibility. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is efficient and front-loaded. It is concise but could be more structured (e.g., separating team and user identifiers). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description does not need to explain return values. However, for a mutation tool, it lacks context on side effects (e.g., current owner loses access) or required permissions. It is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description repeats that identifiers can be by UUID, email, or handle, which matches the schema. It adds no new semantic information beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (transfer ownership) and the object (a team), with specific methods (by UUID, email, or handle). It distinguishes from sibling tools like transfer_template_ownership and transfer_workflow_ownership, but doesn't explicitly mention 'team' in the description text, relying on the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like transfer_template_ownership or transfer_workflow_ownership. There is no mention of prerequisites (e.g., being an admin) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_template_ownershipAInspect
Transfer template ownership by UUID or @handle/slug. Owner only.
Team targets are rejected. Existing publishing-handle stamps on prior versions are immutable per VISION 14.
| Name | Required | Description | Default |
|---|---|---|---|
| template_id | Yes | The template to act on, identified by its UUID or @handle/slug. | |
| new_owner_user_id_or_email | Yes | The user to transfer ownership to, by UUID or email. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false but the description adds important behavioral traits: ownership requirement, rejection of team targets, and immutability of handle stamps on prior versions per VISION 14. This goes beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, using three short sentences that each add unique value. It is front-loaded with the core action and includes key constraints without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (not shown), the description covers all essential aspects: action, identification, ownership restriction, invalid targets, and a behavioral note about immutability. It is complete for a transfer operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully describes both parameters. The description restates identification methods (UUID, @handle/slug, email) but does not add new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (transfer template ownership) and identifies the resource (template). It specifies identification by UUID or @handle/slug and notes 'Owner only', which distinguishes it from sibling transfer tools like transfer_workflow_ownership and transfer_team_ownership.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states 'Owner only' and 'Team targets are rejected', providing clear context on when to use and what inputs are invalid. While it doesn't name alternatives, the sibling list implies other transfer tools exist for different cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_workflow_ownershipAInspect
Transfer workflow ownership to another user. Owner only.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | Yes | The workflow to act on, identified by its UUID, slug, or name. | |
| new_owner_user_id_or_email | Yes | The user to transfer ownership to, by UUID or email. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (no readOnlyHint or destructiveHint details), so the description carries the burden. It adds the 'Owner only' behavioral constraint but does not disclose consequences like whether the transfer is reversible, what happens to the previous owner, or any permissions needed beyond ownership.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences that immediately convey the purpose and a key constraint. Every word is meaningful and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and full parameter documentation, the description covers essential context. However, it could hint at the return value or confirmation behavior to improve completeness for an ownership transfer action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents both parameters thoroughly. The description adds no additional meaning or usage context for the parameters beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('transfer') and resource ('workflow ownership'), and includes a critical precondition ('Owner only'). It distinguishes itself from sibling tools like transfer_team_ownership and transfer_template_ownership by resource specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the prerequisite 'Owner only', which guides when the tool can be used. However, it does not provide explicit guidance on when not to use this tool versus alternatives or mention any side effects or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unarchive_templateAIdempotentInspect
Restore an archived template by UUID or @handle/slug.
Owner only. Idempotent on a live template. Cannot raise Conflict because the archived row already holds its slug slot in the full unique constraint.
| Name | Required | Description | Default |
|---|---|---|---|
| template_id | Yes | The template to act on, identified by its UUID or @handle/slug. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by explaining why no conflict can occur ('archived row already holds its slug slot'), which aligns with idempotentHint=true and destructiveHint=false. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words, front-loaded with the core purpose, and each subsequent sentence adds necessary behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, ownership, idempotency, and conflict behavior. It could mention the effect of restoration on template state (e.g., becomes active), but overall sufficient given output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers 100% of the parameter description (template_id as UUID or @handle/slug). The description repeats this without additional meaning, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Restore an archived template' which is a specific verb and resource, and distinguishes from siblings like 'archive_template' and 'delete_template' by focusing on the unarchive action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states 'Owner only' and 'Idempotent on a live template', providing context for appropriate use. It does not explicitly mention when not to use or alternatives, but the ownership constraint is key.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unarchive_workflowAIdempotentInspect
Restore a workflow you previously archived. Idempotent.
Reverses archive_workflow. Clears archived_at and re-derives verifier
grants that were removed during archiving.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | Yes | The workflow to act on, identified by its UUID, slug, or name. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses beyond annotations: clears 'archived_at' and re-derives verifier grants. Consistent with idempotentHint and destructiveHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with main purpose. Every sentence adds value; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Single parameter, idempotency and reversal behavior described. Has output schema, so return explanation unnecessary. Fully informative for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 100%, parameter description already explains identification methods. Description adds no extra param info; baseline score justified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'Restore a workflow you previously archived.' with clear verb-resource pair. Differentiates from siblings like archive_workflow and unarchive_template by specifying 'workflow'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Says 'Reverses archive_workflow' providing direct context for when to use. No explicit when-not-to-use, but idempotency is noted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unpublish_template_versionAIdempotentInspect
Soft-unpublish a single template version. Owner-only.
Existing forks pinned to this version keep working. The catalog hides the template if no live version remains.
| Name | Required | Description | Default |
|---|---|---|---|
| version | Yes | The version number to unpublish. | |
| template_id | Yes | The template to act on, identified by its UUID or @handle/slug. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes behavioral traits: 'soft-unpublish' (non-destructive mutation), existing forks pinned to this version keep working, catalog hides template if no live version remains. Consistent with annotations (idempotentHint=true, destructiveHint=false). Adds detail beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: three short sentences. Front-loaded with core purpose in first sentence, then behavioral details. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers key aspects: purpose, owner-only restriction, side effects on forks and catalog visibility. With output schema present, return value explanation is not needed. Could mention idempotency or error cases but not necessary for this simple operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already provides descriptions for both parameters (version number, template_id as UUID or handle). Description adds no additional parameter meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Soft-unpublish a single template version' with specific verb 'soft-unpublish' and resource 'template version'. Distinguishes from siblings like publish_template_version, deprecate_template_version, and delete_template_version. Also notes owner-only restriction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: behavior regarding forks and catalog hiding when no live version remains. Implies use case for removing from catalog without breaking forks. However, lacks explicit comparison to alternatives like delete_template_version or deprecate_template_version.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_imageAInspect
Update visibility, TTL, or the private view link of a hosted image.
Caller must own it.
visibility flips the access level: "public" or "private".
Omit to leave unchanged.
ttl_seconds and permanent are mutually exclusive. permanent
clears the expiry so the image lives indefinitely. ttl_seconds sets
a new expiry relative to now (positive integer). Omitting both leaves
the current expiry unchanged.
rotate_view_secret issues a fresh private view link and invalidates
every link shared earlier for this image, so use it to un-share a
private image. For a private image the returned url is the current
view link.
Returns the updated image record. Raises image_not_found (404) when
the image is absent, expired, or owned by another user.
| Name | Required | Description | Default |
|---|---|---|---|
| image_id | Yes | The hosted image to act on, identified by its UUID. | |
| permanent | No | Clear the expiry so the image lives indefinitely; mutually exclusive with ttl_seconds. | |
| visibility | No | New access level: 'public' or 'private'; omit to leave unchanged. | |
| ttl_seconds | No | New expiry in seconds from now; mutually exclusive with permanent. | |
| rotate_view_secret | No | Issue a fresh private view link and revoke every link shared earlier for this image. Use to un-share a private image. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses all behavioral traits: visibility flips access level, ttl vs permanent effects, rotate_view_secret invalidates old links, and return of updated record. No contradiction with annotations (all false).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-organized with bullet points and front-loaded purpose. Each sentence serves a purpose, though could be slightly more concise for very high score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown but indicated), the description covers usage, parameters, errors, and ownership fully, leaving no gaps for an agent to make mistakes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but description adds critical context like mutual exclusivity and the consequence of rotate_view_secret, going beyond schema descriptions. Slight deduction because the schema already covers basics well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Update visibility, TTL, or the private view link of a hosted image', identifying specific verb and resource. It clearly distinguishes from siblings like delete_image, get_image, and upload_image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear when-to-use conditions: 'Caller must own it.' and explains mutual exclusivity of ttl_seconds and permanent. Describes error scenarios (404 for absent/expired/owned by another).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upgrade_to_proAInspect
Start a Pro subscription and return a secure Stripe checkout link.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds the Stripe checkout link detail but doesn't disclose that the subscription is in pending state until payment, or that this does not immediately grant Pro access.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 12 words, front-loaded with action and result. Every word adds value. No wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with zero parameters and an output schema (existing), the description covers the core action and return value. It is adequate for a simple checkout initiation, though could mention payment flow expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in schema (100% coverage trivially). With 0 parameters, baseline is 4. Description adds no param info, which is acceptable as none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Start a Pro subscription') and the outcome ('return a secure Stripe checkout link'). It uses a specific verb and resource, and distinguishes itself from sibling tools like cancel_subscription or create_billing_portal_session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. For example, it does not mention when to use create_billing_portal_session for existing subscriptions or prerequisites like requiring a team.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_imageAInspect
Upload an image and return the hosted image record.
data must be the image bytes encoded as standard base64 (RFC 4648).
Accepted image formats are PNG, JPEG, WebP, and GIF.
visibility controls who can access the served URL: "public" makes
it accessible to anyone with the link; "private" (default) requires
the owner's credentials. Accepted values: "public", "private".
ttl_seconds sets an expiry relative to now (positive integer). Omit
to create a permanent image.
Returns: {id, token, url, visibility, expires_at, size_bytes, content_type}.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Raw image bytes encoded as standard base64 (RFC 4648). Accepted formats: PNG, JPEG, WebP, GIF. | |
| visibility | No | Who can access the served URL: 'public' for anyone with the link, or 'private' (default) for owner-only. | private |
| ttl_seconds | No | Expiry in seconds from now; omit for a permanent image. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses behavioral details beyond annotations: requires base64 encoding, accepted formats, visibility control, TTL expiry, and return fields. Annotations only indicate non-readonly, non-destructive, non-idempotent; description fills in specifics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured with bullet points for key details. Every sentence earns its place without redundancy. Efficiently communicates all necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema presence, description explains return fields (id, token, url, etc.), covers input requirements, and provides complete behavioral context. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds meaningful explanations for each parameter: data format, visibility acceptable values, TTL semantics. Adds value beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Upload an image and return the hosted image record.' Specifies verb (upload) and resource (image), differentiating it from siblings like get_image, delete_image, and update_image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides detailed usage guidance on data format, accepted image types, visibility options, and TTL. Does not explicitly mention when not to use or alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!