Skip to main content
Glama
Ownership verified

Server Details

Agentic CRM for service businesses — bookings, customers, WhatsApp, loyalty, invoicing.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
favcrm/mcp
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

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.

100% free. Your data is private.
Tool DescriptionsA

Average 4/5 across 215 of 223 tools scored. Lowest: 3.1/5.

Server CoherenceC
Disambiguation2/5

Many tools have overlapping boundaries, such as generate_post_cover/attach_post_cover_from_job/upload_post_cover_from_url, update_deal/update_deal_stage/mark_deal_won/mark_deal_lost, and booking status transitions (confirm/cancel/complete/mark_no_show). The catch-all execute_tool adds further ambiguity.

Naming Consistency4/5

Nearly all tools follow a consistent verb_noun snake_case convention (create_*, list_*, get_*, update_*, delete_*, restore_*). Minor exceptions like 'clone' and 'execute_tool' are still readable and do not significantly break the pattern.

Tool Count1/5

With 223 tools, the server is extremely over-scoped. Even for a full CRM platform, this many tools overwhelms context windows and makes tool selection impractical. It far exceeds the reasonable range for an MCP server.

Completeness3/5

The surface is broad but has notable gaps: no update_booking/delete_booking, no delete_product, no send_message/send_campaign (referenced but absent), and no delete_staff/resource. Some workflows dead-end or require manual approval steps.

Available Tools

223 tools
accept_team_invite_requestAInspect

Step 1 of agentic team invite acceptance. Validates an invite token and sends a 6-digit verification code to the invited email. Then call accept_team_invite_verify with the code to join and receive an MCP API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesInvite token returned by create_team_member_invite or from the invite link

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

With annotations already marking this as non-read-only and non-destructive, the description adds meaningful behavioral context: it validates the token and sends a 6-digit verification code, and notes it is part of a multi-step process. However, it does not cover edge cases like invalid token handling or email delivery failures, so it stops short of a 5.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with 'Step 1', and every sentence serves a purpose: defining the action and directing to the next step. There is no redundancy or unnecessary detail.

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

Completeness5/5

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

Given the tool has one parameter, a full output schema, and annotations describing side effects, the description is complete for its scope. It clearly identifies the tool's role in a workflow and the expected next call, so an agent can use it correctly without additional context.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents the token parameter. The description does not add new meaning beyond what the schema already provides, but it aligns with the described behavior, keeping the baseline score of 3.

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

Purpose5/5

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

The description clearly states it is 'Step 1 of agentic team invite acceptance' and specifies the action: validates a token and sends a code. It also distinguishes itself from the sibling accept_team_invite_verify by naming the next step, making the purpose 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.

Usage Guidelines5/5

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

The description explicitly explains when to use this tool—as the first step of accepting an invite—and instructs the agent to call accept_team_invite_verify next. This provides direct contextual guidance and an alternative/next-step reference, which is clear and actionable.

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

accept_team_invite_verifyAInspect

Step 2 of agentic team invite acceptance. Verifies the emailed code, joins the invited user to the company, and returns a one-time MCP API key for that user.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes6-digit code from the invite email
nameNoOptional display name when creating a new user
tokenYesInvite token returned by create_team_member_invite or from the invite link

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations indicate non-read-only and non-idempotent behavior; the description adds concrete side effects (joins user to company, returns a one-time key). It does not describe failure modes or code reuse consequences but adds meaningful context beyond the annotations.

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

Conciseness5/5

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

One dense, front-loaded sentence with no filler. Every phrase delivers needed context: step position, verification, side effect, and output.

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

Completeness4/5

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

With an output schema present and a fully documented 3-parameter schema, the description adequately covers the workflow step and side effects. It could mention what happens on invalid or already-used codes, but the current information is sufficient for typical invocation.

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

Parameters3/5

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

Input schema has 100% coverage with descriptions for token, code, and optional name. The description adds little parameter-level detail beyond 'emailed code,' so the schema carries the burden.

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

Purpose5/5

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

Description states specific actions: verifies the emailed code, joins the invited user to the company, and returns a one-time MCP API key. It clearly identifies the resource and process and distinguishes itself from the sibling accept_team_invite_request by labeling it 'Step 2.'

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

Usage Guidelines4/5

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

Frames tool as 'Step 2 of agentic team invite acceptance' and the schema notes the token comes from create_team_member_invite, implying a sequential workflow. It does not explicitly name alternatives or exclusions, but the step context is clear enough.

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

add_knowledge_textAInspect

Add a free-form text document to the knowledge base. Use for pasted policies, FAQs, internal notes, brand voice references — anything the agent should be able to retrieve later. Stored as a single document; agent-side embedding/retrieval happens elsewhere.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFriendly title for the document
contentYesDocument body text

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Beyond annotations (which are all false), the description adds useful context that the document is stored as a single unit and that embedding/retrieval is handled elsewhere. This helps set expectations about what the tool does and does not do. 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.

Conciseness5/5

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

The description is three concise sentences, front-loaded with the action and resource, then use cases, then a behavioral note. Every sentence earns its place with no fluff or redundancy.

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

Completeness4/5

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

For a simple 2-parameter tool with an output schema present, the description covers the purpose, typical usage, and storage/retrieval behavior. It is complete enough for an agent to select and invoke the tool correctly, though it doesn't address uniqueness of names or explicit differences from url-scraping tools.

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

Parameters3/5

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

Schema description coverage is 100% for both parameters (name and content), so the description adds little beyond what the schema already provides. The baseline of 3 applies; the tool description doesn't add meaningful parameter-level detail.

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

Purpose5/5

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

The description begins with a clear verb+resource ('Add a free-form text document to the knowledge base') and explicitly lists use cases (policies, FAQs, notes, brand voice), distinguishing it from retrieval tools like query_company_knowledge and URL-based tools like scrape_knowledge_url.

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

Usage Guidelines4/5

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

The description provides explicit context on when to use the tool ('Use for pasted policies, FAQs, internal notes, brand voice references') and clarifies that embedding/retrieval happens elsewhere, implying it is not for retrieval. However, it does not explicitly name alternative tools or list when-not-to-use scenarios.

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

append_post_blockAInspect

Append one or more blocks to the end of a post. Each block must be a valid block object: { id, version, type, data }. Types: paragraph, heading, image, list, quote, code, divider, spacer, embed, html, youtube, file, faq, callout, gallery, cta, accordion, product.

ParametersJSON Schema
NameRequiredDescriptionDefault
blocksYesBlock(s) to append
postIdYesThe post ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

Annotations already flag this as a non-read-only mutation with no destructive intent, so the bar is lower. The description adds the important requirement that each block must be a valid block object and enumerates the accepted types, which helps the agent validate inputs. It doesn't disclose behaviors like uniqueness constraints, ordering guarantees, or error handling, but it adds useful context beyond the annotations.

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

Conciseness5/5

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

Two sentences, no filler. The first sentence states the purpose, the second covers block validity and supported types. Every word earns its place.

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

Completeness4/5

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

Given the tool's complexity (19 distinct block types), the schema carries the full burden of field-level detail, and an output schema exists. The description covers the core semantics—append, valid block shape, available types—leaving nothing essential unexplained. The only gaps are optional behavioral notes (e.g., whether block IDs must be unique), but the schema is rich enough to compensate.

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

Parameters3/5

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

The input schema already provides 100% coverage, comprehensively documenting postId and blocks, including a full oneOf discriminator for every block type. The description's phrase '{ id, version, type, data }' adds only a minimal mnemonic; the schema remains the authoritative reference. The baseline 3 applies.

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

Purpose5/5

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

The description opens with 'Append one or more blocks to the end of a post,' using a specific verb and resource that clearly distinguishes it from sibling tools like replace_post_block, remove_post_block, and reorder_post_blocks. The scope is unambiguous and immediately actionable.

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

Usage Guidelines4/5

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

The description clearly frames the tool's core use case: adding blocks to an existing post. It does not explicitly contrast with alternative operations (replace, remove, reorder) or state when not to use it, but the context is clear enough for typical appending scenarios, which justifies a 4.

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

archive_surveyA
DestructiveIdempotent
Inspect

Archive a survey and remove it from active survey lists.

ParametersJSON Schema
NameRequiredDescriptionDefault
surveyIdYesSurvey ID to archive

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations already indicate destructiveHint=true and idempotentHint=true. The description adds behavioral context by specifying 'remove it from active survey lists,' clarifying that archiving is a non-destructive (or partially destructive) operation that hides the survey rather than completely erasing it. This complements the annotations 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.

Conciseness5/5

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

The description is a single sentence that is front-loaded with the verb and resource, followed by the key behavioral outcome. Every word earns its place with no redundancy or filler.

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

Completeness4/5

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

For a simple one-parameter tool with clear annotations and an output schema, the description sufficiently covers the operation's effect. It lacks details such as reversibility or what happens to survey responses, but these are not essential for agent invocation and the annotations fill the safety profile.

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

Parameters3/5

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

Schema description coverage is 100% — the only parameter, surveyId, is already described as 'Survey ID to archive.' The tool description does not add further parameter semantics, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('archive') and resource ('survey'), and adds the effect 'remove it from active survey lists,' clearly distinguishing it from other survey operations like create_survey, update_survey, and delete_survey. This is explicit and unambiguous.

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

Usage Guidelines4/5

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

The description provides clear context: archiving removes a survey from active lists, which implies its use case without explicitly naming alternatives like delete_survey. It does not explicitly exclude other tools, but the phrase 'remove it from active survey lists' conveys when this tool is appropriate (when you want to hide but not necessarily permanently delete).

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

assign_staff_to_serviceAInspect

Assign a staff member to a booking service. Pass users.id from list_staff.userId.

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesusers.id from list_staff.userId
serviceIdYesService ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a mutation. The description adds no further behavioral context (e.g., whether assignments are overwritten, required permissions). It does not contradict annotations, but it also doesn't go beyond them.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the core purpose and then provides a precise parameter hint. No wasted words.

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

Completeness4/5

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

Given the simplicity of the operation (2 params, full schema descriptions, and an output schema), the description is sufficient for an agent to decide and invoke. A minor gap is not stating whether the assignment replaces existing assignments, but this is not critical for basic usage.

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

Parameters3/5

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

Schema coverage is 100%, and both parameters already have descriptions ('users.id from list_staff.userId' and 'Service ID'). The description repeats the userId source, adding no new semantic meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the action ('Assign a staff member to a booking service') with a specific verb and resource, and adds a useful pointer on how to obtain the userId. This distinguishes it from sibling tools like list_staff or set_staff_availability.

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

Usage Guidelines4/5

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

The description gives clear context: it tells the agent to use list_staff to get the appropriate userId, implying a typical workflow. It does not explicitly mention alternatives or exclusions, but the guidance is sufficient for a simple assignment tool.

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

attach_post_cover_from_jobAInspect

Attach a previously generated ai-media job's output as the post's featuredImage. Use when generate_post_cover timed out (job kept running) or when reusing the same generation across multiple posts. Verifies the job belongs to your company and succeeded. Does NOT charge credits — credits were charged at submit time.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesThe ai-media job ID (from generate_image, generate_post_cover, or POST /v6/merchant/ai-media/generate)
postIdYesThe post ID
assetIndexNoWhich asset to use when the job produced multiple outputs. Default 0.
pollIfRunningNoWhen true, advance polling once if the job is still running. Default true.
pollTimeoutMsNoWhen pollIfRunning is true, wait up to this long for terminal state. Default 30000.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

The description adds meaningful behavioral context beyond annotations: it verifies job ownership and success, and explicitly states it does NOT charge credits because they were charged at submit time. This is useful safety/billing information not present in the annotations. Minor gap: it doesn't mention whether an existing featuredImage is overwritten, but otherwise transparent.

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

Conciseness5/5

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

Three sentences, front-loaded with the purpose in the first sentence, followed by use cases and key behavioral notes. Every sentence earns its place; no redundancy or fluff.

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

Completeness5/5

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

With an output schema present and a fully self-describing input schema, the description covers the essential context: what it does, when to use it, the verification behavior, and the credit implication. It is complete for this tool's complexity.

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

Parameters3/5

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

Schema description coverage is 100% with all parameters documented (jobId, postId, assetIndex, pollIfRunning, pollTimeoutMs). The description adds only context that the job is 'ai-media job's output' and 'featuredImage', but doesn't provide additional meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool attaches a previously generated ai-media job's output as the post's featuredImage. This specific verb+resource+field combination distinguishes it from related siblings like generate_post_cover, upload_post_cover_from_url, and attach_tags.

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

Usage Guidelines5/5

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

Explicitly states when to use: when generate_post_cover timed out (job kept running) or when reusing the same generation across multiple posts. This provides clear context and names the alternative tool, fulfilling the when/when-not guidance.

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

attach_tagsAInspect

Attach one or more tags to a member/account. Useful for segmenting members after filtering.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagIdYesTag ID to attach
accountIdsYesMember/account IDs to tag (max 100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

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

Annotations already indicate a non-read-only, non-destructive operation, so the agent knows it's a mutation. However, the description adds no behavioral context beyond that—it does not clarify whether tags are appended to existing tags or replace them, nor any idempotency nuance. For a write operation, this is a notable gap.

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

Conciseness5/5

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

The description is two short sentences with no filler. It front-loads the action and then provides a practical use case. Every word earns its place, so a 5 is appropriate.

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

Completeness4/5

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

Given the low complexity, complete schema coverage, annotations, and presence of an output schema, the description is nearly sufficient. The main missing element is explicit behavior regarding existing tags (additive vs. overwrite), but the combination of structured data and description is fairly complete. A 4 reflects this minor gap.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already describes both tagId and accountIds clearly. The description adds little beyond 'one or more tags' and 'member/account' (which is also in the schema), so the baseline score of 3 is warranted.

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

Purpose5/5

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

The description clearly states the action ('Attach one or more tags') and the resource ('member/account'), distinguishing it from sibling tools like detach_tags. The phrase 'Useful for segmenting members after filtering' adds purpose context without ambiguity.

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

Usage Guidelines4/5

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

It provides a clear usage context ('after filtering') that helps an agent know when to use it, but it does not explicitly mention alternatives or when not to use it (e.g., detach_tags for removal). This is clear context without exclusions, 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_bookingB
Destructive
Inspect

Cancel a booking. Optionally provide a reason.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoCancellation reason
bookingIdYesThe booking ID to cancel

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

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

Annotations already declare destructiveHint=true, so the destructive nature is known. However, the description adds no further behavioral context beyond the annotation, such as irreversibility, side effects on related resources, or confirmation requirements. It adds zero value beyond structured data.

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

Conciseness5/5

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

The description is two short sentences with no wasted words. It is front-loaded with the action and immediately conveys the core purpose. Every word earns its place.

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

Completeness3/5

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

The tool is simple with full schema coverage, an output schema, and clear annotations. The description is minimally adequate but lacks usage guidance and any extra behavioral context. Given the availability of structured fields, a score of 3 reflects that it is sufficient but not rich.

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

Parameters3/5

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

Schema coverage is 100% with both bookingId and reason having descriptions. The description's note 'Optionally provide a reason' merely reiterates the schema's optional flag, adding no new semantic meaning. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action: 'Cancel a booking.' This is a specific verb and resource, and it distinguishes the tool from sibling tools like confirm_booking, complete_booking, and mark_no_show. The purpose is immediately clear.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as mark_no_show or update_booking_settings. It only states what the tool does, without any context for selecting it. This is a missing opportunity for decision support.

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

cancel_subscriptionA
Destructive
Inspect

Cancel a subscription. Destructive — turns off auto-renew and prevents further billing cycles. Existing paid periods stay valid until end.

ParametersJSON Schema
NameRequiredDescriptionDefault
subscriptionIdYesSubscription ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations already flag destructiveHint=true, so the description's 'Destructive' label is redundant, but it adds valuable context: what gets destroyed (auto-renew and future billing) and what persists (existing paid periods stay valid). This goes beyond the annotations and does not contradict them.

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

Conciseness5/5

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

The description is compact: two sentences, front-loaded with the primary action, followed by key consequences. Every sentence adds value and there is no filler or restatement of the tool name.

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

Completeness4/5

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

For a simple single-parameter mutation with an output schema and annotations, the description covers the essential behavioral outcomes clearly. The only gap is the lack of explicit guidance on how this relates to pause_subscription, but overall it is sufficiently complete.

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

Parameters3/5

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

The input schema already fully documents the single parameter subscriptionId with 100% coverage. The description adds no additional parameter-level semantics, so it receives the baseline score for high schema coverage.

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

Purpose4/5

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

The description clearly states the verb and resource: 'Cancel a subscription.' It adds specific behavioral details (turns off auto-renew, prevents further billing cycles) that clarify the operation. However, it does not explicitly distinguish itself from the sibling tool pause_subscription, so it falls short of a 5.

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

Usage Guidelines3/5

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

The description implies when to use this tool by emphasizing its destructive, terminal nature ('prevents further billing cycles'), which helps differentiate from a pause. However, it does not explicitly state when not to use it or name alternatives such as pause_subscription, leaving the when-to-use guidance implicit.

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

check_plan_operationA
Read-onlyIdempotent
Inspect

Preflight whether an intended operation is allowed by token scopes, enabled modules, subscription state, and quota. Provide toolName, quotaCode, or moduleCode.

ParametersJSON Schema
NameRequiredDescriptionDefault
deltaNoPlanned usage increment. Currently quota checks are single-resource preflights.
toolNameNoMCP tool name to preflight, e.g. create_account
quotaCodeNoQuota code to check, e.g. contacts or mcp_calls_per_minute
moduleCodeNoModule code to check, e.g. whatsapp or crm

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

The description adds valuable behavioral context beyond the readonly/idempotent annotations by specifying what is checked: token scopes, enabled modules, subscription state, and quota. This clarifies the scope of the preflight without contradicting the annotations. It stops short of noting that no operation is actually executed, but 'preflight' conveys this.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the purpose ('Preflight whether an intended operation is allowed') and then lists the check dimensions and parameter options. Every word contributes meaning, with no redundant or filler content.

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

Completeness5/5

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

With an output schema present and annotations providing safety signals, the description is sufficiently complete. It covers the tool's purpose, the specific constraints checked, and how to invoke it with the relevant parameters. No significant gap remains for a preflight check tool.

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

Parameters4/5

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

The input schema already covers all four parameters with descriptions, so the baseline is 3. The description adds valuable guidance by instructing the caller to provide toolName, quotaCode, or moduleCode, which clarifies that these are the primary selection keys and implies at least one should be supplied. This improves the parameter semantics beyond the schema alone.

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

Purpose5/5

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

The description begins with the specific verb 'Preflight' and clearly identifies the resource being checked: whether an intended operation is allowed by token scopes, enabled modules, subscription state, and quota. This distinguishes it from sibling tools like execute_tool or get_plan_status by focusing on permission/eligibility checking rather than execution or plan status retrieval.

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

Usage Guidelines4/5

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

The phrase 'Preflight whether an intended operation is allowed' clearly implies use before invoking an operation, providing clear context. However, it does not explicitly name alternative tools or state when not to use it, so it falls short of the highest tier.

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

cloneAInspect

Duplicate an existing record (product, tier, campaign, post, service package, promotion, gift offer). Creates a copy in DRAFT status with "(Copy)" appended to the name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOverride the name of the cloned entity (defaults to "Original Name (Copy)")
entityIdYesID of the entity to clone
entityTypeYesType of entity to clone

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations already indicate it's a non-read-only, non-destructive, non-idempotent operation. The description adds meaningful behavior beyond that: the resulting copy is in DRAFT status and the name gets '(Copy)' appended. It does not explain all side effects (e.g., what data is copied), but the core behavior is well disclosed.

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

Conciseness5/5

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

Two sentences, front-loaded with the primary action and followed by essential detail. Every word earns its place; no filler or repetition of schema information.

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

Completeness4/5

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

Given the tool's moderate complexity (3 parameters, output schema present), the description covers the key behavior and output characteristics. It doesn't mention potential limitations or when to prefer create, but the combination of description, annotations, and schema is sufficient for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100% with clear descriptions for name, entityId, and entityType (including enum values). The description reinforces the name default ('Original Name (Copy)') but adds no new parameter-level information beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'Duplicate' with the resource 'existing record' and enumerates the specific entity types (product, tier, campaign, etc.), distinguishing it from create/update siblings. It also specifies the resulting DRAFT status and naming convention.

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

Usage Guidelines4/5

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

The description implies its use case as a copy operation, clearly distinguishing it from create_* tools that start fresh. It does not explicitly mention alternatives or exclusions, but the 'Duplicate' verb and entity list provide clear context for when to use it.

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

commit_customer_importAInspect

Commit a previewed customer import. Pass the same rows and sessionId returned by preview_customer_import. Creates/updates accounts and applies points, stamps, and credit deltas.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowsYes
sessionIdYessessionId from preview_customer_import

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations already indicate non-read-only and non-destructive, but the description adds specific mutational effects: 'Creates/updates accounts and applies points, stamps, and credit deltas.' This gives concrete behavior beyond the annotations, though it does not elaborate on idempotency or failure scenarios.

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

Conciseness5/5

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

The description is two sentences long and front-loads the core action ('Commit a previewed customer import') followed by essential usage and effect details. Every word earns its place with no redundancy.

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

Completeness4/5

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

For a complex two-phase operation, the description covers the workflow (preview → commit), the required data provenance, and the high-level effects. It does not explain output schema or error handling, but those are not strictly necessary given the structured schema and the tool's focused scope.

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

Parameters4/5

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

Schema coverage is 50% with many fields lacking descriptions. The description compensates by clarifying the critical relationship: the rows and sessionId must come from preview_customer_import. This adds semantic meaning that is not fully present in the schema, especially for the rows array.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Commit a previewed customer import' and specifies the exact side effects: 'Creates/updates accounts and applies points, stamps, and credit deltas.' It distinguishes itself from the sibling tool preview_customer_import by referencing it explicitly as the source of the data.

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

Usage Guidelines4/5

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

The description provides a clear prerequisite: 'Pass the same rows and sessionId returned by preview_customer_import.' This tells the agent when this tool is appropriate (after a preview) and what to pass. It does not explicitly list exclusions or alternative tools, but the context is strong enough.

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

complete_bookingAInspect

Mark a booking as completed. Triggers commission calculation if configured.

ParametersJSON Schema
NameRequiredDescriptionDefault
bookingIdYesThe booking ID to complete

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior5/5

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

Annotations already indicate a non-readonly mutate operation. The description adds valuable behavioral context beyond annotations: 'Triggers commission calculation if configured' and clarifies the state change to completed. This is useful for an agent deciding to invoke the tool.

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

Conciseness5/5

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

Two concise sentences, front-loaded with the primary action, followed by a relevant side effect. No wasted words.

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

Completeness5/5

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

For a simple single-parameter mutation tool with an output schema, the description fully covers the action, side effects, and required parameter context. Complete and sufficient.

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

Parameters3/5

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

Schema coverage is 100% (bookingId has a description). The description does not add extra parameter semantics, but the schema already documents the only parameter. Baseline 3 is appropriate since the description adds no incremental value beyond the schema.

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

Purpose5/5

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

The description clearly states the action ('Mark a booking as completed') with a specific verb and resource. It distinguishes from sibling tools like cancel_booking and confirm_booking by indicating the completed state.

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

Usage Guidelines4/5

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

The description implies the appropriate usage context (when a booking should be marked completed) and notes the side effect of commission calculation. It does not explicitly mention alternatives or exclusions, but the context is clear enough.

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

confirm_bookingAInspect

Confirm a pending booking.

ParametersJSON Schema
NameRequiredDescriptionDefault
bookingIdYesThe booking ID to confirm

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

The description adds minimal context beyond the annotations: it implies a state change from pending to confirmed. However, it does not disclose side effects, permissions, or reversibility. With readOnlyHint=false already indicating a write operation, the description provides only a slight additional context about the pending-state constraint.

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

Conciseness5/5

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

The description is a single, concise sentence that is front-loaded with the action. It contains no unnecessary words or information, making it highly efficient.

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

Completeness3/5

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 present), the description is adequate but lacks usage context and behavioral details. The lack of guidance on when to use confirm versus other booking operations leaves a gap in completeness.

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

Parameters3/5

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

Schema description coverage is 100% for the single bookingId parameter, so the schema fully documents the parameter. The description adds no extra semantic information about the parameter beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the action ('Confirm') and the resource ('a pending booking'), using a specific verb and object. It distinguishes from sibling tools like cancel_booking or complete_booking by specifying the 'pending' state, 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, prerequisites, or conditions. The description simply states what it does without any context on when it should be invoked.

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

convert_leadAInspect

Convert a lead account to an active customer. Optionally create a linked pipeline deal (Salesforce/HubSpot-style convert).

ParametersJSON Schema
NameRequiredDescriptionDefault
dealNameNoOptional deal name
accountIdYesLead account ID
dealStageNoOptional initial deal stage
lifeStageNoLifecycle after convert (default active)
createDealNoCreate a deal during conversion
dealAmountNoOptional deal amount
dealClosingDateNoOptional deal close date

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

The description adds behavioral context beyond annotations by explaining the conversion action and the optional linked deal creation. It does not detail side effects like whether the lead is removed, but given the annotations (readOnly=false, destructive=false) and the concise description, it provides reasonable transparency.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the core purpose and includes an optional behavior. Every word earns its place, with no redundancy.

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

Completeness4/5

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

The tool has 7 parameters and an output schema, so the description need not explain return values. The description is sufficient to understand the primary purpose and the optional deal creation, while the schema covers details. It could be slightly more explicit about the lifecycle of the original lead, but overall it is complete enough.

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

Parameters4/5

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

All 7 parameters are documented in the schema with descriptions, achieving 100% coverage. The description adds value by mentioning the 'linked pipeline deal' concept, which clarifies the relationship between the deal-related parameters and the core conversion action.

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

Purpose5/5

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

The description clearly states a specific verb and resource: 'Convert a lead account to an active customer.' It also mentions the optional creation of a linked pipeline deal, which distinguishes it from sibling tools like create_deal or update_account.

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

Usage Guidelines4/5

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

The description conveys a clear usage context: converting a lead into a customer with optional deal creation. It does not explicitly compare to alternatives or state when not to use, but the context is evident from the description and tool name.

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

create_accountAInspect

Create a CRM account/customer with a primary contact. Optionally enroll the account as a member; use enrol_membership later when the account already exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesAccount/customer display name
typeNoAccount type. Defaults to individual.
emailNoEmail address
notesNoInternal notes
phoneNoPhone number
sourceNoAcquisition source. Defaults to api.
tierIdNoMembership tier ID to enroll into. If omitted, the company default tier may apply.
addressNoPostal address
lastNameNoLast name for individual accounts
expiresAtNoOptional ISO expiry for the membership
firstNameNoFirst name for individual accounts
lifeStageNoCRM life stage. Defaults to active.
enrollMembershipNoWhether to create an active membership immediately

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations already indicate this is a write operation (readOnlyHint=false). The description adds context by noting that a primary contact is created and that membership enrollment is optional and can be deferred, which is not fully encoded in the schema. It does not disclose side effects like duplicate handling, but for a create tool this is sufficient.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the action, and contains no superfluous detail. Every word contributes to conveying the primary purpose and the key alternative. This is a model of conciseness.

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

Completeness4/5

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

Given the output schema exists and the input schema is fully described, the description is adequate. It covers the core action and the enrollment deferral. It could mention when to use `create_contact` for standalone contacts, but for a create tool with rich schema, this is a minor gap.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds value by linking contact-related parameters (name, email, phone) to the notion of a 'primary contact', and clarifies that enrollment is optional. This provides interpretive guidance beyond the standalone field descriptions.

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

Purpose5/5

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

The description clearly states the tool creates a CRM account/customer, with the specific verb 'Create' and the resource 'account/customer'. It also mentions the primary contact feature, distinguishing it from generic contact creation. This is unambiguous 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.

Usage Guidelines5/5

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

The description explicitly directs the user to use `enrol_membership` when the account already exists, providing a clear when-not to use this tool for membership enrollment. This gives an actionable alternative, satisfying the 'explicit when/when-not/alternatives' criterion.

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

create_bookingAInspect

Create a new booking for a member. Use get_available_slots first to find valid times, then create the booking with the service, member, date, and time.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoBooking notes
endTimeYesEnd time in HH:MM format
staffIdNoStaff member ID
accountIdYesThe member/account ID
serviceIdYesThe service ID
startTimeYesStart time in HH:MM format
resourceIdNoResource ID
bookingDateYesDate in YYYY-MM-DD format

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

Annotations already indicate readOnlyHint=false, so the write nature is known. The description adds the workflow context but doesn't disclose potential failure modes (e.g., what if slot is unavailable) or side effects beyond creation. This is implied but not explicit.

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

Conciseness5/5

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

Two succinct sentences: first states the purpose, second gives a clear workflow. No redundant information, effectively front-loaded.

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

Completeness4/5

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

With a comprehensive schema (8 params, 5 required) and an output schema present, the description covers the essential workflow and needed fields. It doesn't mention optional params like staffId/resourceId, but those are well-documented in the schema, so completeness is good.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are fully documented. The description paraphrases service, member, date, and time, but adds no additional 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.

Purpose5/5

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

The description clearly states 'Create a new booking for a member' with a specific verb and resource, distinguishing it from the many create_* siblings. It also references the workflow with get_available_slots, 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.

Usage Guidelines4/5

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

The description explicitly instructs to 'Use get_available_slots first to find valid times' before creating the booking, providing clear context on when to use this tool. It doesn't mention exclusions, but the prerequisite workflow is well-stated.

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

create_broadcastAInspect

Create a DRAFT WhatsApp or SMS broadcast campaign. The broadcast is NOT sent — admin must review and send it from the Broadcasts page.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCampaign name
channelNoChannel (default whatsapp)
templateIdNoMessage template ID to use
scheduledAtNoISO date to schedule the broadcast
recipientFilterNoFilter criteria for recipients, e.g. { tagIds: ["..."] }

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations only indicate readOnlyHint=false (a write operation), so the description carries the burden of disclosing behavioral traits. It explicitly states the broadcast is NOT sent and requires admin review, which is key behavioral context beyond the annotations. It doesn't mention other side effects like idempotency, but the draft nature is well disclosed.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the core purpose and then the critical caveat. Every word earns its place; there is no redundant or filler content.

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

Completeness4/5

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

Given the tool has an output schema, return values don't need explanation. The description covers the essential context: it creates a draft, not sent, admin review required. It could add a note about how scheduledAt behaves with drafts (e.g., scheduled after approval), but the current description is complete enough for most use cases.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already well-documented (e.g., channel enum, scheduledAt ISO date, recipientFilter object). The description adds only the draft-related context that affects how the created broadcast behaves, but it doesn't provide additional parameter-level details beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Create a DRAFT WhatsApp or SMS broadcast campaign.' It clearly distinguishes this from other create_* tools by emphasizing the draft status and the need for admin review, avoiding confusion with create_campaign or other send-related tools.

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

Usage Guidelines4/5

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

The description clearly implies when to use this tool: when you need to create a broadcast that won't go out immediately but requires admin approval. It doesn't explicitly name alternatives, but the context of the broadcast not being sent and the existence of validate_campaign and request_send_approval siblings gives enough context. No explicit exclusions are provided, so it falls short of a 5.

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

create_campaignAInspect

Create a marketing campaign (email, SMS, or WhatsApp) in DRAFT. For email channelConfig, use subject + htmlBody + optional plainTextBody. recipientSource="list" is accepted as an alias for "individual".

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCampaign name (internal)
statusNoDefault DRAFT
channelYesemail | sms | whatsapp | push
segmentIdNoRequired if recipientSource="segment"
scheduledAtNoISO datetime for scheduled send (status must be SCHEDULED)
recipientIdsNoRequired if recipientSource="individual", "list", or "csv"; values are account IDs
channelConfigNoChannel-specific config: subject + htmlBody for email, body for sms/whatsapp, templateId, etc. Legacy email html is normalized to htmlBody.
recipientSourceNoWhere to source recipients from. "list" is normalized to "individual".

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations are present but minimal (readOnly false, destructive false), so the description adds value by noting that campaigns are created in DRAFT by default and that recipientSource='list' is normalized to 'individual'. These are meaningful behavioral traits not disclosed by annotations.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the primary action, and contains no redundant filler. Every sentence adds either scope clarification or config guidance.

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

Completeness4/5

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

With 8 parameters, nested channelConfig, and an output schema, the description covers key behavior: supported channels, default status, and alias handling. It does not explicitly mention scheduling or segment/recipient options, but the schema documents those thoroughly, making the description adequate.

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

Parameters4/5

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

Schema covers all parameters (100%), giving a baseline of 3. The description adds specific guidance for email channelConfig ('subject + htmlBody + optional plainTextBody') and reiterates the alias behavior, which is slightly more detailed than the schema's existing description of 'normalized to individual'.

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

Purpose5/5

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

The description states 'Create a marketing campaign (email, SMS, or WhatsApp) in DRAFT.' This clearly identifies the verb ('Create'), resource ('marketing campaign'), and scope (supported channels and default status). It distinguishes the tool from siblings like create_broadcast and create_template by specifying campaign creation.

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

Usage Guidelines3/5

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

The description gives usage details for email channelConfig and clarifies the recipientSource alias, but does not explicitly state when to use this tool versus alternatives like create_broadcast or update_campaign. The usage context is implied rather than directly contrasted with sibling tools.

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

create_categoryAInspect

Create a CMS post category (e.g. "Equipment", "Injection — Botox"). For sub-categories, use namespaced names — the table is flat.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCategory name
slugNoAuto-generated from name if omitted.
sortOrderNoSort order (lower = earlier)
descriptionNoDescription

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

Annotations already declare readOnlyHint=false, so 'create' is consistent. The description adds the flat-table behavior and namespacing requirement, which is useful beyond annotations. However, it does not disclose potential duplicate handling, permissions, or confirmation behavior; output schema likely covers return details but is not visible here. With annotations present, this is adequate but not rich.

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

Conciseness5/5

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

Two sentences, front-loaded with the action and resource, and every clause adds value: the examples clarify usage, and the flat-table constraint prevents misuse. No filler or irrelevant information.

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

Completeness4/5

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

Given the simple create operation with 4 parameters, an output schema, and annotations, the description covers the essential context: what is created, examples, and a key sub-category caveat. It does not explain return values, but the output schema presumably covers that. A minor gap is lack of explicit alternative guidance, but that is handled in usage_guidelines. Overall, sufficiently complete for the tool's complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds contextual meaning for the name parameter (sub-category namespacing) and gives examples, but it does not add details for slug, sortOrder, or description beyond what the schema already provides. Thus it meets the baseline without exceeding it.

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

Purpose5/5

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

The description states a specific verb and resource: 'Create a CMS post category' with concrete examples ('Equipment', 'Injection — Botox'). This clearly distinguishes it from sibling tools like create_product_category and create_service_category by specifying 'CMS post category'.

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

Usage Guidelines4/5

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

It provides clear usage context: it is for CMS post categories, and it explicitly instructs on sub-category handling via namespaced names because 'the table is flat.' While it doesn't explicitly name alternatives or exclusions, the scope is well implied and the sub-category guidance is actionable.

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

create_contactAInspect

Create a contact on an existing CRM account.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesContact name
emailNoEmail
phoneNoPhone
jobTitleNoJob title
accountIdYesOwning account ID
isPrimaryNoMark as primary contact

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

Annotations already signal readOnlyHint=false and destructiveHint=false, indicating a non-read-only, non-destructive write operation. The description adds the constraint that the account must already exist, which is useful behavioral context. It does not elaborate on idempotency or side effects, but annotations cover the safety profile adequately.

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

Conciseness5/5

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

The description is a single sentence of nine words, concise and front-loaded with the action. It contains no redundancy or extraneous information, earning full marks for conciseness.

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

Completeness4/5

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

The tool is a straightforward create operation with six parameters, an output schema, and good annotation coverage. The description is sufficient for an agent to understand the core operation, though it does not mention the special 'isPrimary' parameter or clarify how primary contacts are handled. Given the simplicity, the description is adequately complete without needing extensive detail.

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

Parameters3/5

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

The input schema covers all six parameters with descriptions at 100% coverage. The description adds no additional parameter-level detail, so it does not improve upon the schema. Baseline 3 is appropriate given the schema already provides full semantics.

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

Purpose5/5

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

The description uses the specific verb 'Create' with the resource 'contact' and specifies the context 'on an existing CRM account,' clearly distinguishing this from sibling tools like create_account or create_deal. It implies a prerequisite (existing account) and is unambiguous.

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

Usage Guidelines3/5

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

The description states the tool creates a contact on an existing account, implying the need for an existing accountId. However, it does not provide explicit guidance on when to choose this over alternatives like create_lead or update_contact, nor does it mention any exclusions or prerequisites beyond 'existing CRM account.'

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

create_custom_fieldBInspect

Create a custom field definition for CRM entities. Use options for select or multiselect fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
optionsNoAllowed values for select/multiselect fields
fieldNameYesStable machine name, e.g. preferred_branch
fieldTypeYesField type
sortOrderNoDisplay order
entityTypeYesEntity type, e.g. account, contact, deal, booking
fieldLabelYesHuman-readable label, e.g. Preferred branch
isRequiredNoWhether this field is required

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-destructive write operation. The description adds minimal behavioral context beyond what annotations provide, only noting that options apply to select/multiselect types. It does not disclose side effects such as permanent creation, uniqueness constraints, or any conditional requirements, so the description adds limited value.

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

Conciseness5/5

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

The description is two short sentences, front-loaded with the main purpose and a helpful parameter hint. Every word earns its place, with no filler or redundancy.

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

Completeness3/5

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

The tool has 7 parameters (4 required) and an output schema, but the description doesn't mention uniqueness restrictions on fieldName, whether options are required for select/multiselect types, or what happens on duplicates. It provides the core purpose but leaves these contextual gaps that a user would need to infer or discover elsewhere.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter already described. The description's note 'Use options for select or multiselect fields' reinforces the schema's description for options but doesn't add new meaning. Since the schema already documents everything, the baseline of 3 is appropriate; the description adds little beyond the schema.

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

Purpose4/5

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

The description clearly states the verb 'Create' and the resource 'custom field definition for CRM entities', which is specific and unambiguous. It differentiates from sibling tools like update_custom_field and delete_custom_field by the verb, but doesn't explicitly name alternatives or contrast with them. The additional note about options for select/multiselect adds clarity but isn't strictly needed for purpose.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool vs alternatives (e.g., update_custom_field). It implies usage for creating a new field, but doesn't state prerequisites, exclusions, or when another tool would be more appropriate. The only hint is 'Use options for select or multiselect fields', which is more about parameter usage than tool selection.

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

create_dealAInspect

Create a CRM sales pipeline deal, optionally linked to a customer account and contact.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDeal name
stageNoPipeline stage
amountNoDeal amount
ownerIdNoOwner user/team member ID
dealTypeNoDeal type/category
accountIdNoLinked CRM account ID
contactIdNoLinked contact ID
closingDateNoExpected closing date
descriptionNoDeal notes or description
probabilityNoWin probability, e.g. 25

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

Annotations already convey that this is not read-only and not destructive; the description adds little beyond that. It mentions optional linking but does not disclose permission requirements, side effects, or default behaviors, leaving gaps in transparency.

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

Conciseness5/5

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

A single sentence that is front-loaded with the action and object, and contains no unnecessary words. It is direct and efficient.

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

Completeness3/5

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

The description is very brief for a tool with 10 parameters, although an output schema exists. It does not mention prerequisites, default stages, or constraints, so it is adequate but not fully complete for complex scenarios.

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

Parameters3/5

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

Since schema description coverage is 100%, the schema already documents all parameters clearly. The description's mention of optional linking adds slight context but does not meaningfully extend parameter semantics beyond what is already available.

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

Purpose5/5

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

The description clearly states a specific verb ('create') and resource ('CRM sales pipeline deal'), and adds optional linking to customer account and contact, which distinguishes it from siblings like update_deal and delete_deal.

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

Usage Guidelines3/5

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

The description implies use for creating a new deal but does not explicitly mention alternatives or when not to use it. Without guidance on when to prefer this over related tools, the usage context is inferred but not stated.

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

create_inbox_reply_suggestionAInspect

Create a draft reply suggestion that appears inline in the FavCRM Inbox composer. Use this for message.inbound events with replyPolicy="suggest"; it does not send anything to the customer.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesDraft reply text for the merchant to review
agentIdYesAI colleague ID creating the suggestion
subjectNoOptional email subject suggestion
metadataNoOptional metadata such as rationale, confidence, or source refs
conversationIdYesInbox conversation ID
sourceMessageIdNoInbound message ID this draft responds to

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Beyond annotations, the description discloses that the draft appears inline in the composer and that no customer communication occurs. Annotations already cover read-only/destructive hints, so the added context of non-sending is valuable but 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.

Conciseness5/5

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

Two concise, front-loaded sentences. Every clause earns its place: the action, the location, the trigger condition, and the critical exclusion of sending.

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

Completeness5/5

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

Given the presence of a complete schema and output schema, the description sufficiently covers purpose, trigger, and key behavioral boundary. No critical context is missing for an 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.

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add extra parameter-level meaning beyond what the schema already provides, but the schema fully documents each field.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Create a draft reply suggestion that appears inline in the FavCRM Inbox composer.' It clearly distinguishes from sibling tools by noting it does not send anything to the customer.

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

Usage Guidelines5/5

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

Explicitly states when to use: 'Use this for message.inbound events with replyPolicy="suggest"'. Also provides a clear exclusion—'it does not send anything to the customer'—which guides the agent away from using it for sending.

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

create_invoiceAInspect

Create a new invoice for a customer. Optionally include line items inline. Returns the new invoiceId.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoFree-form notes shown on the invoice
dueDateNoDue date (ISO 8601 date)
currencyNoISO currency code (defaults to company default)
accountIdYesCustomer accountId (CRM account)
lineItemsNoLine items to bill — totals are computed server-side

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

Annotations already indicate this is a non-read-only, non-idempotent operation. The description adds that it returns the new invoiceId and that line items are optional, which is useful. It does not detail side effects or error conditions, but for a create operation the behavior is largely captured.

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

Conciseness5/5

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

The description is two sentences, immediately states the primary action, and includes the return value. No fluff or redundancy.

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

Completeness4/5

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

The description, combined with the complete schema and annotations, covers the essential aspects for a create invoice tool. It mentions the key return value and optional line items. It lacks some nuance (e.g., server-side total calculation is only in schema), but overall it is adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already well documented. The description adds minimal param semantics ('Optionally include line items inline'), which reinforces the schema. It does not go beyond the schema in explaining formats or defaults.

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

Purpose5/5

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

The description clearly states 'Create a new invoice for a customer' with a specific verb and resource. It distinguishes from sibling invoice tools (e.g., get_invoice, void_invoice) by explicitly naming the creation action and mentioning returning the invoiceId.

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

Usage Guidelines4/5

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

The description provides clear context on what the tool does and notes that line items are optional ('Optionally include line items inline'). However, it does not explicitly exclude alternative tools, but there are no other tools that create invoices, so the usage is unambiguous.

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

create_noteAInspect

Add a note to a member/account, booking, ticket, or invoice.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesNote content
entityIdYesThe entity ID
isPinnedNoPin this note to the top
entityTypeYesType of entity

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

Annotations already indicate this is a write operation (readOnlyHint=false) and not destructive. The description adds the target entity types but does not disclose any additional behavioral traits such as whether the note is appended, returns an ID, or triggers side effects. It matches the annotations, so no contradiction, but adds minimal behavioral insight.

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

Conciseness5/5

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

The description is a single concise sentence, front-loaded with the verb, and contains no filler words. It efficiently communicates the action and target entities.

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

Completeness3/5

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

Given the simple nature of the tool, the description is nearly complete, but the 'member/account' vs. 'account' mismatch is a clear gap. It does not provide usage context or highlight the isPinned option, though the schema covers parameter details. The output schema exists, so return values are not needed.

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

Parameters2/5

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

The schema covers 100% of parameters, so the baseline is 3. However, the description introduces 'member/account' while the entityType enum only includes 'account', 'booking', 'ticket', and 'invoice'. This discrepancy could mislead an agent into using an invalid entityType 'member'. The description adds no value beyond the schema and actually introduces confusion.

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

Purpose5/5

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

The description uses a specific verb 'Add' and identifies the resource ('a note') and the target entities (member/account, booking, ticket, or invoice). This clearly distinguishes it from sibling tools like create_post or create_task, which have different purposes. The scope is immediately understandable.

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

Usage Guidelines3/5

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

The description implies when to use the tool: whenever a note needs to be added to one of the listed entity types. However, there is no explicit when-to-use/not-to-use guidance or mention of alternatives, which would be helpful for less obvious cases. The lack of exclusions or context beyond the target list leaves some ambiguity.

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

create_offer_ruleAInspect

Create an upsell/cross-sell offer rule as draft. Specify trigger type, conditions, and suggested products with optional discounts.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRule name
typeYesRule type: upsell, cross_sell, bundle, or post_purchase
productsNoProducts to suggest with optional discounts
descriptionNoRule description
triggerTypeYesWhen the offer triggers
triggerConfigNoTrigger-specific configuration

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations indicate this is a write operation (readOnlyHint false), and the description adds the crucial context that the rule is created as a draft, implying it won't be active immediately. This goes beyond the annotations by disclosing the draft state, though it doesn't mention permissions or a publish step.

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

Conciseness5/5

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

The description is two sentences, front-loading the primary action and key details. Every word adds value: it names the resource, the draft state, and the main configurable aspects. No fluff or redundancy.

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

Completeness4/5

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

The tool has 6 parameters, nested objects, and enums, but the schema is comprehensive (100% coverage) and an output schema exists. The description covers the main aspects (trigger type, products, discounts) and relevant context ('as draft'), though it doesn't explicitly mention the 'description' parameter or the triggerConfig structure. Overall sufficient given the schema richness.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter is already documented in the input schema. The description provides only a high-level summary (trigger type, conditions, products with discounts) that maps loosely to triggerConfig and products, without adding new semantic detail beyond what the schema already offers.

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

Purpose5/5

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

The description clearly states the verb ('Create'), the resource ('offer rule'), and a key detail ('as draft'), which distinguishes it from related tools like list_offer_rules and get_offer_rule. It also specifies the domain (upsell/cross-sell), making it unambiguous.

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

Usage Guidelines3/5

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

The description implies when to use this tool (when creating a draft offer rule) but does not explicitly state alternatives or exclusion criteria. The sibling tools include list_offer_rules and get_offer_rule, but no direct guidance is provided for choosing between create and other operations.

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

create_outletAInspect

Create a shop outlet/location. Optionally pass id to preserve a legacy UUID during migration.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoOptional outlet UUID (for legacy migration; non-standard formats accepted)
nameYesOutlet name
phoneNoContact phone
addressNoStreet address
logoUrlNoLogo URL
isActiveNoWhether outlet is active (default true)
latitudeNoLatitude
longitudeNoLongitude
sortOrderNoDisplay sort order (default 0)
acceptsOrdersNoWhether outlet accepts online orders (default true)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

Annotations readOnlyHint=false properly align with 'Create' as a write operation, with no contradiction. The description adds useful context about preserving a legacy UUID during migration, but does not disclose other behavioral aspects like duplicate handling or error cases. Since idempotentHint=false and an output schema exist, the description need not cover everything.

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

Conciseness5/5

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

Two short sentences, with the primary action front-loaded and the optional id behavior clarified in the second. Every word contributes, with no fluff or repetition.

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

Completeness4/5

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

Given the full input schema, output schema, and annotations, the description is complete enough for an agent to select and invoke the tool. The migration note covers the one non-obvious option, while the structured metadata handles parameter details and return values.

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

Parameters3/5

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

The input schema has 100% coverage with descriptions for all 10 parameters, so the description carries little burden here. The note about preserving a legacy UUID adds some meaning for the id parameter, but the schema already mentions legacy migration and non-standard formats, so added value is minimal.

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

Purpose5/5

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

Description opens with 'Create a shop outlet/location', using a specific verb and resource. This clearly distinguishes it from sibling tools like update_outlet and list_outlets, as well as other create_* tools.

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

Usage Guidelines4/5

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

It explicitly states when to pass the optional id: 'during migration' to preserve a legacy UUID. This gives clear context, though it does not mention alternatives or exclusions. Given there is no close sibling, this is sufficient guidance.

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

create_postAInspect

Create a new CMS post (blog_post, page, or any custom post type). The post type must already exist — use list_post_types to discover, create_post_type to add a new one. excerpt = plain-text summary only (auto-derived from blocks if omitted). Structured custom fields go in meta, keyed by the field schema defined with create_post_type_field.

ParametersJSON Schema
NameRequiredDescriptionDefault
metaNoStructured custom field values, keyed by field key (see list_post_type_fields). Validated against the post type field schema. Use this for all machine-readable data — never put JSON in excerpt.
slugNoURL slug. Auto-generated from title if omitted; collisions get -2, -3 suffix.
typeYesPost type slug (e.g. blog_post, page, treatment). Must exist in post_types for this company.
titleYesPost title
blocksNoOrdered array of content blocks. Each block has { id, version, type, data } where type is one of: paragraph, heading, image, list, quote, code, divider, spacer, embed, html, youtube, file, faq, callout, gallery, cta, accordion, product, columns. Unknown types are rejected.
statusNoStatus (default draft)
tagIdsNoTag IDs to attach to the post
excerptNoPlain-text summary only — never JSON. Auto-derived from the first paragraph/heading block if omitted and the post type supports excerpts.
parentIdNoParent post ID for nested types (e.g. pages).
seoTitleNoSEO title override
sortOrderNoSort order (lower = earlier)
visibilityNoVisibility (default public)
categoryIdsNoCategory IDs (post types with supportsCategories only)
publishedAtNoISO timestamp; required when status=scheduled.
featuredImageNoCover image URL
seoDescriptionNoSEO meta description

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations already mark this as a write operation (readOnlyHint=false). The description adds valuable behavioral context: excerpt is plain-text-only and auto-derived if omitted, and structured fields must go in meta rather than excerpt — details not present in annotations. It doesn't cover return behavior, but an output schema exists to handle that.

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

Conciseness5/5

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

Three sentences that lead with the core purpose, then add two crucial caveats. No wasted words, no repetition of schema field descriptions. The structure is front-loaded and focused.

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

Completeness5/5

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

For a tool with 16 parameters and a complex nested block schema, the description correctly highlights the key preconditions and pitfalls without drowning in detail. It references sibling tools needed for setup, and the output schema handles return values, so the description is complete for invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all 16 parameters. The description reinforces a couple of key constraints (excerpt plain-text, meta for structured fields) that are already in the schema, but adds no new semantic meaning beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description opens with 'Create a new CMS post (blog_post, page, or any custom post type),' clearly stating the action and resource. It differentiates from sibling tools like update_post, delete_post, and list_posts by focusing on creation, and references related setup tools to avoid confusion.

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

Usage Guidelines5/5

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

Explicitly states the prerequisite that the post type must already exist, and names list_post_types and create_post_type as the tools to discover or add post types. It also directs custom field schema definition to create_post_type_field, giving clear when-to-use and alternative guidance.

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

create_post_typeAInspect

Define a new custom post type (e.g. "treatment", "service"). Required before creating posts of that type. After creating a post type, use create_post_type_field to define its structured field schema. Those fields are stored in meta on each post — do not use excerpt for structured data.

ParametersJSON Schema
NameRequiredDescriptionDefault
iconNoIcon name or URL
slugYesLowercase identifier, e.g. "treatment". Auto-derived from label if omitted.
labelYesSingular UI label, e.g. "Treatment"
sortOrderNoSort order (lower = earlier)
labelPluralYesPlural UI label, e.g. "Treatments"
supportsBlocksNoDefault true
supportsExcerptNoDefault true
supportsNestingNoDefault false
supportsCategoriesNoDefault true
supportsFeaturedImageNoDefault true

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

The description adds useful behavioral context beyond annotations: it explains that fields are stored in meta on each post and advises against using excerpt for structured data. While it doesn't detail return values or side effects of creation, the annotations already indicate this is a non-readonly, non-destructive write operation.

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

Conciseness5/5

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

Three sentences, front-loaded with the core purpose, then essential workflow guidance and a caveat. Every sentence adds value and there is no repetition of schema or annotation information.

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

Completeness5/5

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

The description provides the complete context needed: what the tool does, when to use it, how it relates to other tools, and a key data-storage implication. The output schema exists to explain return values, so no further detail is required. This is fully sufficient for an 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.

Parameters3/5

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

The input schema already covers all 10 parameters with detailed descriptions and defaults, so the description doesn't need to add parameter-specific semantics. It provides only broad examples ('slug', 'label'), and the schema carries the full burden for parameter understanding.

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

Purpose5/5

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

The description states the specific action ('Define a new custom post type') with concrete examples ('treatment', 'service'), and clearly distinguishes this tool from siblings like create_post and create_post_type_field. It names the resource and what the tool does unambiguously.

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

Usage Guidelines5/5

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

Explicitly explains when this tool must be used ('Required before creating posts of that type') and directs the agent to the next step ('use create_post_type_field to define its structured field schema'). It also warns against using excerpt for structured data, providing clear guidance on proper usage.

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

create_post_type_fieldAInspect

Add a custom field to a post type schema. The field key becomes the key in meta when creating/updating posts. Use fieldType="repeater" with fields=[...] for repeatable structured rows. Use this instead of storing structured data in excerpt.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNosnake_case key used in meta. Auto-derived from label if omitted.
labelYesHuman-readable field label, e.g. "Tagline"
fieldsNoRequired for fieldType="repeater". Defines the child fields stored in each row object.
optionsNoFor select/multiselect: { choices: [{ label, value }] }. For URL fields that should accept merchant uploads, use { uploadable: true } so the UI stores the uploaded file URL instead of asking the merchant to paste a raw URL.
helpTextNoOptional hint shown in the UI
requiredNoWhether the field is required on post creation (default false)
fieldTypeYesField type: text | textarea | richtext | number | boolean | date | datetime | select | multiselect | url | email | image | file | gallery | attachments | repeater
sortOrderNoSort order (lower = earlier)
postTypeIdYesPost type ID (from list_post_types)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations indicate this is a write operation (readOnlyHint=false) but not destructive. The description adds beyond annotations by disclosing that 'The field key becomes the key in meta when creating/updating posts' and providing special repeater behavior. This gives an agent useful behavioral context about side effects and the role of the key parameter, which annotations alone don't provide.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose, and every sentence adds value: the first states the action, the second clarifies the key/meta relationship and gives usage guidance for repeaters. No wasted words.

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

Completeness4/5

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

The tool is complex with 9 parameters and nested objects, but the description captures the essential usage context (repeater fields, meta key, avoiding excerpt storage). The rich input schema and output schema carry the detailed field options and return format. The description is sufficient for an agent to decide when and how to invoke it, though it could briefly mention that it's for post type fields specifically (already clear from the name) or provide a general tip about field types.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds a small amount of parameter context by explaining the repeater usage ('fieldType="repeater" with fields=[...]') and the meta-key behavior, but the schema already describes these parameters in detail (e.g., the 'fields' parameter description is extensive). The description doesn't compensate for any parameter ambiguity beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the tool's function: 'Add a custom field to a post type schema.' This is a specific verb+resource that distinguishes it from sibling tools like create_post_type (which creates the post type itself) and update_post_type_field (which modifies an existing field). It also includes the concrete consequence that the field key becomes the meta key, adding further clarity.

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

Usage Guidelines4/5

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

The description provides explicit usage context by saying 'Use fieldType="repeater" with fields=[...] for repeatable structured rows' and 'Use this instead of storing structured data in excerpt.' This gives a clear alternative and a specific scenario, though it doesn't enumerate all cases when not to use the tool or name sibling tools explicitly.

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

create_productAInspect

Create a new shop product as DRAFT. Merchant can review and activate from the portal.

ParametersJSON Schema
NameRequiredDescriptionDefault
skuNoSKU code
nameYesProduct name
priceYesPrice as decimal string (e.g. "29.99")
categoryIdsNoCategory IDs (first is primary)
descriptionNoProduct description
memberPriceNoMembers-only price
productTypeNoProduct type (default one_time)
discountPriceNoDiscounted price

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

The annotations already indicate this is not a read-only or destructive operation. The description adds valuable behavioral context beyond the annotations: the product is created in DRAFT state and requires merchant activation. This discloses that the product will not be immediately active/advertised, which is critical for agent understanding.

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

Conciseness5/5

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

The description is a single, compact sentence of 14 words that states the core purpose and the key behavioral nuance (DRAFT + merchant activation). It is front-loaded with the action 'Create' and contains zero redundant or filler content. Every word contributes valuable information.

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

Completeness4/5

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

Given that an output schema exists (so return value details are not required in the description), the tool is a create operation with full schema documentation and safety annotations. The description covers the essential purpose and the draft/activation workflow. It is sufficiently complete, though it could optionally mention prerequisites (e.g., existence of categories) but such details are handled by the schema's optional fields.

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

Parameters3/5

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

Schema description coverage is 100%, with all 8 parameters documented in the input schema (e.g., price as decimal string, productType enum). The description itself does not add any parameter-level meaning, leaving the schema to fully describe each field. Thus the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses the specific verb 'Create' and clearly states the resource is 'a new shop product' with the important qualifier 'as DRAFT'. This distinguishes it from sibling tools like list_products, update_product, and create_product_category. It precisely conveys both the action and the resulting state.

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

Usage Guidelines4/5

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

The description gives clear context by stating the product is created as DRAFT and that the merchant reviews and activates it from the portal. This implies when to use this tool (initial creation) versus other tools like update_product for modifications. However, it does not explicitly name alternatives or specify when not to use it, so it lacks explicit exclusion guidance.

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

create_product_categoryAInspect

Create a product category. Use parentId to create subcategories under an existing category.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCategory name
parentIdNoParent category ID for subcategories
sortOrderNoDisplay sort order
descriptionNoCategory description
onlineEnabledNoShow in online store (default true)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

Annotations already indicate a write operation (readOnlyHint=false). The description adds useful context about creating subcategories via parentId, which is not in annotations. However, it does not disclose permissions, idempotency, or failure behavior.

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

Conciseness5/5

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

Two concise, front-loaded sentences with no superfluous content. The primary action and key subcategory behavior are stated efficiently.

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

Completeness5/5

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

Given the simple create operation, full input schema, and presence of an output schema, the description is sufficient. It covers the purpose and the one non-obvious usage (subcategories), while the schema handles parameter details.

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

Parameters3/5

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

Schema coverage is 100% with all parameters already described. The description only reiterates parentId's role without adding format, constraints, or behavior beyond the schema.

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

Purpose4/5

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

The description clearly identifies the action (create) and resource (product category), and it adds a key distinguishing behavior (using parentId for subcategories). However, it does not explicitly differentiate from sibling tools like create_category or list_product_categories.

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

Usage Guidelines3/5

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

It provides a clear usage instruction for parentId to create subcategories, implying the tool's context. But it does not state when to prefer this tool over alternatives or when not to use it, especially given overlapping siblings like create_category.

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

create_promotionAInspect

Create a promotion / discount code. type=percentage or fixed_amount; value is the discount as a string ("10" = 10% or 10 currency units). Codes are uppercased server-side.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesCoupon code customers enter at checkout (auto-uppercased)
nameYesPromotion name (internal)
typeNoDefault percentage
valueYesDiscount value as decimal string
endsAtNoISO datetime — when the promo expires
statusNoDefault active
startsAtNoISO datetime — when the promo becomes valid
posEnabledNoAllow at POS
descriptionNoDescription
eventEnabledNoAllow on event registrations
minimumAmountNoMinimum order amount required, decimal string
onlineEnabledNoAllow on online shop orders
bookingEnabledNoAllow on bookings
maximumDiscountNoCap on percentage discounts, decimal string
minimumQuantityNoMinimum item count required
usageLimitTotalNoMax total uses across all customers
usageLimitPerCustomerNoMax uses per single customer

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations indicate it's a non-read, non-destructive, non-idempotent operation, so the bar for extra disclosure is lower. The description adds valuable behavioral details: codes are uppercased server-side and the value is a string interpreted differently for percentage vs fixed_amount. These are non-obvious, useful behaviors 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.

Conciseness5/5

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

The description is two sentences: the first states the purpose, the second provides key parameter and server-side behavior. Every word earns its place, and the most important information is front-loaded. It is appropriately sized for a tool with rich schema coverage.

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

Completeness4/5

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

With 17 parameters and an output schema, the description doesn't need to enumerate every field. It covers the critical cross-parameter semantics (type/value) and server-side uppercase behavior, which are not apparent from the schema or annotations. Optional fields like posEnabled are already self-descriptive in the schema, making the description sufficiently complete for invocation.

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

Parameters4/5

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

Input schema already covers all 17 parameters with descriptions (100% coverage), so the baseline is 3. The description adds semantic meaning for type and value, clarifying the relationship between them and explaining the string-based value format ('10' = 10% or 10 currency units). This reduces ambiguity that the schema alone leaves unresolved.

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

Purpose5/5

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

The description opens with 'Create a promotion / discount code,' which uses a specific verb and resource. It clearly distinguishes from related tools like update_promotion, list_promotions, and delete_promotion by focusing on creation. The purpose is unambiguous and actionable.

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

Usage Guidelines4/5

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

The description provides clear context: this tool is for creating promotions and discount codes. It doesn't explicitly mention when not to use it or point to alternatives, but the context is sufficiently clear for an agent to infer when to invoke it. No exclusions are given, which aligns with a score of 4.

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

create_resourceAInspect

Create a bookable resource (room, equipment, vehicle). Used by services that have requiresResource=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesResource name (e.g. "Treatment Room A")
typeYesFree-form type label, e.g. "room", "equipment"
statusNoDefault active
capacityNoHow many concurrent bookings (default 1)
descriptionNoDescription

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

Annotations already convey that this is a mutating operation (readOnlyHint=false, destructiveHint=false). The description adds useful context about it being 'bookable' and the requiresResource linkage, but does not disclose additional behavioral details like uniqueness constraints 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.

Conciseness5/5

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

Two concise sentences, each earning its place. The first states core purpose, the second provides usage context. No wasted words or redundant information.

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

Completeness5/5

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

For a straightforward create operation with a fully documented schema, output schema, and annotations, the description is sufficient. It clearly explains what the resource is and when to use it, with no critical gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents every parameter. The description adds no parameter-specific meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

Description uses specific verb 'Create' with clear object 'bookable resource' and gives examples (room, equipment, vehicle), distinguishing it from sibling tools like create_service or create_booking. The purpose is unmistakable.

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

Usage Guidelines4/5

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

The description provides clear context: 'Used by services that have requiresResource=true.' This tells the agent when to use the tool, though it does not explicitly mention alternatives or exclusions.

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

create_segmentAInspect

Create a new customer segment. Use STATIC for manual member lists, DYNAMIC for criteria-based auto-filtering.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSegment name
criteriaNoDynamic segment criteria
descriptionNoSegment description
segmentTypeNoSegment type (default DYNAMIC)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

Annotations already indicate this is a mutation (readOnlyHint false), and the description adds the static/dynamic distinction. It doesn't disclose downstream requirements like populating static segment members via set_segment_members, but the description adds moderate 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.

Conciseness5/5

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

Two concise sentences. The first states the action, the second explains the key type decision. No wasted words or filler content.

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

Completeness4/5

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

The output schema exists and annotations clarify it's a write operation. The description is minimal but the schema covers the complex criteria structure. It could mention that STATIC segments require later member assignment via set_segment_members, but this is not a critical omission for basic usage.

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

Parameters4/5

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

Schema coverage is 100%, so parameters are well-documented. The description adds meaning to segmentType by explaining that STATIC is for manual member lists and DYNAMIC is for criteria-based auto-filtering, which goes beyond the schema's simple enum label.

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

Purpose5/5

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

The description clearly states 'Create a new customer segment' with a specific verb and resource. It also distinguishes the two segment types (STATIC vs DYNAMIC), which helps differentiate it from sibling segment-related tools like set_segment_members or preview_segment_count.

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

Usage Guidelines4/5

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

It provides clear context on when to use STATIC vs DYNAMIC segment types, which is useful for parameter selection. However, it does not explicitly contrast with alternatives like update_segment or set_segment_members, though the tool name and siblings make this somewhat implicit.

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

create_serviceAInspect

Create a bookable service. Sets duration, price, capacity, and policies. Use list_service_categories first if you want to attach to an existing category.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesService name
typeNoDefault one_on_one
priceNoDecimal string, e.g. "80.00". Defaults to "0".
statusNoDefault active
capacityNoHow many participants per slot (default 1)
currencyNoISO currency code, default HKD
sortOrderNoSort order (lower = earlier)
categoryIdNoExisting service category ID
visibilityNoVisibility: public | members_only | hidden
descriptionNoDescription
requireLoginNoDefault true — guests cannot book
requiresStaffNoWhether the service requires staff assignment
allowedTierIdsNoRequired when visibility=members_only
commissionTypeNoCommission type: "fixed" or "percentage"
commissionValueNoCommission amount as decimal string
cooldownMinutesNoMinimum gap before bookings can be cancelled (default 0)
durationMinutesYesDuration of one booking in minutes
requiresResourceNoWhether the service requires a resource (room/equipment)
commissionCurrencyNoCommission currency (ISO code)
requiresConfirmationNoIf true, bookings start as pending and need confirm_booking

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

Annotations already indicate readOnlyHint=false, so it's a write operation. The description adds that it sets duration, price, capacity, and policies, giving some sense of what side effects occur. However, it doesn't describe any validation, immediate persistence, or permissions, though with annotations present, the bar is lower. This is average transparency.

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

Conciseness5/5

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

Two sentences, front-loaded with the action, and each sentence earns its place. The first states the purpose, the second gives a useful prerequisite tip. No fluff or repetition of schema details.

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

Completeness4/5

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

Given the tool's complexity (20 params, output schema exists), the description is minimal but sufficient for selection. The schema fully documents parameters, and the description adds a prerequisite hint. It doesn't explain all possible relationships (e.g., allowedTierIds dependency) but those are in the schema, so the context is adequately complete for an agent to invoke correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description groups parameters into 'duration, price, capacity, and policies' but doesn't add specific meaning beyond what each schema property already describes. It provides a high-level summary but no extra semantics.

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

Purpose5/5

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

The description clearly states the tool's primary action: 'Create a bookable service.' It specifies key attributes it sets (duration, price, capacity, policies) and distinguishes it from related sibling tools like create_service_category or create_service_schedule by focusing on the service entity itself.

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

Usage Guidelines4/5

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

Provides explicit prerequisite usage: 'Use list_service_categories first if you want to attach to an existing category.' This gives clear context for when to call another tool. It doesn't discuss exclusions or alternative tools, but the prerequisite is valuable and the overall context is clear.

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

create_service_categoryAInspect

Create a service category (e.g. "Treatments", "Classes") to group bookable services.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCategory name
sortOrderNoSort order (lower = earlier)
descriptionNoDescription

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the safety profile is clear. The description adds the purpose of grouping bookable services but does not disclose additional behavior such as duplicate handling or effects on existing services. This is acceptable but not rich.

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

Conciseness5/5

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

The description is a single, well-structured sentence that is front-loaded with the action, includes a clarifying example, and contains no wasted words.

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

Completeness4/5

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

For a simple create tool with an output schema and full parameter descriptions, the description is nearly complete. It provides purpose and examples, though a brief note on when not to use it (e.g., for non-service categories) would fully round it out.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter (name, sortOrder, description) already documented. The description does not add parameter-specific meaning beyond the examples in the purpose, so it meets the baseline without exceeding it.

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

Purpose5/5

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

The description uses the specific verb 'Create' with the resource 'service category' and provides a clear purpose ('to group bookable services') with concrete examples. This distinguishes it from sibling tools like create_category and create_product_category.

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

Usage Guidelines4/5

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

The description clearly implies when to use this tool: when creating a category to group bookable services. However, it does not explicitly mention alternatives or exclusions, though the context is distinctive enough to guide selection.

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

create_service_packageAInspect

Create a service package/prepaid session bundle. Use applicableType=SELECTED with applicableItems to limit the package to specific booking services or events.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPackage name
priceYesPackage price
statusNoDefault ACTIVE
validDaysYesValidity window after purchase, in days
descriptionNoDescription
sessionCountYesNumber of included sessions
applicableTypeNoDefault ALL
applicableItemsNoItems used when applicableType=SELECTED

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

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

Annotations only indicate readOnlyHint=false and destructiveHint=false, so the description must handle behavioral context. It does not mention permissions, whether the package becomes immediately active, or any side effects. The only added info is about parameter usage, not about the tool's behavior or consequences.

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

Conciseness5/5

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

Two sentences, no fluff. The first sentence defines the action and resource, the second delivers an essential usage nuance. It is front-loaded and efficient.

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

Completeness4/5

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

With 8 parameters and an output schema, the description defines the resource and covers the key conditional logic (applicableType/applicableItems). However, it does not mention preconditions, required permissions, or what happens after creation. Given the schema's richness and the presence of an output schema, it is reasonably complete but not exhaustive.

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

Parameters4/5

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

Schema coverage is 100%, giving a baseline of 3. The description adds meaningful semantics by explaining the relationship between applicableType and applicableItems: using SELECTED with specific items limits the package. This clarifies a parameter dependency that the schema only tersely states, going beyond the field descriptions.

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

Purpose5/5

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

The description states 'Create a service package/prepaid session bundle' with a specific verb and resource, clearly distinguishing it from sibling create_* tools like create_service or create_product. The phrase 'limit the package to specific booking services or events' further clarifies the purpose.

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

Usage Guidelines4/5

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

The description gives a practical usage hint: 'Use applicableType=SELECTED with applicableItems to limit the package to specific booking services or events.' This tells the agent when to use these parameters, though it does not explicitly mention alternatives like update_service_package or delete_service_package. The guidance is useful but not comprehensive regarding tool selection.

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

create_service_scheduleBInspect

Create a bookable schedule window for a service, including recurring weekly/daily availability.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesStart date or one-off date (YYYY-MM-DD)
notesNoFree-form notes
endTimeYesHH:MM (24h)
staffIdNoOptional companyMembers.id to bind this schedule to staff
byWeekdayNoWeekdays for weekly recurrence: 0=Mon, 1=Tue, ... 6=Sun
serviceIdYesService ID
startTimeYesHH:MM (24h)
recurrenceNoDefault none
resourceIdNoOptional resource ID to bind this schedule to a room/resource
maxCapacityNoMax bookings per generated slot
recurrenceEndDateNoYYYY-MM-DD
recurrenceIntervalNoDefault 1

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

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

The annotations already indicate a non-read-only, destructive-safe create operation. The description adds no context about side effects, such as whether existing schedules are overwritten, whether slots are generated immediately, or permission requirements. It only restates the purpose without disclosing additional 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.

Conciseness5/5

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

A single, direct sentence with no extraneous words. It front-loads the core action and object, making the tool's purpose immediately understandable.

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

Completeness4/5

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

The tool has 12 parameters and an output schema, but the rich schema descriptions and annotations offset the brief description. The description lacks usage nuance about recurrence edge cases, but the schema addresses defaults and formats, making it adequate for a create operation.

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

Parameters3/5

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

The input schema provides complete descriptions for all 12 parameters (100% coverage), so the schema carries the semantic load. The description's mention of 'recurring weekly/daily availability' aligns with recurrence fields like recurrence, byWeekday, and recurrenceEndDate, but adds no detail beyond what the schema already documents.

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

Purpose5/5

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

The description clearly identifies the action ('Create'), the target ('a bookable schedule window'), and the scope ('for a service'), distinguishing it from booking tools like create_booking and update operations like update_service_schedule. The phrase 'including recurring weekly/daily availability' adds specificity to the tool's recurring capability.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives such as set_resource_availability or list_service_schedules. The description implies it is for creating service-level schedule windows but does not mention exclusions, prerequisites, or scenarios where another tool should be preferred.

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

create_subscriptionAInspect

Create a recurring subscription for a member. Bind to a membership tier or set a custom amount + cycle.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountNoOverride amount per cycle (otherwise derived from tier)
tierIdNoMembership tier ID — if set, amount/currency default from the tier
currencyNoISO currency code (otherwise derived from tier or company default)
accountIdYesCustomer accountId
autoRenewNoAuto-renew at period end (default true)
billingCycleNoBilling cycle (default monthly)
currentPeriodEndNoPeriod end (ISO 8601). Defaults to start + cycle.
currentPeriodStartNoPeriod start (ISO 8601). Defaults to now.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

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

The description adds little beyond annotations. While readOnlyHint=false signals a write operation, the description does not disclose important behavioral traits such as whether payment is charged, what happens to existing subscriptions, or any prerequisites. It merely restates the two creation modes without deeper side-effect context.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the primary purpose and no wasted words. It earns its place by conveying the essential decision between tier-based and custom subscriptions.

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

Completeness3/5

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

The description is minimal but the rich schema covers all parameter details, and an output schema exists. However, it does not mention that accountId is required, and calling the tool 'recurring' while billingCycle includes 'one_off' could create ambiguity. Adequate when combined with structured data, but with noticeable gaps.

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

Parameters4/5

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

Schema coverage is 100%, providing a baseline of 3. The description adds semantic value by explaining the relationship between tierId and amount/currency ('Bind to a membership tier or set a custom amount + cycle'), which is not fully explicit in the schema alone.

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

Purpose5/5

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

The description clearly states the tool creates a recurring subscription for a member, using a specific verb and resource. Among sibling tools like cancel_subscription, pause_subscription, and resume_subscription, this uniquely identifies the creation action, making it easy to distinguish.

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

Usage Guidelines4/5

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

It provides clear context on when to use the tool ('Create a recurring subscription for a member') and offers a key usage decision: 'Bind to a membership tier or set a custom amount + cycle.' It does not explicitly name alternatives or exclusions, but the tier-vs-custom guidance is sufficient for typical usage.

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

create_surveyAInspect

Create a survey with custom question blocks. Publish it later or set status to published for immediate portal access.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoOptional URL slug; generated from title when omitted
titleYesSurvey title
openAtNoOptional ISO datetime when the survey opens
statusNoInitial status
closeAtNoOptional ISO datetime when the survey closes
settingsNoSurvey settings such as allowMultipleResponses, collectEmail, collectIpAddress, requireAuthentication, showProgress, successMessage
visibilityNoWho can access the survey
descriptionNoOptional survey description
questionBlocksYesOrdered survey question blocks

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

The annotations already indicate this is a write operation (readOnlyHint=false). The description adds behavioral context beyond annotations by explaining draft vs. published status and the consequence of 'immediate portal access' when published. It is consistent with the annotations and adds useful nuance.

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

Conciseness5/5

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

The description is two short sentences, immediately starts with the action and resource, and contains no filler. Every phrase contributes meaning, making it highly efficient.

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

Completeness3/5

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

Given the tool has 9 parameters including nested objects (questionBlocks, settings) and there is an output schema, the description is brief. It covers creation and publishing but does not clarify the structure of the required questionBlocks array, leaving the agent to rely entirely on the schema and output schema for structural details.

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

Parameters3/5

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

All 9 parameters have schema descriptions (100% coverage), so the baseline is 3. The description echoes some parameter meanings ('custom question blocks' for questionBlocks, 'set status to published' for status), but it does not add extra format or syntax details beyond what the schema already provides.

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

Purpose4/5

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

The description clearly states 'Create a survey' with a specific resource and adds scope via 'custom question blocks.' It also mentions the publish behavior, which provides useful context, but it does not explicitly differentiate from closely related siblings like update_survey.

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

Usage Guidelines3/5

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

The description implies when to use the tool (when creating a survey) and gives a functional hint about publishing ('Publish it later or set status to published'). However, it does not state when not to use it or name alternatives such as update_survey or create_survey_invitation.

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

create_survey_invitationAInspect

Create a token-auth survey invitation for a specific member/account or contact.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelNoIntended channel, e.g. email, sms, whatsapp, link
metadataNoOptional invitation metadata
surveyIdYesSurvey ID
accountIdNoCRM account ID to invite
contactIdNoContact ID to invite
expiresAtNoOptional invitation expiry ISO datetime
recipientNameNoRecipient display name for link tracking
recipientEmailNoRecipient email for link tracking
recipientPhoneNoRecipient phone for link tracking

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

Annotations already indicate the operation is not read-only, not idempotent, and not destructive. The description adds the 'token-auth' detail and the target scope, but it does not disclose side effects (e.g., whether the invitation is sent via channel or just stored), possible rate limits, or authentication requirements beyond token generation.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. It immediately states the action and the target, earning every word.

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

Completeness4/5

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

Given the 100% schema coverage and the presence of an output schema, the description's concise statement of purpose is mostly sufficient. However, it leaves ambiguity about whether the invitation is actually sent immediately or merely created, which could be important for an agent deciding to use this tool.

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

Parameters3/5

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

The input schema describes all 9 properties with 100% coverage, so the schema handles parameter documentation. The description adds little beyond mapping 'member/account or contact' to the accountId/contactId fields, which is already implied by the property names.

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

Purpose5/5

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

The description uses the verb 'Create' with the specific resource 'token-auth survey invitation' and specifies the target ('specific member/account or contact'). This distinguishes it from sibling tools like create_survey, create_team_member_invite, and list_survey_invitations.

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

Usage Guidelines4/5

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

The description clearly states the intended use case: creating a survey invitation for a specific member/account or contact. It does not explicitly name alternatives or exclusion criteria, so it is clear context without exclusions.

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

create_tagBInspect

Create a CRM tag for customer segmentation and organization.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTag name
colorNoOptional display color, e.g. #2563eb

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

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

Annotations indicate it's a write operation (readOnly=false) but the description adds no extra behavioral context such as side effects, uniqueness constraints, or required permissions. The phrase 'for customer segmentation and organization' is purpose-oriented, not behavioral.

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

Conciseness5/5

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

The description is a single, front-loaded sentence: 'Create a CRM tag for customer segmentation and organization.' It is concise with no unnecessary words, earning a perfect score.

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

Completeness4/5

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

For a simple create operation with a detailed schema and output schema present, the description is sufficient. It does not elaborate on prerequisites or return values, but these are arguably covered by the schema and simple nature of the tool.

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

Parameters3/5

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

Schema description coverage is 100%, with both 'name' and 'color' having explicit descriptions. The tool description adds no parameter-level meaning, so a baseline score of 3 is appropriate since the schema carries the burden.

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

Purpose4/5

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

Description uses a specific verb ('Create') and resource ('CRM tag'), and adds context about customer segmentation and organization. It clearly identifies the tool's function, though it does not explicitly distinguish it from related tools like attach_tags or create_segment.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention any exclusions or alternatives, leaving the agent to infer usage from the tool's name and basic description.

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

create_taskBInspect

Create a task. Optionally link to a CRM account or assign to a team member.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTask title
statusNoStatus filter
dueDateNoISO date (YYYY-MM-DD)
priorityNoPriority
accountIdNoLinked CRM account
assigneeIdNocompany_members.id
descriptionNoDescription

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

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

The annotations already indicate this is a non-read-only, non-idempotent mutation. The description adds no extra behavioral context such as side effects, required permissions, or duplicate handling; it merely restates the action and parameter hints, offering minimal added transparency.

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

Conciseness5/5

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

The description consists of two short sentences with the action front-loaded and no filler. Every word earns its place, and it is appropriately sized for a simple create operation.

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

Completeness3/5

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

Given the output schema and full schema coverage, the description adequately covers the core purpose and two optional associations. However, it lacks contextual details such as when to use this tool over update_task or list_tasks, and does not provide any business context about tasks. It is minimal but functional.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantics for two parameters: 'link to a CRM account' clarifies accountId and 'assign to a team member' clarifies assigneeId, providing human-readable intent beyond the schema descriptions.

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

Purpose4/5

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

The description uses the specific verb 'Create' with the resource 'task,' making the primary action clear. It also mentions optional linking to a CRM account and team assignment, but it does not explicitly distinguish itself from other create_* siblings beyond the resource name.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like update_task or list_tasks. The usage is only implied by the verb 'Create,' and no exclusions or alternative tool references are included.

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

create_team_member_inviteAInspect

Invite a team member to this company and return a one-time MCP accept token. The invited user must verify an email code through accept_team_invite_request and accept_team_invite_verify before membership and API key issuance.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional display name for a new user
roleNoTeam member role to grant on acceptancestaff
emailYesInvitee email address
modulesNoOptional legacy module list to attach to the company member
permissionsNoOptional structured module permissions to attach to the company member
expiresInHoursNoInvite lifetime in hours. Defaults to 72, max 336.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

With annotations already indicating non-readonly and non-destructive behavior, the description adds valuable context: the invite is not immediately active; it requires a multi-step verification process and yields a one-time token. This goes beyond the basic write operation implied by the annotations, though it doesn't mention side effects like email sending or expiration behavior.

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

Conciseness5/5

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

Two sentences, no filler. The first sentence delivers the core purpose and outcome, the second clarifies the required subsequent flow. Every word earns its place.

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

Completeness4/5

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

The description is sufficient for an agent to understand the tool's role in a larger workflow, especially with an output schema present. It explains the acceptance constraint and identifies the dependent tools. It doesn't exhaustively cover all edge cases, but for a creation tool with 6 parameters, it provides the essential context without redundancy.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents each parameter. The description adds no parameter-specific guidance beyond the overall purpose. This meets the baseline for well-documented schemas but provides no additional semantic layer.

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

Purpose5/5

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

The description clearly states the action: 'Invite a team member to this company' and the key output: 'return a one-time MCP accept token'. It distinguishes itself from sibling tools by naming the subsequent verification steps (accept_team_invite_request, accept_team_invite_verify), positioning this as the initial creation step.

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

Usage Guidelines4/5

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

It provides clear workflow context by explaining the required verification flow through sibling tools, which implies when this tool is used (to create the invite before verification). However, it does not explicitly state when not to use it (e.g., for existing team members) or contrast with alternative invite methods.

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

create_templateAInspect

Create and submit a WhatsApp message template to Meta for approval. Text templates only (header text, body with {{1}} variables, footer) — add buttons in the app. The template is NOT usable until Meta approves it (check with list_templates). Submitting consumes the store’s Meta template allowance.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFriendly template name (a Meta-safe id is derived from it).
footerNoOptional small footer text.
messageYesBody text. Use {{1}}, {{2}} for personalised values.
categoryYesUTILITY = transactional (order/shipping), MARKETING = promos, AUTHENTICATION = codes.
languageNoLanguage code, default en_US.
headerTextNoOptional short bold header above the body.
variableSamplesNoExample values per variable number, e.g. {"1":"Sara"} — Meta reviews with these.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior5/5

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

The description adds substantial behavioral context beyond the minimal annotations: the template is not usable until Meta approves it, submission consumes the store's template allowance, and only text templates are supported. These are critical behaviors not present in the annotations (which are all false). No contradictions found.

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

Conciseness5/5

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

The description is three concise, information-dense sentences. It is front-loaded with the primary purpose, followed by key limitations and a critical approval dependency. Every sentence earns its place without redundancy or fluff.

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

Completeness5/5

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

Despite the complexity (7 params, nested objects, output schema), the description covers the essential aspects: what the tool does, its limitations, approval process, and quota consumption. The output schema handles return values, and the input schema covers parameter details, so the description is sufficiently complete for an agent to select and use the tool correctly.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters and their meanings. The description reinforces the structure (header text, body with {{1}} variables, footer) and the approval/allowance context, but adds little new parameter-level meaning beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function: 'Create and submit a WhatsApp message template to Meta for approval.' It specifies the resource (WhatsApp message template), the action (create and submit), and adds distinguishing details like 'Text templates only' and 'add buttons in the app,' which differentiates it from other create_* tools.

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

Usage Guidelines5/5

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

The description provides explicit usage constraints: text-only templates, buttons to be added in the app, and that templates are not usable until Meta approves them. It also directs the user to check approval status with list_templates, an explicit alternative. This covers when and when-not to use the tool.

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

create_ticketBInspect

Create a support ticket for a member issue.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoWhere the ticket originated
subjectYesTicket subject/title
categoryNoTicket category
priorityNoTicket priority
accountIdNoMember/account ID this ticket is about
contactNameNoContact name if no account ID
descriptionNoDetailed description of the issue
contactEmailNoContact email if no account ID
contactPhoneNoContact phone if no account ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

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

The description does not add behavioral context beyond the annotations. Annotations already indicate a write operation (readOnly=false) and non-destructive, but the description doesn't disclose additional traits like auth requirements, response format, or side effects. It merely restates the action.

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

Conciseness5/5

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

The description is a single sentence with no superfluous content. It is front-loaded with the action and resource, making it easy to parse.

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

Completeness3/5

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

Given the tool's moderate complexity (9 params, 1 required) and existing schema with 100% coverage, the description is minimal but sufficient to identify the action. However, it lacks usage context, alternative guidance, and behavioral details, making it incomplete for an agent to decide when to invoke it.

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

Parameters3/5

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

All 9 parameters have schema descriptions, so the description adds no parameter-level meaning. It only states the general purpose, which aligns with the baseline of 3 when schema coverage is high.

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

Purpose4/5

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

The description uses a specific verb 'create' and resource 'support ticket', and adds 'for a member issue' which indicates scope. This clearly identifies the tool's function among many create_* siblings, though it doesn't explicitly differentiate from similar create tools.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like create_contact or update_ticket_status. It doesn't mention conditions, prerequisites, or situations where this tool is preferred.

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

create_variationAInspect

Add a variation (size, color, etc.) to an existing product.

ParametersJSON Schema
NameRequiredDescriptionDefault
skuNoVariation SKU
nameNoVariation name
priceYesPrice as decimal string (e.g. "29.99")
productIdYesThe product ID
memberPriceNoMembers-only price
stockStatusNoStock status
discountPriceNoDiscounted price
stockQuantityNoStock quantity
selectedOptionsNoOption selections e.g. {"Size": "Large"}

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

Annotations already indicate this is not read-only and not destructive, so basic mutation behavior is known. The description adds the constraint that it operates on an existing product, but provides no further detail on side effects, prerequisites beyond product existence, or error behavior. This is a minimal but not misleading disclosure.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the action and resource, with no redundant words. It is efficiently written and easy to parse.

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

Completeness4/5

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

Given the schema fully documents all parameters and an output schema exists, the description provides the essential purpose and target context. It is concise but sufficient for understanding the tool's role, though it does not elaborate on the product-variation hierarchy or any complex behaviors beyond the schema.

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

Parameters3/5

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

Schema description coverage is 100% for all 9 parameters, so the schema already fully documents each parameter's meaning. The description itself adds no additional semantic information beyond the schema, matching the baseline for full coverage.

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

Purpose5/5

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

The description uses a specific verb 'Add' and clearly identifies the resource ('a variation') and the target ('an existing product'), with examples (size, color). It distinguishes from sibling create_product by emphasizing 'existing product'.

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

Usage Guidelines3/5

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

The description implies when to use the tool (adding a variation to an existing product) but does not explicitly exclude alternatives or name them, such as create_product for new products. Guidance is clear in context but lacks explicit when-not-to-use or alternative references.

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

delete_accountA
Destructive
Inspect

Soft-delete a CRM account/customer. This releases the primary phone for future reuse while keeping account history for audit.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountIdYesThe account ID to soft-delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior5/5

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

The description goes beyond the destructiveHint annotation by explaining the soft-delete nature, the release of the primary phone for reuse, and the retention of audit history. This provides meaningful behavioral context about the tool's side effects, which annotations alone do not convey.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the primary action. Every phrase adds value: 'soft-delete' clarifies the operation, and the second sentence explains key consequences. No filler or redundant information.

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

Completeness5/5

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

For a simple one-parameter deletion tool, the description fully explains the operation's nature (soft-delete) and its key effects (phone reuse, audit retention). An output schema exists, so return values need not be described. The description is complete and self-contained.

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

Parameters3/5

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

The schema fully describes the single parameter 'accountId' with its purpose. The description adds no additional semantics about the parameter format, constraints, or behaviors beyond what the schema already states. Baseline of 3 is appropriate given 100% schema coverage.

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

Purpose5/5

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

The description clearly states 'Soft-delete a CRM account/customer' with a specific verb and resource, distinguishing it from other delete_* tools by focusing on the account entity. It also adds the consequence of releasing the primary phone, which is unique to this operation.

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

Usage Guidelines3/5

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

The description implies usage through 'soft-delete' and 'keeping account history for audit,' suggesting when to use it (retaining history), but it does not explicitly state when not to use it or mention alternative tools like update_account or hard-delete options. No exclusions or alternatives are named.

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

delete_campaignA
Destructive
Inspect

Delete a campaign. Only allowed in DRAFT status; sent campaigns are kept for audit history.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaignIdYesCampaign ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations already flag destructiveHint=true. The description adds the key behavioral constraint that only draft campaigns can be deleted and sent campaigns are retained for audit, which is valuable context beyond the annotation flags.

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

Conciseness5/5

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

Two concise sentences with no filler. The first sentence states the action, the second provides a critical constraint.

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

Completeness4/5

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

For a simple one-parameter destructive tool with an output schema, the description covers the core behavior and constraint. It could mention reversibility or side effects, but the audit-history note provides sufficient context.

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

Parameters3/5

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

Input schema provides 100% coverage for the single parameter with a clear 'Campaign ID' description. The tool description adds no additional parameter semantics, so the baseline score applies.

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

Purpose5/5

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

The description clearly states 'Delete a campaign' with a specific verb and resource, and adds a status constraint that distinguishes it from other delete_* tools. It is unambiguous about what the tool does.

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

Usage Guidelines4/5

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

It explicitly states the condition 'Only allowed in DRAFT status' and notes that 'sent campaigns are kept for audit history,' which tells the agent when not to use it. However, it does not name alternative tools like update_campaign or restore_campaign.

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

delete_categoryA
Destructive
Inspect

Delete a CMS post category. Posts in the category are not deleted; they are simply unlinked.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryIdYesCategory ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

While annotations already indicate destructiveHint=true, the description adds valuable context: posts in the category are not deleted but simply unlinked. This goes beyond the annotation by clarifying the non-destructive effect on associated posts, which is exactly the kind of behavioral nuance needed.

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

Conciseness5/5

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

The description is only two sentences, front-loaded with the core purpose and followed by a single, high-value clarification. Every word earns its place, and there is no redundancy or fluff.

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

Completeness4/5

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

For a simple delete operation with one parameter and a provided output schema, the description is nearly complete. It covers the primary action and a key consequence (posts being unlinked). It could marginally mention reversibility or other side effects, but given the tool's simplicity, it is adequately complete.

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

Parameters3/5

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

Schema coverage is 100% and the only parameter (categoryId) is already described as 'Category ID' in the schema. The description adds no additional semantic detail about the parameter, so it does not exceed the baseline for high schema coverage.

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

Purpose5/5

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

The description clearly states the action ('Delete a CMS post category') with a specific verb and resource, distinguishing it from sibling tools like delete_post or update_category. The scope is explicit (CMS post category), leaving no ambiguity about what is being deleted.

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

Usage Guidelines3/5

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

The description implies usage (delete a category) but does not explicitly distinguish when to use this tool over alternatives like restore_category or update_category. There is no explicit when-to-use or when-not-to-use guidance, though the context of 'delete' makes the primary use case obvious.

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

delete_contactA
Destructive
Inspect

Delete a secondary contact. Primary contacts are protected; set another primary contact or delete the account instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
contactIdYesThe contact ID to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations already mark this as destructive (destructiveHint: true), and the description adds the important behavioral constraint that primary contacts cannot be deleted and will be rejected. It does not mention error behavior or whether deletion is permanent, but annotations cover the core destructive nature.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that states the primary action first, then the restriction and alternatives. Every word earns its place with no fluff.

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

Completeness5/5

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

This is a simple one-parameter delete tool. The description explains the core action, the constraint on primary contacts, and alternative actions. Output schema is present so return values are defined elsewhere. It is complete for the tool's complexity.

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

Parameters3/5

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

The input schema has full coverage (100%) with a single parameter contactId described as 'The contact ID to delete.' The description does not add any extra meaning about the parameter, so the baseline of 3 applies.

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

Purpose5/5

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

The description starts with 'Delete a secondary contact,' which is a specific verb and resource. It clearly distinguishes this tool from create_contact, update_contact, set_primary_contact, and delete_account by noting primary contacts are protected.

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

Usage Guidelines5/5

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

The description explicitly states when not to use the tool ('Primary contacts are protected') and provides alternatives: set another primary contact or delete the account. This gives clear usage context and points to sibling tools.

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

delete_custom_fieldA
Destructive
Inspect

Delete a custom field definition and its stored values.

ParametersJSON Schema
NameRequiredDescriptionDefault
definitionIdYesCustom field definition ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations already indicate destructiveHint=true, but the description adds important context by specifying that stored values are also deleted, not just the definition. This clarifies the full scope of the destructive action.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler words. It earns its place by capturing both the primary action and a critical side effect.

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

Completeness5/5

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

Given the simplicity of the tool (one parameter, output schema present, destructiveHint annotation), the description is fully sufficient. It covers what is deleted and the existence of stored values, which is key context for an agent.

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

Parameters3/5

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

The input schema provides 100% coverage with a clear description for definitionId. The tool description does not add additional parameter semantics beyond what the schema already states.

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

Purpose5/5

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

The description uses a specific verb and resource: "Delete a custom field definition and its stored values." It clearly distinguishes this from update_custom_field, get_custom_field, and set_custom_field_values by stating exactly what is removed.

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

Usage Guidelines3/5

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

The description implies when to use the tool (when you want to permanently remove a custom field and its data), but it does not provide explicit alternatives or exclusions. For instance, it doesn't mention that updating the field might be preferable if you want to keep the stored values or that set_custom_field_values could be used to clear values only.

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

delete_dealA
Destructive
Inspect

Soft-delete a CRM deal from the sales pipeline.

ParametersJSON Schema
NameRequiredDescriptionDefault
dealIdYesThe deal ID to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

The term 'soft-delete' adds important behavioral context beyond the destructiveHint annotation, indicating the deletion is reversible or retains data. No other side effects are mentioned, but the annotation already signals destructiveness.

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

Conciseness5/5

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

One concise sentence that front-loads the action and resource. Every word adds critical information, with no filler.

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

Completeness4/5

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

For a one-parameter mutation tool with annotations and an output schema, the description adequately conveys the core operation. It does not explain return behavior, but the output schema covers that aspect.

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

Parameters3/5

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

The schema provides 100% coverage with dealId described as 'The deal ID to delete.' The description does not add extra meaning beyond 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.

Purpose5/5

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

The description clearly states the specific action 'soft-delete' and the resource, a 'CRM deal from the sales pipeline.' This distinguishes it from siblings like update_deal, mark_deal_lost, and mark_deal_won.

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

Usage Guidelines3/5

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

The description implies the tool is for removing a deal from the pipeline, but it does not explicitly compare with alternatives like mark_deal_lost or update_deal_stage. There is no when-to-use or exclusions guidance beyond the soft-delete semantics.

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

delete_invoiceA
Destructive
Inspect

Delete a DRAFT invoice. Only invoices that have never been sent can be deleted; otherwise use void_invoice.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceIdYesInvoice ID to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds valuable behavioral context by restricting deletion to draft invoices that have never been sent, and it warns against using this tool for sent invoices. This goes beyond the annotations and gives the agent a fuller picture of the tool's safety boundaries.

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

Conciseness5/5

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

The description is very concise—two short sentences. It leads with the action, then states the condition and alternative. Every word earns its place, with no filler or redundancy.

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

Completeness5/5

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

For a simple one-parameter tool with a clear annotation (destructiveHint) and an output schema, the description is fully complete. It states what the tool does, when it is appropriate, and what to use instead. No additional context is needed.

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

Parameters3/5

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

Schema description coverage is 100% (the single parameter 'invoiceId' has a description 'Invoice ID to delete'), so the schema already documents the parameter fully. The description adds little about the parameter format or usage, which is acceptable given the high schema coverage. Baseline of 3 applies.

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

Purpose5/5

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

The description opens with a clear verb and resource: 'Delete a DRAFT invoice.' It specifies the exact target (draft invoices) and distinguishes from the sibling tool void_invoice by stating the condition for deletion (never sent). This makes the tool's purpose unambiguous and differentiates it from similar tools.

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

Usage Guidelines5/5

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

The description explicitly states when the tool should be used ('Only invoices that have never been sent can be deleted') and provides a direct alternative for other cases ('otherwise use void_invoice'). This is strong usage guidance, giving the agent clear decision criteria.

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

delete_knowledge_documentA
Destructive
Inspect

Soft-delete a knowledge document. The agent loses access immediately, but the document can be restored with restore_knowledge_document.

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesKnowledge document ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior5/5

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

The description goes beyond the annotations by explaining that this is a soft delete, meaning the document is not permanently destroyed and can be restored. It also discloses the immediate access loss for the agent, providing useful behavioral context that annotations alone do not convey.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the core action ('Soft-delete a knowledge document') and immediately providing valuable behavioral details. Every sentence earns its place with no unnecessary words.

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

Completeness5/5

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

Given the simple single-parameter tool, the presence of an output schema, and strong annotations, the description fully covers the essential behavioral context (soft-delete semantics, restoration path, immediate access loss). It is complete for an AI agent to understand and invoke correctly.

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

Parameters3/5

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

The input schema already describes the only parameter (documentId as 'Knowledge document ID') with 100% coverage. The description adds no additional semantic meaning for the parameter, so it meets the baseline for high schema coverage without adding extra value.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb ('soft-delete') and resource ('a knowledge document'), and distinguishes it from the related restore tool by noting that the document can be restored. This makes the tool's purpose unambiguous and distinct from siblings.

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

Usage Guidelines4/5

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

The description explains the practical effect (immediate loss of access) and explicitly mentions the alternative restore tool, implying when to use it (when a soft delete is desired) and how to undo it. However, it does not explicitly state when not to use it (e.g., for permanent deletion), so it falls short of full guidance.

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

delete_postA
Destructive
Inspect

Delete a CMS post by ID. Soft-deleted posts can be restored with restore_post.

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYesThe post ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations already mark destructiveHint=true, so the description adds value by clarifying the delete is soft ('Soft-deleted') and reversible, which is crucial operational context. It doesn't detail side effects like permissions or related data handling, but the key behavioral trait is disclosed 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.

Conciseness5/5

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

Two sentences, front-loaded with the core action, and no superfluous details. Every word earns its place, including the soft-delete note and restore pointer.

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

Completeness5/5

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

The tool is simple (one parameter), has full annotations, an output schema, and a description that covers purpose, key behavior (soft delete), and recovery path. This is complete for an agent to select and invoke it correctly.

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

Parameters3/5

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

Schema coverage is 100% with postId described as 'The post ID'. The description's 'by ID' adds no new meaning beyond the schema. Baseline 3 is appropriate since the schema fully documents the parameter and the description provides no additional syntax or constraints.

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

Purpose5/5

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

The description uses a specific verb ('Delete') and resource ('CMS post by ID'), making the action unambiguous. It distinguishes itself from siblings like restore_post and update_post by focusing on deletion and mentioning the restore counterpart.

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

Usage Guidelines4/5

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

The description clearly states when to use the tool ('Delete a CMS post by ID') and provides an alternative for reversal ('can be restored with restore_post'). It lacks explicit exclusions (e.g., permanent deletion scenarios), but the context is clear enough for basic selection.

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

delete_post_typeA
Destructive
Inspect

Delete a custom post type. Built-in types cannot be deleted. Fails if any posts of this type still exist — delete those first.

ParametersJSON Schema
NameRequiredDescriptionDefault
postTypeIdYesPost type ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the destructive nature is disclosed. The description adds two behavioral constraints beyond that: built-in types are rejected, and the operation fails when posts exist, requiring deletion first. This adds meaningful context beyond the structured annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with the action, followed by the two most important constraints. Every word earns its place with no redundancy or filler.

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

Completeness5/5

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

For a simple one-parameter mutation with strong annotations and an output schema, the description covers all essential operational context: what can be deleted, what cannot, and the failure precondition. The output schema likely documents return values, so no additional description is needed.

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

Parameters3/5

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

The schema fully covers the single parameter 'postTypeId' with a description 'Post type ID' (100% coverage). The description adds context that the ID must refer to a custom post type and that built-in types are invalid, which slightly enriches the meaning, but the schema already handles the basics. Baseline 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific verb+resource: 'Delete a custom post type.' This clearly states what the tool does and distinguishes it from deleting other entities (e.g., delete_post, delete_post_type_field) by specifying 'custom post type' as the target.

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

Usage Guidelines4/5

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

The description provides explicit when-not guidance ('Built-in types cannot be deleted') and a critical prerequisite ('Fails if any posts of this type still exist — delete those first'). It tells the agent when the tool will fail and what to do before calling, though it doesn't name alternative tools like restore_post_type.

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

delete_post_type_fieldA
Destructive
Inspect

Remove a field from a post type schema. Blocked when posts of this type still have data in the field unless force=true is passed (orphans the data).

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoDelete even if posts have data in this field. Existing meta values become orphaned.
fieldIdYesField ID
postTypeIdYesPost type ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations already flag this as destructive, so the description's added value lies in explaining the blocking condition and the orphan-data effect of force. This goes beyond what destructiveHint alone conveys, making the tool's behavior predictable. It does not discuss other side effects or errors, but the key behavior is covered.

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

Conciseness5/5

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

Two sentences, front-loaded with the primary purpose, followed by the critical forced-deletion caveat. Every word earns its place; no fluff or redundancy.

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

Completeness4/5

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

The description explains the essential behavior, the conditional blocking, and the consequence of using force. An output schema is present to document return values. It is sufficiently complete for a moderately complex deletion tool, though it could mention what happens when a block occurs (e.g., error handling), which is implied but not explicit.

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

Parameters3/5

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

Input schema covers all three parameters with descriptions, with the force parameter already explaining orphaned data. The description references force and blocking but adds no new parameter-specific meaning. Since schema coverage is 100%, the baseline of 3 applies; no extra semantic value is provided.

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

Purpose5/5

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

The description opens with 'Remove a field from a post type schema,' which is a specific verb+resource combination that clearly differentiates this tool from siblings like delete_post_type or update_post_type_field. It also names the exact artifact (post type schema) and the operation (remove).

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

Usage Guidelines3/5

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

The description implies when to use this tool: when you need to remove a field from a post type schema. It does not explicitly mention alternatives (e.g., update_post_type_field for modifying a field) or provide when-not-to-use guidance. The blocking condition and force=true behavior add context but do not replace explicit usage guidance.

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

delete_promotionA
Destructive
Inspect

Delete a promotion. Past usage records are preserved.

ParametersJSON Schema
NameRequiredDescriptionDefault
promotionIdYesPromotion ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations already declare destructiveHint=true, but the description adds valuable context: 'Past usage records are preserved,' indicating a soft delete that retains historical data. This goes beyond the annotation and clarifies 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.

Conciseness5/5

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

The description is two short sentences with the action front-loaded. Both sentences add distinct value: the first states the operation, the second clarifies a key behavioral nuance. No wasted words.

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

Completeness4/5

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

For a simple one-parameter tool with strong annotations, the description covers the core purpose and an important behavioral detail. However, it does not clarify whether the deletion is reversible (there is a restore_promotion sibling) or what happens to the promotion record itself, which is a minor gap.

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

Parameters3/5

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

The input schema fully covers the single parameter 'promotionId' with a description ('Promotion ID'), and schema coverage is 100%. The description adds no param-specific semantics, so the baseline score of 3 applies.

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

Purpose5/5

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

The description uses a specific verb ('Delete') and resource ('a promotion'), and adds the key differentiator 'Past usage records are preserved,' which distinguishes it from hard-delete tools and the sibling restore_promotion. This clearly states what the tool does.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like restore_promotion or update_promotion. The description only states the action, but does not specify prerequisites, scenarios, or exclusions.

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

delete_segmentB
Destructive
Inspect

Delete a customer segment.

ParametersJSON Schema
NameRequiredDescriptionDefault
segmentIdYesThe segment ID to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

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

The annotations already mark the tool as destructive. The description adds no additional behavioral context, such as whether deletion is permanent, requires special permissions, or affects associated data like segment members. It merely restates the action without disclosing consequences 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.

Conciseness5/5

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

The description is one short sentence that gets straight to the point with no filler. It is maximally concise and structurally clear, delivering the core action efficiently with no wasted words.

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

Completeness2/5

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

Even with the destructive annotation, the description omits important context such as irreversibility, side effects on segment members, or any prerequisites. For a simple delete tool, more behavioral detail would be expected, and the description alone does not fully prepare an agent for the consequences of invocation.

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

Parameters3/5

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

The schema fully describes the single parameter segmentId with 'The segment ID to delete'. The description adds minimal value by clarifying the resource type ('customer segment'), but this is already implied by the tool name. Baseline 3 is appropriate since schema coverage is 100%.

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

Purpose5/5

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

The description uses a specific verb ('Delete') and resource ('customer segment'), clearly distinguishing it from sibling tools like create_segment, update_segment, and get_segment. There is no ambiguity about the tool's function.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool, prerequisites, or exclusions. It simply states the action without differentiating from alternatives or explaining conditions for deletion, leaving the agent to infer from the tool name alone.

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

delete_service_packageA
Destructive
Inspect

Delete a service package by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
packageIdYesService package ID to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

Annotations already declare destructiveHint=true, so the destructive nature is known. Description adds no behavioral context beyond the action itself, such as permanence or cascading effects. 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.

Conciseness5/5

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

Single sentence, front-loaded, every word earns its place. No filler.

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

Completeness4/5

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

For a simple delete-by-ID operation with full param schema, destructive annotation, and an output schema present, the description is sufficient. It lacks usage context but is otherwise complete for invocation.

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

Parameters3/5

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

Schema description coverage is 100% with packageId described as 'Service package ID to delete'. Description's 'by ID' adds no meaning beyond the parameter schema.

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

Purpose5/5

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

Description uses specific verb 'Delete' with resource 'service package' and scope 'by ID'. Clearly distinguishes from sibling tools like create/get/update/restore_service_package.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Does not mention that restore_service_package exists for recovery, or any caveats like inability to delete in-use packages.

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

delete_tagA
Destructive
Inspect

Delete a CRM tag and remove it from all tagged entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagIdYesThe tag ID to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations already indicate destructiveHint=true, but the description adds valuable context by disclosing the cascading effect: the tag is removed from all tagged entities. This goes beyond the annotation and clarifies the full impact of the delete operation.

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

Conciseness5/5

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

The description is one concise sentence, front-loaded with the action verb and resource, and includes the key side-effect without any wasted words. Every word contributes to understanding the tool's behavior.

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

Completeness5/5

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

For a simple, one-parameter destructive operation with annotations and an output schema, the description is complete. It covers the primary action, the cascading effect, and the annotation covers the destructive nature, so no additional context is necessary.

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

Parameters3/5

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

The input schema fully documents the tagId parameter with a clear description ('The tag ID to delete'), providing 100% coverage. The tool description adds little beyond labeling it as a 'CRM tag,' so the schema carries the semantic weight.

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

Purpose5/5

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

The description clearly states the action: 'Delete a CRM tag' and adds the specific scope 'remove it from all tagged entities.' This distinguishes it from sibling tools like update_tag or detach_tags, 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.

Usage Guidelines3/5

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

The description implies when to use this tool (to delete a tag) and the side-effect warning (removing it from all tagged entities) helps decide against using it when only detaching is needed. However, it does not explicitly mention alternatives or when not to use it, so guidance is implied rather than explicit.

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

delete_taskA
Destructive
Inspect

Soft-delete a CRM task.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe task ID to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

The description adds the crucial behavioral nuance 'soft-delete', which goes beyond the annotations (destructiveHint=true, readOnlyHint=false). This tells the agent the operation is reversible or non-permanent, a valuable distinction. However, it does not elaborate on consequences such as whether the task can be retrieved afterward, but the annotations already cover the safety profile.

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

Conciseness5/5

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

The description is a single, concise sentence with no filler. It front-loads the action and object, making it immediately scannable. Every word contributes meaning.

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

Completeness3/5

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

For a simple single-parameter delete operation with annotations and an output schema, the description is mostly sufficient. However, the meaning of 'soft-delete' is not elaborated (e.g., does it hide the task, is it restorable, any side effects), which could lead to ambiguity. Since it is a one-line description with no context on behavior or post-conditions, it is adequate but not fully complete.

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

Parameters3/5

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

The schema fully documents the only parameter (taskId) with description 'The task ID to delete'. The tool description adds no additional parameter meaning beyond that, so the baseline of 3 applies given 100% schema coverage.

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

Purpose5/5

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

The description 'Soft-delete a CRM task' uses a specific verb ('soft-delete') and resource ('CRM task'), clearly distinguishing it from hard delete operations and other entity-specific delete tools. It effectively conveys the exact action and target, out of many delete_* siblings.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives. It does not mention that this is a safer alternative to hard delete, when it should not be used, or any related restore/update operations. The usage context is only implied by the tool name and 'soft-delete' qualifier.

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

detach_tagsA
Destructive
Inspect

Detach one tag from one or more member/account records.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagIdYesTag ID to detach
accountIdsYesMember/account IDs to untag (max 100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the destructive nature is covered. The description adds the batch scope ('one or more') but does not elaborate on side effects, such as whether the tag remains available for future use. This is acceptable given the annotations, but no extra behavioral context is provided.

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

Conciseness5/5

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

A single, front-loaded sentence conveys the action, target, and scope with no unnecessary words. It is concise and directly informative.

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

Completeness4/5

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

The simple tool is well-covered by the schema (2 parameters with descriptions), annotations (destructive hint), and the presence of an output schema. The description clearly covers the core operation and batch capability. It could have explicitly clarified that detaching does not delete the tag itself, but the sibling delete_tag helps disambiguate.

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

Parameters3/5

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

The input schema provides 100% description coverage for both parameters (tagId and accountIds), so the description does not need to add parameter details. It correctly reflects the parameter relationships but does not go beyond the schema.

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

Purpose5/5

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

The description uses a specific verb ('detach') identifying the resource ('one tag') and target ('member/account records'), clearly distinguishing it from sibling operations like attach_tags and delete_tag. It unambiguously communicates the removal of a tag association.

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

Usage Guidelines3/5

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

The usage context is implied by the operation itself—use when you need to remove a tag from records—but there is no explicit guidance on when to prefer this over attach_tags or delete_tag, nor any exclusions or prerequisites. This is adequate but lacks direct comparative guidance.

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

earn_loyalty_pointsAInspect

Credit loyalty points or stamps to a member. Use field="points" for points, "stamps" for stamps. Server records a transaction with the reason as audit context.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldYesWhich loyalty unit to credit
amountYesPositive integer amount to credit
reasonNoAudit-trail reason (e.g. "Booking completed", "Manual adjustment")
accountIdYesThe member/account ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

Annotations already indicate the tool is a write operation (readOnlyHint=false). The description adds the behavioral detail that the server records a transaction with the reason as audit context, which goes beyond the schema and annotations. It also clarifies the impact of the field parameter.

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

Conciseness5/5

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

Two sentences, front-loaded with the main action, and no redundant information. The field usage and audit note are essential, making it very efficient.

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

Completeness4/5

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

Given the simple task, full schema coverage, and existing output schema, the description adequately covers the tool's behavior and key parameter semantics. It lacks explicit alternative-tool guidance but that is captured under usage guidelines; overall it is reasonably complete.

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

Parameters4/5

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

Schema already describes all four parameters with full coverage. The description adds value by explicitly mapping the field enum values to points/stamps and explaining that the reason is used as audit context, enriching the schema's terse descriptions.

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

Purpose4/5

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

The description clearly states the tool's function: 'Credit loyalty points or stamps to a member.' It also specifies the field parameter values. However, it does not distinguish this tool from the sibling tool 'issue_rewards', so it lacks sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'issue_rewards' or when not to use it. The only usage hint is how to fill the field parameter, which is parameter-level, not tool-selection guidance.

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

enrol_membershipAInspect

Enrol a member into a membership tier. Free tiers enrol immediately; paid tiers return PAYMENT_REQUIRED unless skipPriceCheck is set. Use list_tiers first to find the target tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierIdNoThe membership tier ID. Omit to enrol on the default no-tier membership.
accountIdYesThe member/account ID to enrol
expiresAtNoOptional ISO date to override the tier-computed expiry.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

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

The description adds meaningful behavioral details beyond annotations: free tiers enrol immediately, paid tiers return PAYMENT_REQUIRED unless skipPriceCheck is set. This is not evident from readOnlyHint=false or other annotations. It could mention side effects or idempotency, but the openWorldHint and destructiveHint already set expectations, so the added payment behavior is 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.

Conciseness5/5

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

The description is three sentences long, front-loaded with the core purpose, and each sentence provides essential information: the action, the payment behavior, and the prerequisite. There is no fluff or redundancy.

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

Completeness4/5

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

Given the output schema exists, return values are already covered. The description covers the main behavioral aspects (free/paid tiers) and the prerequisite (list_tiers), but the reference to skipPriceCheck without a corresponding schema field leaves a minor gap. Overall, it is complete for a tool of this complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add additional meaning to the listed parameters (tierId, accountId, expiresAt) beyond what the schema already provides. The mention of skipPriceCheck is a behavioral condition not tied to any schema property, which creates slight ambiguity but does not clarify parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb and resource: 'Enrol a member into a membership tier.' It distinguishes itself from sibling tools like list_tiers and get_membership_tier by focusing on the action of enrolment, and the mention of 'membership tier' differentiates it from subscription-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit context for when to use this tool: 'Use list_tiers first to find the target tier' and explains the free vs paid tier behavior. It does not explicitly name alternative tools (e.g., create_subscription) or state when not to use it, but the prerequisite and payment caveat provide clear usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_toolA
Destructive
Inspect

Execute an available FavCRM tool by name after discovering it with search_tools. Target tool availability, input schema, module gates, and audit logging are still enforced.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNameYesExact target tool name returned by search_tools
argumentsNoArguments object for the target tool. Must match the target input schema.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=false, destructiveHint=true, and idempotentHint=false. The description adds valuable context about enforcement of target tool constraints and audit logging, which goes beyond the annotations. It 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise: two sentences that front-load the primary purpose and then add key constraints. Every sentence earns its place with no redundant fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's open-ended nature (executes arbitrary tools) and the existence of an output schema, the description covers essential aspects: the discovery workflow, naming, and enforcement of target constraints. It is sufficiently complete for a dispatcher, though it could mention error behavior for missing or invalid tool names.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters (toolName and arguments) clearly described in the schema. The tool description does not add meaningful parameter semantics beyond what the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Execute an available FavCRM tool by name after discovering it with search_tools.' It uses a specific verb (execute) and resource (tool by name), and distinguishes it from siblings by highlighting the discovery step and the generic dispatcher role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by instructing to discover the tool first with search_tools, and mentions that target tool availability, schema, and gates are enforced. However, it does not explicitly state when not to use this tool or name alternatives, so it stops short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_or_create_workroom_threadAInspect

Find or create a Workroom DM thread between a merchant user and an AI colleague. Use this when an inbound event deserves owner attention but no threadId was provided. This only prepares an internal Workroom channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoOptional title if a new thread is created
userIdNoMerchant user ID to notify. Defaults to the current MCP user when omitted.
agentIdYesAI colleague ID for the Workroom DM

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false. The description adds that it only prepares an internal Workroom channel, which clarifies side-effect scope, but does not disclose return values, permissions, or behavior when a thread already exists. With annotations covering the safety profile, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core action. 'Use this when...' and 'This only prepares...' provide essential guidance without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple find-or-create tool with three parameters and an output schema, the description provides purpose, usage context, and scope. It does not need to explain return values due to the output schema, and parameter defaults are in the schema. The only minor gap is unspecified behavior on creation versus finding, but overall it is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptive parameter definitions for agentId, userId, and title. The description adds no parameter-specific meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action—'Find or create a Workroom DM thread'—with the involved parties (merchant user and AI colleague). This clearly distinguishes it from siblings like post_workroom_message, which handles messaging rather than thread preparation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit condition: 'Use this when an inbound event deserves owner attention but no threadId was provided.' It also notes scope with 'This only prepares an internal Workroom channel,' implying it is not for sending messages. However, it does not name an alternative tool explicitly, stopping short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_imageAInspect

Generate an AI image via kie.ai and return its public R2 URL. Use to mint reusable URLs for content blocks (image, gallery), product photos, or any field that takes an image URL — does NOT attach to a post by itself. Costs credits (see list_image_models). On poll timeout the job continues running; pass jobId from the response to merchant ai-media APIs to retrieve it later.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNoRandom seed for reproducible output
promptYesGeneration prompt
modelCodeYesImage model code from list_image_models
aspectRatioNoOutput aspect ratio (e.g. 16:9, 1:1)
pollTimeoutMsNoDefault 60000.
negativePromptNoThings to exclude from generation
pollIntervalMsNoDefault 3000.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral traits beyond annotations: it returns a public URL, consumes credits, and has an async timeout behavior where 'the job continues running' and can be retrieved later via jobId. This is valuable context that annotations do not provide, and it does not contradict the readOnlyHint=false annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each serving a distinct purpose: what it does, when to use it, and important async/cost behavior. It is front-loaded with the core function and conveys substantial information without fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, external API, async behavior, costs, and output schema), the description covers purpose, usage scenarios, exclusions, cost implications, and timeout behavior. It also points to the jobId retrieval mechanism, making it complete for an 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for all parameters, so the baseline is 3. The description adds some context about the jobId in the response (related to pollTimeoutMs) but does not significantly elaborate on parameter meanings beyond the schema. It adequately meets the baseline without adding much extra.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Generate an AI image via kie.ai and return its public R2 URL.' It specifies the resource (AI image via kie.ai) and the output (public R2 URL), and distinguishes from siblings by noting it 'does NOT attach to a post by itself,' setting it apart from tools like generate_post_cover.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit usage context is provided: 'Use to mint reusable URLs for content blocks (image, gallery), product photos, or any field that takes an image URL.' It also states what it does not do ('does NOT attach to a post by itself') and mentions cost implications ('Costs credits (see list_image_models)'), guiding when to use and when to consider alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_post_coverAInspect

Generate an AI image and attach it as a post's featuredImage. Submits a kie.ai job, polls until complete, copies the result into the canonical post-asset R2 folder, and writes the public URL onto the post. Costs credits (see list_image_models). On poll timeout, the job continues — call attach_post_cover_from_job(postId, jobId) once it finishes to attach without paying again.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNoRandom seed for reproducible output
postIdYesThe post ID
promptYesImage generation prompt
modelCodeYesImage model code from list_image_models (e.g. nano-banana-2)
aspectRatioNoAspect ratio passed to the model, e.g. "16:9", "1:1"
pollTimeoutMsNoDefault 60000.
negativePromptNoThings to exclude from generation
pollIntervalMsNoDefault 3000.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (which only indicate non-read-only, non-idempotent), the description richly discloses behavior: submits a kie.ai job, polls, copies to R2, writes URL, costs credits, and that the job continues on timeout. It also gives actionable recovery steps. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the primary action. Every sentence adds value: purpose, workflow, cost/fallback. No redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 8 parameters, the description provides a complete high-level picture, including cost, timeout behavior, and next steps. The presence of an output schema covers return values, so no gap there. Sibling tools give adequate context for alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with each parameter already described. The description adds context for modelCode (from list_image_models) and mentions cost, but does not elaborate on parameter semantics beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose: 'Generate an AI image and attach it as a post's featuredImage.' It details the full workflow (submit job, poll, copy to R2, write URL) and distinguishes itself from siblings like generate_image (which likely only generates) and attach_post_cover_from_job (which is called in the fallback scenario).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this to generate a new cover and attach it, costing credits. It explicitly names an alternative for timeout recovery: 'call attach_post_cover_from_job(postId, jobId) once it finishes to attach without paying again.' However, it does not explicitly contrast with generate_image or upload_post_cover_from_url, leaving some ambiguity about when those should be used instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_attachment_textA
Read-onlyIdempotent
Inspect

Read the text/Markdown content of a file attached to a Workroom thread or sent by a customer (PDF, image, or document). Extracts on first read and caches the result. Returns status "ready" with markdown, or "skipped"/"failed"/"not_found" with a reason. Use when a message references an attachment you need to read.

ParametersJSON Schema
NameRequiredDescriptionDefault
attachmentIdYesThe attachment ID from the message attachments list

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and idempotentHint=true. The description adds meaningful context beyond these: it mentions that extraction happens 'on first read' and caches the result, and lists possible return statuses ('ready', 'skipped', 'failed', 'not_found') with reasons. This helps the agent understand caching behavior and failure modes, going beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states purpose and scope, the second covers behavior and usage. It is front-loaded, information-dense, and contains no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one parameter, an output schema, and safety annotations, the description is complete. It covers the purpose, the caching behavior, the possible return statuses, and the exact scenario when to use it. No significant gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single attachmentId parameter, and the schema already explains it as 'The attachment ID from the message attachments list'. The tool description adds no further parameter semantics, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Read' and identifies the resource as 'text/Markdown content of a file attached to a Workroom thread or sent by a customer', with file types (PDF, image, or document). This clearly distinguishes it from sibling tools like get_conversation_messages, which focuses on entire messages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states 'Use when a message references an attachment you need to read', providing a clear trigger condition. It does not mention when not to use or name alternative tools, so it misses the 'when-not/alternatives' criterion for a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_audit_logA
Read-onlyIdempotent
Inspect

Fetch a single audit log entry by ID, including before/after snapshots when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
auditLogIdYesAudit log ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so safety is covered. The description adds useful behavioral context by noting 'including before/after snapshots when available', which goes beyond the structured fields and informs the agent of conditional return content.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single sentence, front-loaded with the verb 'Fetch', and contains no unnecessary words. It is appropriately concise for a simple read operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter, output schema provided, annotations covering safety), the description is fairly complete. It could benefit from explicit differentiation from sibling audit tools, but it still covers the essential purpose and a key behavioral detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for auditLogId (described as 'Audit log ID'). The description does not add additional meaning beyond what the schema and tool name already convey, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Fetch a single audit log entry by ID', using a specific verb and resource. It distinguishes from sibling tools like list_audit_logs and search_audit_logs by focusing on a single entry identified by ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when an audit log ID is known, but does not explicitly mention alternatives such as search_audit_logs or list_audit_logs. Context is clear, yet no explicit exclusions or alternative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_available_slotsA
Read-onlyIdempotent
Inspect

Find available booking slots for a service on a specific date.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesISO date to check (YYYY-MM-DD)
staffIdNoOptional: filter by specific staff member
serviceIdYesThe service to check availability for
resourceIdNoOptional: filter by specific resource

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe read operation. The description adds no extra behavioral context beyond the word 'available' (e.g., no mention of timezone handling, pagination, or how availability is computed), but it does not contradict annotations. This is adequate but not enriched.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 10 words that is front-loaded with the action and resource. It is concise without sacrificing clarity, earning a perfect score for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a simple read-only lookup with strong annotations (readOnly, idempotent, non-destructive), a complete input schema, and an output schema present. The description fully covers the purpose and context; any return-value details are handled by the output schema. This is complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter ('date', 'serviceId', 'staffId', 'resourceId') having a clear description. The tool description adds no parameter-specific meaning, but the schema already handles parameter semantics effectively. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Find') with a precise resource ('available booking slots') and a clear context ('for a service on a specific date'). It clearly distinguishes this from sibling tools like list_bookings or get_booking_detail by focusing on availability rather than existing bookings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies clear usage: call this when you need to find available slots for a given service and date. It gives context but does not explicitly mention alternatives or when-not-to-use scenarios. A 4 is appropriate given the simplicity of the tool and the clear contextual framing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_booking_detailA
Read-onlyIdempotent
Inspect

Get full booking details including line items, status history, and participants.

ParametersJSON Schema
NameRequiredDescriptionDefault
bookingIdYesThe booking ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds value by specifying the contents of the response (line items, status history, participants), which goes beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that immediately states what the tool does, followed by relevant details. There is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema existing and annotations covering safety, the description is complete for a simple get-by-ID tool. It mentions the key data categories returned, and no further context is necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage for the only parameter (bookingId), with a clear description. The tool description does not add additional parameter details, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get full booking details including line items, status history, and participants.' This uses a specific verb ('Get') and resource ('booking details'), and lists key components, distinguishing it from sibling tools like get_booking_settings and get_booking_stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context that this is the tool for retrieving comprehensive booking information, but does not explicitly mention when not to use it or name alternative tools. However, the implied usage is unambiguous for a single-booking detail lookup, so it earns a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_booking_settingsA
Read-onlyIdempotent
Inspect

Get global booking settings for the customer booking flow, cancellation rules, visibility options, and confirmation requirements.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is covered. The description adds context about the content of the settings (cancellation rules, visibility, confirmation) but does not describe response structure or any operational behaviors beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single 18-word sentence that starts with the core action and then lists the key setting categories. Every word adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple read-only getter with no parameters, an output schema present, and annotations covering safety. The description lists the major setting areas, which is sufficient for an agent to understand the tool's purpose and scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty with 0 parameters, so there are no parameter descriptions needed. The baseline for 0 params is 4; the description correctly does not attempt to document nonexistent parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Get' with the resource 'global booking settings', and enumerates the covered aspects: customer booking flow, cancellation rules, visibility options, and confirmation requirements. This clearly distinguishes it from sibling tools like get_booking_detail and list_bookings, which target individual bookings or lists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when needing the global booking configuration, but does not explicitly contrast with alternatives such as update_booking_settings or get_booking_detail. No when-not-to-use guidance is provided, leaving the agent to infer scope from the word 'global'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_booking_statsA
Read-onlyIdempotent
Inspect

Get booking counts: today, this week, this month, and breakdown by status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive. The description adds meaningful behavioral context by specifying the time periods and status breakdown of the returned counts, which goes beyond the annotations. No caveats (e.g., timezone handling) are mentioned, but annotations cover the safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the key information (booking counts) and adds the relevant breakdown details. No waste or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, no parameters, and strong annotations. The description sufficiently conveys the purpose and scope for a simple stats tool. It does not explain edge cases (e.g., definition of 'today' or status values), but the output schema and simplicity make this acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the baseline is 4. The description adds value by explaining what the returned counts represent, though no parameter-specific semantics are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns booking counts for today, this week, this month, and broken down by status. It uses a specific verb ('Get') and resource ('booking counts'), distinguishing it from related tools like get_booking_detail or list_bookings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for aggregate summary statistics but does not explicitly state when to use it over alternatives like list_bookings or get_dashboard_stats. No exclusions or alternative recommendations are provided, so the usage context is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contactA
Read-onlyIdempotent
Inspect

Fetch a single contact by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
contactIdYesThe contact ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds no additional behavioral context beyond what annotations and the output schema convey, such as error behavior or response details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence that directly states the tool's purpose with no superfluous words. Every word is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple: one required parameter, annotations cover safety, and an output schema likely defines the return structure. The description is sufficient for a basic getter, though a note about not-found behavior could make it marginally more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for contactId, and the parameter name plus schema description fully explain the meaning. The description's 'by ID' adds no new semantic value beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Fetch', clearly identifies the resource as 'contact', and specifies the scope as 'by ID'. This distinguishes it from sibling tools like list_contacts, create_contact, update_contact, and delete_contact.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context: use when you have a specific contact ID and need a single contact. However, it does not explicitly state when not to use it or mention alternatives such as list_contacts for multiple contacts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_conversation_messagesA
Read-onlyIdempotent
Inspect

Get messages from a specific conversation thread. Shows the chat history between the merchant and a contact.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
searchNoSearch within messages
conversationIdYesThe conversation ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no further behavioral details (e.g., ordering, pagination, or content filtering). It does not contradict annotations, but it also provides no additional transparency beyond what annotations already offer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loaded with the action verb 'Get', and contains no redundant or unnecessary wording. It is concise and easily scannable, earning a top score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with an output schema and comprehensive annotations, the description adequately conveys the function. It does not mention ordering or default pagination, but given the output schema and annotations, these are not critical gaps. Slightly more behavioral context would have made it a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add parameter-specific meaning beyond the schema; the phrase 'specific conversation thread' loosely maps to conversationId, but the schema already describes that parameter sufficiently.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Get' and a clear resource: 'messages from a specific conversation thread'. It further clarifies the function with 'Shows the chat history between the merchant and a contact', which distinguishes it from sibling tools like list_conversations that list conversations rather than individual messages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool by emphasizing 'specific conversation thread' and the merchant-contact chat history, providing context for message-level retrieval. However, it does not explicitly name alternatives or state when not to use it, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_custom_fieldA
Read-onlyIdempotent
Inspect

Get a custom field definition by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
definitionIdYesCustom field definition ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral context beyond the schema, such as what happens if the ID is not found or how the response is structured.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that is front-loaded and free of unnecessary words. It clearly and efficiently states the tool's purpose without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get-by-ID tool with complete schema coverage, rich annotations, and an output schema, the brief description is adequate. It omits only optional context like error handling, which is not critical given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the parameter definitionId described as 'Custom field definition ID', so the schema already provides full parameter meaning. The description's 'by ID' rephrases this without adding new semantics, aligning with the baseline score of 3 for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Get' with the resource 'custom field definition' and scope 'by ID', clearly distinguishing it from sibling tools like list_custom_fields and get_custom_field_values. It unambiguously identifies the tool's function and target.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given about when to use this tool versus alternatives, but the name and description imply it is for fetching a single definition by ID as opposed to listing all definitions. This is implied usage rather than explicit exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_custom_field_valuesA
Read-onlyIdempotent
Inspect

Get custom field values for a CRM entity such as an account, contact, deal, or booking.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityIdYesEntity ID
entityTypeYesEntity type

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds no behavioral context beyond what annotations already provide. Annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description merely restates the purpose and does not disclose any additional traits like return format, filtering behavior, or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence that concisely captures the tool's purpose without redundancy. It wastes no words and is well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, rich annotations, full schema documentation, and presence of an output schema, the description is mostly complete. It could enumerate all entity types or mention that it returns all custom fields, but the example list and schema cover this adequately. The description is sufficient for a basic read-only getter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for both parameters (entityId and entityType), so the schema fully documents parameter semantics. The description does not add further meaning, which is acceptable given the high schema coverage, earning the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: retrieving custom field values for a CRM entity. It uses a specific verb ('Get') and resource ('custom field values') and enumerates example entity types (account, contact, deal, booking), distinguishing it from the related 'get_custom_field' tool which fetches field definitions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies its use case—when you need custom field values for a given entity. It does not explicitly mention alternatives or when not to use it, but the purpose is self-evident given the read-only getter nature. No exclusions or comparisons are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dashboard_statsA
Read-onlyIdempotent
Inspect

Get high-level business KPIs: member count, new members this week, active subscriptions, total points issued, active promotions, rewards redeemed, messages sent.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the operation as read-only, idempotent, and non-destructive. The description adds value by enumerating the exact KPIs returned, which clarifies what data the tool exposes. It doesn't mention any additional behavioral nuances, but none are needed given the simple, safe nature of the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that front-loads the verb and resource, then efficiently lists the KPIs. Every word adds value, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool with an output schema, this description is complete. It specifies all the key metrics returned, and the presence of an output schema covers structural details. There are no missing caveats or prerequisites that would be expected.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline score is 4. The description doesn't need to explain parameters; it lists the output metrics, which is the primary semantic content here. No additional parameter guidance is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's purpose with a specific verb ('Get') and resource ('high-level business KPIs'), followed by a concrete list of metrics. This distinguishes it from sibling stats tools like get_booking_stats or get_invoice_stats, which focus on narrower domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys clear context: this is for overall business KPIs, not domain-specific stats. However, it doesn't explicitly state when to use it over alternatives or provide exclusions, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dealA
Read-onlyIdempotent
Inspect

Get detailed CRM deal information by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
dealIdYesThe deal ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds no extra behavioral context such as authentication, errors, or pagination, but it doesn't contradict annotations. With annotations providing the key transparency, the description meets the baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short sentence that efficiently conveys the tool's purpose without any filler or redundancy. It is front-loaded with the verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter get operation with annotations and an output schema present, the description fully satisfies the need to understand what the tool does. The output schema covers return values, and annotations cover safety, so no additional context is necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter dealId is described as 'The deal ID'. The description's 'by ID' adds minimal semantics beyond the schema, so the baseline score of 3 applies since the schema already fully documents the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Get), the resource (CRM deal), and the scope (by ID). It distinguishes itself from sibling tools like list_deals by specifying that it retrieves a single deal's detailed information based on an ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'by ID' clearly indicates this tool is used when you have a deal ID and need its details. It doesn't explicitly mention alternatives or when not to use it, but the context is clear enough for a simple get-by-id operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_invoiceA
Read-onlyIdempotent
Inspect

Fetch a single invoice with line items, payment history, and customer detail.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceIdYesInvoice ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, read-only operation. The description adds that the response includes line items, payment history, and customer detail, but it does not disclose other behavioral traits such as error handling or permissions. The added value is moderate given the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 12 words, front-loaded with the action verb, and every word adds meaning. No wasted text or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (one parameter, output schema present, strong annotations), the description adequately defines the tool's scope. The included components are mentioned, and the output schema handles return value details, so the description is complete for this context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes the single parameter invoiceId as 'Invoice ID', giving 100% schema coverage. The description does not mention the parameter, but with complete schema documentation, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Fetch' with resource 'single invoice' and explicitly lists the included components (line items, payment history, customer detail), clearly distinguishing it from sibling tools like list_invoices or get_invoice_stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly conveys that this tool is for retrieving one specific invoice with full details, providing clear context for when to use it. However, it does not explicitly state when not to use it or mention alternatives like list_invoices, so it stops short of a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_invoice_statsA
Read-onlyIdempotent
Inspect

Outstanding totals, overdue counts, and revenue this period. Used by the weekly-snapshot playbook.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety behavior. The description adds the period-based scoping ('this period'), which is useful but does not go beyond that. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loading the key output metrics and a clear usage context. Every word is informative with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, parameterless stats tool with an output schema present, the description adequately conveys what it returns and when to use it. The 'this period' ambiguity is mitigated by the weekly-snapshot usage context, and no further details are necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema coverage is effectively 100%. Baseline for 0 parameters is 4. The description adds no parameter-specific meaning, which is appropriate given there are no parameters to clarify.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the tool returns outstanding totals, overdue counts, and revenue this period. This distinguishes it from siblings like get_invoice (individual invoice) and list_invoices (list of invoices), 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states this is used by the weekly-snapshot playbook, providing a clear context for when to invoke it. It does not explicitly mention alternatives or exclusions, but the usage context is evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_knowledge_documentA
Read-onlyIdempotent
Inspect

Fetch a single knowledge document with metadata + extraction/review status. Reviewed content is served via GET /v6/merchant/ai/knowledge/{id}/content; raw/extracted variants are for audit.

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesKnowledge document ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds behavior not in annotations: it returns status and mentions that reviewed content is served elsewhere, clarifying the tool's scope and what it does not return. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action, and includes only relevant details about content variants. No redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with one parameter and an output schema, the description sufficiently covers purpose, metadata/status, and content access. The addition about endpoint variants fills the main contextual gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter documentId. The description does not add additional meaning beyond the schema's 'Knowledge document ID', so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Fetch') and resource ('knowledge document'), clearly stating it returns metadata + extraction/review status. This distinguishes it from siblings like list_knowledge_documents (plural, list) and delete_knowledge_document.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear context: reviewed content is accessible via a separate endpoint, and raw/extracted variants are for audit. This implies when to use this tool vs. fetching content directly, though it does not explicitly name alternative tools or state 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.

get_loyalty_balanceA
Read-onlyIdempotent
Inspect

Get a member's current loyalty balance — points, stamps, credits, lifetime totals, and active membership tier. Returns null if the member is not enrolled.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountIdYesThe member/account ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds valuable behavioral context: the tool returns null for non-enrolled members and enumerates the exact components of the balance, going 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that is front-loaded with the core action and resource. It lists the included data elements efficiently and adds the null-return condition without any fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not list every return field, but it does disclose the key conditional behavior (returns null if not enrolled) and the high-level contents. For a single-parameter read tool, this is fully complete and actionable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the single required parameter accountId is described as 'The member/account ID'. The description adds no additional parameter detail, but the schema already fully documents it, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get a member's current loyalty balance' and enumerates specific components (points, stamps, credits, lifetime totals, active membership tier). This specific verb+resource combination distinguishes it from siblings like get_membership_tier and get_member_profile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by naming the exact data returned (loyalty balance, tier) and the null condition when the member is not enrolled. However, it does not explicitly state when to use this tool over alternatives like get_membership_tier or list_reward_schemes, nor does it provide exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_member_profileA
Read-onlyIdempotent
Inspect

Get detailed profile for a specific member/account by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountIdYesThe account ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it is a safe read operation. The description adds that it targets a specific member/account by ID, which is a scoping constraint, but does not disclose any additional behavioral traits such as output format or special cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that gets straight to the point. It uses efficient wording with no redundant phrases, earning full marks for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and robust annotations (readOnly, idempotent, non-destructive), the description is largely sufficient. It could potentially clarify what 'detailed profile' includes, but the output schema likely covers that. It is complete for a simple retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage of the single parameter, accountId, with a description ('The account ID'). The tool description repeats 'by ID' without adding new semantic meaning, so it does not enhance the schema's parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: get a detailed profile for a specific member/account by ID. This distinguishes it from list/search tools like search_members or list_contacts, as it emphasizes targeted retrieval by ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: use when you have an account ID and need a member's detailed profile. However, it does not explicitly mention alternatives or when not to use this tool, leaving the agent to infer context from sibling tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_membership_tierA
Read-onlyIdempotent
Inspect

Get a specific membership tier by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierIdYesThe tier ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, establishing the read-only safety profile. The description adds no additional behavioral context beyond 'get by ID', so it neither enhances nor contradicts the annotations. It is consistent but not informative beyond the structured data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the core action and resource. No unnecessary words or repetition, making it highly efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no nested objects) and the presence of an output schema, the description fully covers the needed context. The annotations and schema fill in the safety and return-value details, leaving no ambiguity for a get-by-ID operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the parameter 'tierId' described as 'The tier ID'. The description's 'by ID' adds no extra meaning beyond the schema. The schema sufficiently explains the parameter, so a baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get a specific membership tier by ID' clearly states the verb (Get), resource (membership tier), and scope (specific by ID). It distinguishes from sibling tools like list_tiers by indicating a single-tier retrieval based on an identifier.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as list_tiers for fetching all tiers or get_member_profile for member-specific tier info. No exclusions or conditions are mentioned, leaving the agent to infer usage solely from the naming.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_offer_ruleA
Read-onlyIdempotent
Inspect

Get offer rule detail including associated products and discounts.

ParametersJSON Schema
NameRequiredDescriptionDefault
ruleIdYesThe offer rule ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds that the detail includes associated products and discounts, which is useful, but it doesn't discuss authorization, errors, or any other behavioral traits. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence (~9 words) that immediately communicates the action and scope. There is no filler, repetition, or unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, single-parameter read-only tool with an output schema and comprehensive annotations, the description is sufficiently complete. It states the resource and key response contents; return value details are covered by the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: the only parameter, ruleId, is described as 'The offer rule ID' in the schema. The tool description adds no additional parameter explanation, but none is needed since the schema fully documents it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and names the resource ('offer rule detail') while adding 'including associated products and discounts' to clarify the scope. This clearly distinguishes it from siblings like list_offer_rules (list) and create_offer_rule (create).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a single-record retrieval use case through the word 'detail', but it does not explicitly state when to prefer this tool over list_offer_rules or other offer-rule tools. There is no when/when-not or alternative guidance, but the contextual wording provides a mild signal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_orderA
Read-onlyIdempotent
Inspect

Get full order detail including line items.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderIdYesThe order UUID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds context about return content (full order detail with line items) but does not disclose other behaviors such as error handling, authorization needs, or rate limits. This is adequate given the annotations, but it does not go beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that is direct and free of filler. It conveys the essential function efficiently, making every word count.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only getter with one parameter, an output schema, and clear annotations, the description is sufficient. It covers what the tool does and the depth of detail (line items), while the output schema handles return values. No significant information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage with a clear description ('The order UUID') for the single orderId parameter. The tool description adds no additional parameter semantics beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Get' with the resource 'full order detail' and explicitly mentions 'including line items', clearly distinguishing it from listing tools like list_orders. It is immediately clear what the tool does and what depth of information it returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving a single order's complete details, but it does not explicitly state when to use it versus alternatives like list_orders or get_booking_detail. No when-not or alternative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_plan_statusA
Read-onlyIdempotent
Inspect

Show the current organisation plan, subscription/payment state, enabled modules, and quota usage. Use before deciding whether an agentic operation is allowed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds the specific data it returns (plan, payment state, modules, quota), but does not disclose any additional behavioral traits such as potential staleness, permission requirements, or side effects. Given annotation coverage, the added context is moderate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core functionality and followed by a practical usage note. Every sentence adds value; no fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters) and the presence of an output schema (so return values are documented elsewhere), the description is sufficient. It covers what the tool returns and when to use it. It does not mention any limitations, but none are apparent for this read-only status tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema shows no properties, so schema coverage is 100%. Per the calibration baseline, this warrants a 4. The description does not need to explain parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Show the current organisation plan, subscription/payment state, enabled modules, and quota usage.' It uses a specific verb and resource, and the added usage note ('Use before deciding whether an agentic operation is allowed') gives it distinct purpose, differentiating it from siblings like get_subscription or check_plan_operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use the tool: 'Use before deciding whether an agentic operation is allowed.' This clearly positions it as a pre-check for operations. However, it does not explicitly name alternative tools or scenarios where it should not be used, so it falls short of full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_postA
Read-onlyIdempotent
Inspect

Get detailed CMS post including content blocks, categories, and tags.

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYesThe post ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as a safe, read-only, idempotent operation. The description adds behavioral context by specifying the post's content blocks, categories, and tags, which clarifies the granularity of the response. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, tightly worded sentence that front-loads the action ('Get detailed CMS post') and provides specifics without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read operation with a fully documented parameter and output schema, the description covers the essential context. It correctly indicates what the tool returns at a high level and requires no additional explanation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the single postId parameter ('The post ID'). The description does not add additional meaning or usage guidance for the parameter, so the score is at the baseline given the 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the verb 'Get' with a specific resource 'CMS post' and enumerates the detail scope (content blocks, categories, tags). This clearly identifies the tool as a single-post fetcher and differentiates it from list_posts and update/delete operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternative guidance is provided. The singular 'post' and inclusion of detailed fields imply this is for fetching one post by ID, while list_posts is for collection queries, but the description does not state this.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_productA
Read-onlyIdempotent
Inspect

Get full product detail including images, options, and variations.

ParametersJSON Schema
NameRequiredDescriptionDefault
productIdYesThe product ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a safe read (readOnlyHint=true, idempotentHint=true, destructiveHint=false). The description adds value by specifying what 'full detail' includes (images, options, variations), giving the agent a concrete sense of the return payload beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that immediately states the action and scope. Every word contributes value, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple single-parameter read tool with an output schema, so the return values are already specified elsewhere. The description adds the product content scope (images, options, variations), making it complete for the agent to decide when to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage for the only parameter, productId, with a simple 'The product ID' description. The tool description does not add any additional parameter-specific meaning, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Get') and resource ('product detail'), and further specifies the scope by listing 'images, options, and variations.' This distinguishes it from sibling tools like list_products (which lists summaries) and update_product (which modifies).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context 'full product detail' implies this is the tool to use when complete product information is needed, clearly distinguishing it from list_products. However, it does not explicitly mention when not to use it or name alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_promotionA
Read-onlyIdempotent
Inspect

Get details of a specific promotion/coupon code.

ParametersJSON Schema
NameRequiredDescriptionDefault
promotionIdYesThe promotion ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds no further behavioral context beyond fetching details, which is consistent with the annotations. It does not mention any additional behaviors such as availability of deleted promotions or authorization requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the verb and resource. It contains zero filler and conveys the core purpose efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter getter with a comprehensive output schema and strong annotations, this description is mostly complete. It adequately communicates what the tool does, though it leaves out any mention of how to obtain the ID or any scope (e.g., company-level) – but these are likely implicit in the system's design.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes promotionId with the description 'The promotion ID', achieving 100% schema coverage. The tool description adds no extra meaning beyond implying that the ID targets a specific promotion, so it does not improve upon the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get details') and the resource ('a specific promotion/coupon code'), which unambiguously distinguishes it from listing all promotions or mutating them. The specificity of 'a specific promotion' aligns with the single-ID parameter and the tool's name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving a single promotion by ID, but it does not explicitly state when to use this tool over alternatives like list_promotions or validate_promotion. No exclusions or alternative mentions are provided, leaving the context implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_segmentA
Read-onlyIdempotent
Inspect

Get customer segment details including type, criteria, and live member count.

ParametersJSON Schema
NameRequiredDescriptionDefault
segmentIdYesThe segment ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the 'live member count' detail, which suggests real-time computation rather than a cached count—a useful behavioral nuance beyond the annotations. No contradictions with annotations exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, tightly worded sentence that conveys the tool's purpose and key outputs. There is no redundancy or filler; every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple: one required parameter and a clear output intent. The presence of an output schema means return values need not be expanded in the description. The description covers the essential scope of the tool completely for an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the only parameter, segmentId, is fully described as 'The segment ID.' The tool description adds no extra meaning about the parameter. Per the rubric, high schema coverage yields a baseline of 3, and the description does not enhance it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Get customer segment details including type, criteria, and live member count.' This specifies the verb (get), resource (customer segment), and the particular aspects returned (type, criteria, live member count), distinguishing it from siblings like list_segments (which lists segments) and get_segment_members (which returns members).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the appropriate usage context by enumerating what the tool returns. An agent can infer this is for retrieving metadata of a specific segment rather than listing all segments or getting member lists. However, there is no explicit guidance on when to avoid this tool or alternative options, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_segment_membersA
Read-onlyIdempotent
Inspect

Get the members that belong to a specific segment.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
segmentIdYesThe segment ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering the safety profile. The description adds no extra behavioral details such as pagination or auth requirements, but it doesn't need to given the simple read-only nature and existing output schema. Adequate but not additive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, directly front-loaded with the action and target, with zero redundant words. It efficiently conveys the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only lookup with an output schema and complete parameter documentation, the description sufficiently covers the tool's function. No additional information is needed for the agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both 'segmentId' and 'limit' already described in the input schema. The description adds no parameter information beyond what the schema provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('members that belong to a specific segment'), clearly distinguishing it from sibling tools like get_segment (segment details) and set_segment_members (assignment). It fully clarifies the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case: fetching member membership for a particular segment. While it doesn't explicitly name alternatives or exclusions, the context is clear, and the sibling tool set_segment_members provides a natural contrast. This meets the 'clear context, no exclusions' level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_service_detailA
Read-onlyIdempotent
Inspect

Get full service details including addons, staff, resources, and tier pricing.

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceIdYesThe service ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the operation is known to be safe. The description adds the specific content scope (addons, staff, resources, tier pricing) but no additional behavioral traits such as authentication or rate limits. It 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It effectively communicates the tool's purpose and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with one parameter and an output schema, the description provides sufficient context. It does not need to explain return values because the output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter serviceId is fully described in the schema with 'The service ID,' providing 100% coverage. The description adds no further parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get full service details including addons, staff, resources, and tier pricing,' using a specific verb and resource. It distinguishes from list_services and get_service_package by emphasizing 'full' and listing specific included elements.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit alternatives or when-to-use guidance are provided. The word 'full' implies deeper detail than list services, but no direct comparison or exclusion is stated. Usage is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_service_packageA
Read-onlyIdempotent
Inspect

Get service package detail including applicability and selected booking service/event items.

ParametersJSON Schema
NameRequiredDescriptionDefault
packageIdYesService package ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds value by disclosing the tool returns 'applicability and selected booking service/event items' beyond basic package data, giving the agent expectations for the response content.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single, focused sentence that front-loads the action and resource, then adds useful detail. No superfluous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple getter with one required parameter, an output schema, and strong annotations, the description is sufficient. It doesn't mention error handling or edge cases, but those are less critical for a read-only, idempotent operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the packageId parameter with description 'Service package ID' (100% coverage). The tool description adds no additional semantics beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action ('Get'), the resource ('service package detail'), and additional specifics ('including applicability and selected booking service/event items'). This distinguishes it from list_service_packages (list) and get_service_detail (service, not package).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is for retrieving a single service package's detail, but it does not explicitly guide the agent on when to choose this over list_service_packages or get_service_detail. No alternatives or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_subscriptionA
Read-onlyIdempotent
Inspect

Fetch a single subscription with customer, tier, billing cycle, and renewal info.

ParametersJSON Schema
NameRequiredDescriptionDefault
subscriptionIdYesSubscription ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds information about the returned fields but does not disclose additional behavioral aspects such as error handling, authorization requirements, or pagination (though pagination is irrelevant here). The description aligns with annotations, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that is front-loaded with the action and resource, then lists the useful output scope. No redundant words or filler, every part adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter read tool with annotations covering safety and an output schema available, the description provides sufficient context by outlining key returned information. It could have mentioned the ID-based lookup or alternative tools, but that is not essential given the simplicity and existing structured metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for subscriptionId ('Subscription ID'), so the schema already fully documents the parameter. The tool description does not add any extra semantics about the parameter, such as format, source, or constraints. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetch') and resource ('a single subscription'), and specifies the included details (customer, tier, billing cycle, renewal info). This distinguishes it from list_subscriptions and mutation tools like create_subscription or cancel_subscription.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'single' implies this is for retrieving one specific subscription rather than listing all, but the description does not explicitly mention alternatives like list_subscriptions or state when not to use this tool. Usage context is implied but not fully articulated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_surveyA
Read-onlyIdempotent
Inspect

Get survey detail, including blocks, publishing status, visibility, settings, and response count.

ParametersJSON Schema
NameRequiredDescriptionDefault
surveyIdYesSurvey ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds context about the scope of the returned survey detail (blocks, publishing status, visibility, settings, response count), which goes beyond the annotations and helps set expectations. No contradiction found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that lists the key deliverables without unnecessary prose. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a simple read-only detail retrieval with one well-documented parameter, comprehensive annotations, and an output schema. The description sufficiently covers the purpose and scope for correct selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, surveyId, is documented in the schema with a clear description ('Survey ID'), giving 100% schema coverage. The tool description adds little beyond confirming it returns detail, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Get survey detail', and enumerates key components (blocks, publishing status, visibility, settings, response count). This clearly distinguishes it from sibling tools like list_surveys, get_survey_stats, and get_survey_responses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the phrase 'Get survey detail', and the sibling tool names suggest alternatives, but the description does not explicitly state when to use this tool versus alternatives. No exclusions or alternative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_survey_responsesA
Read-onlyIdempotent
Inspect

List responses for a survey.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax responses (default 50)
surveyIdYesSurvey ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds no behavioral context beyond the basic action, such as pagination, sorting, or response format, so it provides little value beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the verb and object, and contains no extraneous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple nature of the tool, the presence of an output schema, and complete schema parameter descriptions, the brief description is sufficient. It could mention pagination, but that is already encoded in the limit parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with clear parameter descriptions (surveyId, limit with default). The tool description adds no additional parameter semantics, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'List responses for a survey' uses a specific verb and resource, clearly distinguishing it from sibling tools like list_surveys or get_survey_stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving survey responses but provides no explicit guidance on when to use this tool vs alternatives, nor any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_survey_statsA
Read-onlyIdempotent
Inspect

Get response and invitation metrics for a survey overview dashboard.

ParametersJSON Schema
NameRequiredDescriptionDefault
surveyIdYesSurvey ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds useful context about returning aggregated response and invitation metrics, but it does not disclose potential details like date ranges, filtering, or pagination. With good annotation coverage, this is acceptable but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that immediately states the action and resource. Every word earns its place, with no filler or redundant repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter), strong annotations, and presence of an output schema, the description is fairly complete. It clearly states the purpose and intended use case. It could be slightly more specific about the nature of 'metrics' (e.g., counts vs. averages), but the output schema likely covers this, so the description is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage for the only parameter (surveyId: 'Survey ID'). The description adds no additional meaning about the parameter, and it is not needed since the schema fully documents it. The baseline of 3 applies because the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and clearly identifies the resource ('response and invitation metrics') and scope ('for a survey overview dashboard'). This distinguishes it from siblings like get_survey (survey details) and get_survey_responses (likely raw response data), making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for a survey overview dashboard' gives clear usage context, indicating this tool is intended for dashboard-style aggregated metrics. However, it does not explicitly mention alternatives or when not to use it, though the context strongly implies it should be used for summary metrics rather than raw data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_taskA
Read-onlyIdempotent
Inspect

Get detailed task information by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe task ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds minimal extra behavior beyond the fact that it returns 'detailed' task information, but does not disclose return structure or error behavior. With annotations present, this is adequate but not enhanced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that immediately conveys the tool's purpose with no unnecessary words. It is well-structured and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, output schema present, annotations covering safety), the description is sufficient. It could benefit from stating that it returns the full task object, but for a get-by-ID tool, the current description is complete enough. A score of 4 reflects the slight gap in specifying the return details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage for the single taskId parameter with its description. The tool description adds no extra detail about the parameter, such as format or source, so it does not exceed the schema's baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: retrieving detailed task information by ID. It uses a specific verb ('get') and resource ('task'), and the 'by ID' distinguishes it from listing tools like list_tasks, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool over alternatives, nor does it mention when not to use it. The 'by ID' implies it is for fetching a single task, but it lacks an explicit comparison or exclusion, so usage guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_ticket_statsA
Read-onlyIdempotent
Inspect

Get ticket counts grouped by status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description aligns with these. The description adds the functional detail that results are grouped by status, and there are no hidden side effects or parameters to disclose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loaded with the action ('Get'), with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, parameterless read-only statistical tool with an output schema present, the description is fully sufficient. It clearly communicates the tool's function, and the output schema covers return-value details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters and 100% schema description coverage, there is no parameter information to add. The baseline score of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets ticket counts grouped by status, using a specific verb and resource. It distinguishes itself from list_tickets and other stats tools by specifying the aggregation and grouping.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus alternatives like list_tickets or get_dashboard_stats. The usage is implied by the tool name and phrasing, but no when-to-use context is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_whatsapp_connection_statusA
Read-onlyIdempotent
Inspect

Check whether WhatsApp Business is connected for this company, including WABA/phone metadata and the latest agentic connect session state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only/destructive profile is covered. The description adds useful context beyond those hints by disclosing that it returns WABA/phone metadata and the latest agentic connect session state, giving the agent a clearer picture of what to expect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the action ('Check whether...') and concise but informative. Every phrase adds substantive meaning without redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (0 parameters, read-only, with an output schema), the description fully covers what the tool does, the inclusion of metadata, and the session-state aspect. The output schema can handle return-value details, so the description is complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4 as per rubric. The description does not need to explain parameter semantics, and no parameter info is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'Check' with clear resource: WhatsApp Business connection status for this company. It also specifies included details (WABA/phone metadata, latest agentic connect session state), which clearly distinguishes it from the sibling creation tool create_whatsapp_connect_link.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the getter nature and scope ('for this company'), but there is no explicit statement of when to use this over alternatives like create_whatsapp_connect_link or other get_* status tools. No 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.

issue_rewardsAInspect

Issue a gift/reward to multiple members. Requires a gift offer ID and member IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
expiresAtNoOptional ISO date when the reward expires
memberIdsYesMember/account IDs to receive the reward (max 50)
giftOfferIdYesThe gift offer/reward scheme ID to issue

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare this is a mutating, non-idempotent, non-destructive operation, but the description adds no further behavioral details. It does not disclose potential side effects, error handling, or partial success behavior, so the agent gains no extra insight beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences totaling 14 words. It front-loads the core action and states the key requirements without any filler, making it highly concise and structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, return values need not be explained. However, the description lacks context on edge cases such as duplicate member IDs, invalid gift offers, or partial failures, which are important for a batch mutating operation. It is minimally complete but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters have clear descriptions in the schema, covering their meaning and constraints (e.g., max 50 memberIds). The description's mention of 'gift offer ID and member IDs' adds minimal value beyond the schema, matching the baseline for well-documented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Issue'), the object ('a gift/reward'), and the scope ('to multiple members'). It distinguishes itself from sibling tools like list_reward_schemes or create_promotion by focusing on the distribution action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a prerequisite by stating 'Requires a gift offer ID and member IDs,' which hints that the user must first obtain an offer ID from another tool. However, it does not explicitly compare against alternatives or mention when not to use this tool, leaving usage guidance implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_audit_logsA
Read-onlyIdempotent
Inspect

List recent audit log entries for this company. Filter by action, resource, resourceId, user, source, outcome, destructive flag, and created date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return
actionNoExact tool/action name, e.g. delete_campaign
sourceNoAudit source, e.g. mcp, ai_agent, payment_webhook, merchant_api
userIdNoActor user ID
outcomeNoExecution outcome
resourceNoResource name, e.g. campaigns
resourceIdNoResource ID
destructiveNoWhether the audited tool was destructive
createdAfterNoISO timestamp lower bound
createdBeforeNoISO timestamp upper bound

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as read-only, non-destructive, and idempotent. The description adds only the 'recent' and 'this company' scoping, which is useful but minimal context. It does not contradict the annotations, but it goes little beyond what annotations already convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, with the first stating the core purpose and the second listing the filter fields. Every word earns its place, with no redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 10 optional filter parameters and an output schema, the description adequately conveys the intent and main scope ('recent', 'this company', filter categories). It does not mention ordering or pagination, but these are likely covered by the output schema and are not essential for basic use. The description is complete enough for an agent to understand what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description enumerates filter fields (action, resource, resourceId, etc.) but adds no semantic detail beyond what the schema property descriptions already provide. It does not explain parameter syntax, interaction, or any nuances.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists recent audit log entries for the current company, which is a specific verb+resource+scope. It lists the available filter dimensions but does not explicitly distinguish itself from the sibling tool search_audit_logs, so it loses one point for lack of sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a use case (listing recent audit logs with filters) but does not provide explicit guidance on when to use this tool versus alternatives like search_audit_logs or get_audit_log. No exclusions or alternative recommendations are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_bookingsA
Read-onlyIdempotent
Inspect

List bookings with filters for date range, status, service, staff, or member.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
dateToNoISO date — bookings up to this date
statusNoFilter by booking status
staffIdNoFilter by staff member ID
dateFromNoISO date — bookings from this date
accountIdNoFilter by member/account ID
serviceIdNoFilter by service ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the fact that the tool filters by date range, status, etc., but these are already present in the schema. No additional behavioral traits (e.g., pagination behavior, sort order, or inclusion of cancelled bookings) are disclosed, though the annotations lower the bar.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the core action ('List bookings') and followed by a concise enumeration of filters. There is no wasted language or redundant detail, making it appropriately sized and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with all optional filters, an output schema, and detailed parameter descriptions, the description is adequate. It does not explain return values (not needed due to output schema) and the annotations cover safety. The only minor gap is the lack of mention of the default limit, but that is documented in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description lists filter categories (date range, status, service, staff, member) that map to the schema properties (dateFrom/dateTo, status, serviceId, staffId, accountId), but it does not add new meaning beyond what the schema already provides. It serves as a helpful summary but no extra semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a specific verb and resource: 'List bookings'. It clearly distinguishes from sibling tools like get_booking_detail or cancel_booking by focusing on listing. The mention of filters (date range, status, service, staff, member) further clarifies the scope, making it unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a use case: when you need to list bookings with optional filters. However, it does not provide explicit guidance on when to use this tool versus alternatives (e.g., get_booking_detail for a single booking, or get_booking_stats for aggregate data). The context is clear but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_campaignsA
Read-onlyIdempotent
Inspect

List marketing campaigns (email, SMS, WhatsApp) with delivery stats.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort column
limitNoMax results (default 20)
orderNoSort order
searchNoSearch by campaign name
channelNoFilter by channel

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, establishing the safety profile. The description adds only 'with delivery stats' as return context, but does not disclose behavioral traits like pagination, default limits, or filter behavior beyond what the schema provides. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence of ten words with no fluff. It efficiently states the action and scope, earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with no required parameters, and both annotations and output schema are present, reducing the description's burden. However, the description's channel list omits 'push,' which might mislead users, and it does not mention any pagination behavior, though the schema covers the limit default. Overall adequate for the complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for all five parameters (sort, limit, order, search, channel), so the description does not need to add parameter details. The description mentions email, SMS, and WhatsApp but omits the 'push' channel in the schema enum, a minor discrepancy, though the schema covers it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'List' and identifies the resource 'marketing campaigns' with channel context (email, SMS, WhatsApp) and delivery stats. It clearly distinguishes this from sibling tools like create_campaign, update_campaign, and delete_campaign by indicating a read-only listing operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use guidance or alternatives are provided. The usage is implied by the name and description, but the description does not state exclusions or point to other tools for different scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_categoriesB
Read-onlyIdempotent
Inspect

List CMS post categories.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds no behavioral details beyond what the annotations already provide. It does not indicate whether all categories are returned, whether the list is paginated, sorted, or limited in any way, nor does it mention any company/context scoping. While annotations declare readOnlyHint and idempotentHint, the description itself contributes nothing to disclose expected behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no fluff, making it efficient and front-loaded. However, it is quite terse and could have carried a bit more context without becoming verbose, but it earns its place by clearly stating the operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, strong annotations, and an output schema), the description is minimally adequate but lacks contextual completeness. It does not differentiate from sibling category-listing tools nor explain any scope constraints, so an agent might misuse it for non-post categories. However, the structured fields cover safety and return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description is not responsible for explaining parameter semantics. The schema already covers everything, and the baseline for 0 params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'List CMS post categories' uses a specific verb and resource, clearly distinguishing it from sibling tools like list_product_categories and list_service_categories by specifying 'post categories'. This precisely indicates what the tool operates on, leaving no ambiguity about its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as list_product_categories, list_service_categories, or list_tags. It simply states the operation without any explicit context or exclusions, leaving the agent to infer usage solely from the resource name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_contactsA
Read-onlyIdempotent
Inspect

List contacts (people linked to CRM accounts), optionally filtered by account or search.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
searchNoMatch name, email, or phone
accountIdNoFilter by account

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds domain context ('people linked to CRM accounts') and the optional filter behavior, but no additional behavioral caveats beyond what annotations and schema imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. Every phrase contributes meaning: 'List contacts', the parenthetical clarification, and the optional filter note.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with full schema coverage, clear annotations, and an output schema, the description sufficiently covers the tool's purpose and options. It doesn't need to explain return values or pagination since the output schema and limit parameter description handle those.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides descriptions for all three parameters (limit, search, accountId) at 100% coverage. The description only names the account/search filters without adding syntax or format details, so it meets the baseline but doesn't elevate it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') with a specific resource ('contacts') and clarifies the domain as 'people linked to CRM accounts'. It also mentions optional filters by account or search, making it distinct from single-contact retrieval (get_contact) or contact creation (create_contact).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool (listing contacts with optional filters), but it does not explicitly state when not to use it or compare it to sibling tools like get_contact or search_crm. It gives clear context without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_conversationsA
Read-onlyIdempotent
Inspect

List messaging conversations across WhatsApp, Messenger, Instagram, Threads, SMS, email, and other enabled channels. Threads items are public conversations. Shows unread counts and last message time.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
searchNoSearch by contact name, phone, or email
statusNoFilter by conversation status
channelNoFilter by channel

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds context about the output including unread counts and last message time, and notes that Threads items are public conversations. This is useful extra behavioral disclosure beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with three short sentences that front-load the primary purpose. Every sentence provides value: the first states the function, the second clarifies a channel-specific nuance, and the third mentions key output fields. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a clear list operation with well-covered annotations and output schema. The description covers the channel scope, mentions public Threads nuance, and key output fields, making it complete for a list operation. No critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage of parameter descriptions, including enums for status and channel. The description does not add any additional parameter semantics beyond what the schema provides, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists messaging conversations across specified channels, using the verb 'List' with a specific resource. It also distinguishes from sibling tool get_conversation_messages by focusing on the list of conversations rather than individual messages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for browsing conversations across multiple channels, which is clear. It does not explicitly exclude alternatives or mention when to use a different tool, such as get_conversation_messages for viewing messages within a conversation, so it lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_custom_fieldsA
Read-onlyIdempotent
Inspect

List custom field definitions for CRM entities such as account, contact, deal, or booking.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityTypeYesEntity type the custom fields belong to

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds minimal behavioral context—only that it lists definitions—but doesn't disclose details like pagination or response structure. Since annotations cover the safety profile, a baseline 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that directly states the tool's purpose without any filler or redundant information. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one parameter and an output schema, the description is largely sufficient. It mentions the entity types and the nature of the result (definitions). It doesn't mention pagination or ordering, but the output schema likely covers return structure, so the description is adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema fully documents the single parameter (entityType) with an enum and description. The tool description repeats the entity examples but adds no new meaning beyond the schema. With 100% schema coverage, the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists custom field definitions, with a specific verb ('List') and resource ('custom field definitions'), and scopes them to CRM entities. It distinguishes from siblings like get_custom_field (singular) and get_custom_field_values, 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by specifying the entity types (account, contact, deal, or booking) for which the tool applies. It doesn't explicitly name alternatives or exclusions, but the context implies when to use it (when you need field definitions for a given entity type), earning a 4 rather than a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_dealsA
Read-onlyIdempotent
Inspect

List CRM deals (sales pipeline) with optional filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1)
limitNoItems per page (default 20)
stageNoFilter by stage
searchNoSearch by name or description
dealTypeNoFilter by deal type
accountIdNoFilter by account

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds no new behavioral details (e.g., pagination behavior, default ordering, or return shape), but it is consistent with annotations. With annotations present, the low bar is met.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence, eight words, front-loaded with verb and resource, with zero wasted language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool, the description is fully adequate. It has complete schema documentation, rich annotations, and an output schema, so no further return-value or pagination detail is needed. The single sentence covers the essential purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters. The description's 'optional filters' adds no meaning beyond the schema's property descriptions. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'List' with a clear resource 'CRM deals' and adds '(sales pipeline)' for context. It naturally distinguishes from singular operations like get_deal and create/update/delete deal siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'with optional filters' implies use for filtered listing, but there is no explicit guidance on when to prefer this over get_deal (single deal) or search_crm (broader search). No exclusions or alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_image_modelsA
Read-onlyIdempotent
Inspect

List AI image-generation models exposed to merchants (sanitized — provider/cost details hidden). Use to pick a modelCode for generate_post_cover.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. Description adds behavioral detail about sanitized output (provider/cost details hidden), which goes beyond annotations. No contradiction. Could provide more about pagination or rate limits, but for a simple list tool, it is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with clear verb-first structure, parenthetical clarification of sanitized output, and actionable usage tip. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, read-only annotations, and an output schema present, the description fully covers purpose, usage, and sanitization behavior. No additional details required for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has 0 parameters, so baseline is 4. Description adds no parameter-specific details needed; it references modelCode for another tool, which is not a parameter here. Schema covers all (empty) properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'List' and identifies exact resource 'AI image-generation models' with scope 'exposed to merchants'. It also references usage for picking a modelCode for generate_post_cover, distinguishing it from sibling tools like generate_image and generate_post_cover.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States explicit usage context: 'Use to pick a modelCode for generate_post_cover.' Clear when to use, but does not explicitly mention alternatives or exclusions. Provides sufficient guidance for model selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_invoicesA
Read-onlyIdempotent
Inspect

List invoices with optional filters. Use status "OVERDUE" to find unpaid invoices past due date.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort column
limitNoMax results (default 20)
orderNoSort order
searchNoSearch by invoice number, account name, email, or phone
statusNoFilter by invoice status

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds minor context about OVERDUE semantics but does not disclose additional behavioral traits such as pagination behavior or default sorting, which are partially present in the schema via the limit parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences totaling 17 words, front-loaded with the primary action. The second sentence provides a concrete, actionable example without redundancy or filler. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of a comprehensive input schema, output schema, and annotations, the description is sufficient. It covers the tool's core purpose and adds a useful filter guideline. No critical information is missing; the schema handles parameter details and the annotations handle safety and idempotency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all five parameters, so the baseline is 3. The description adds meaningful value by explaining that OVERDUE means 'unpaid invoices past due date,' which clarifies an enum value beyond the schema's simple 'Filter by invoice status.' This extra semantic helps with correct parameter selection.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List invoices with optional filters,' which is a specific verb-resource pair. It distinguishes this from invoice-related siblings like get_invoice (single invoice) and create_invoice/write tools, and the OVERDUE example reinforces the listing scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for using the tool—listing invoices with filters—and gives a concrete use case: using status OVERDUE to find unpaid past-due invoices. It does not explicitly mention alternatives like get_invoice for a single invoice, but the usage context is unambiguous enough to guide an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_knowledge_documentsA
Read-onlyIdempotent
Inspect

List merchant knowledge base documents (uploads + scraped URLs). Use reviewStatus/syncable to see what is ready for agent retrieval. Pass updatedAfter for delta sync. Reviewed content is fetched via GET /v6/merchant/ai/knowledge/{id}/content; source audit text is available with ?variant=extracted.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 100)
updatedAfterNoISO timestamp — only return docs updated after this. Use for delta sync.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint and idempotentHint, but the description adds valuable context: it lists both uploads and scraped URLs, explains that reviewStatus/syncable determine readiness, and clarifies that content is not returned here but fetched via a separate GET endpoint. This goes beyond annotations and helps the agent understand the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: purpose, usage guidance, and content retrieval note. Front-loaded with the primary action, no fluff, and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with only 2 params and an output schema, the description covers purpose, usage, delta sync, and how to retrieve content. It is complete enough for an agent to effectively decide when to invoke it and what to do with the results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters having descriptions, so baseline is 3. The description reinforces updatedAfter's role for delta sync, adding meaning beyond the schema. limit is not elaborated, but it's straightforward. The extra context for updatedAfter nudges the score to 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with 'List merchant knowledge base documents (uploads + scraped URLs)', clearly stating the verb and resource, and specifying the two types of documents. This distinguishes it from siblings like get_knowledge_document (single document retrieval) and add_knowledge_text (creation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: use reviewStatus/syncable to check readiness for agent retrieval, and pass updatedAfter for delta sync. It also hints that content is fetched via a separate endpoint, implying this tool only lists metadata. However, it doesn't explicitly mention alternative tools or exclusions, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_my_companiesA
Read-onlyIdempotent
Inspect

List all companies/organisations the current user has access to. Use this to see available orgs before switching.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as read-only, idempotent, and non-destructive. The description adds the key behavioral trait that the result is scoped to the current user's access, which is not evident from the annotations alone. This adds value beyond the structured metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no redundancy. The first sentence states the core action and scope, and the second provides usage context, making it highly efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, strong annotations, and an existing output schema, the description adequately covers purpose and usage. There is no missing critical information for an agent to decide when and how to invoke this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline score is 4. There are no parameter semantics to explain; the description correctly omits any parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all companies/organisations the current user has access to' with a specific verb and resource, distinguishing it from sibling tools like switch_company. It also frames the purpose as 'see available orgs before switching,' which adds contextual clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this to see available orgs before switching,' providing clear when-to-use context. It does not mention named alternatives or exclusion criteria, but the usage scenario is well-defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_notesB
Read-onlyIdempotent
Inspect

List notes attached to a member/account, booking, or ticket.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 10)
entityIdYesThe entity ID
entityTypeYesType of entity the notes are on

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the description does not need to repeat safety traits. The description adds the entity-scoping context but does not disclose beyond the schema. It 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that immediately conveys the tool's function. There is no wasted content or redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 comprehensive annotations, the description is sufficient for a simple list operation. However, it incompletely enumerates entity types by omitting 'invoice' and referring to 'member/account' instead of the schema's 'account', which could lead to incorrect invocation. The tool's simplicity mitigates this gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema descriptions fully document all three parameters (limit, entityId, entityType), achieving 100% coverage. The description adds minimal parameter semantics beyond the schema, and even introduces a slight inconsistency by omitting the 'invoice' entity type mentioned in the schema enum. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists notes attached to specific entities. However, it mentions 'member/account, booking, or ticket' while the schema includes 'invoice' as an allowed entity type, and 'member' is not in the enum. This minor mismatch does not obscure the core purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as other list_* tools for related resources. It does not mention any exclusions or prerequisites, leaving the agent without sufficient context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_notification_logsA
Read-onlyIdempotent
Inspect

List notification delivery logs for the current company. Recipients are masked by default for incident-response safety.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 50, max 100)
dateToNoISO timestamp upper bound
statusNoStatus filter
channelNoNotification channel filter
dateFromNoISO timestamp lower bound
entityIdNoEntity ID filter
eventTypeNoEvent type filter
recipientNoSubstring search on recipient

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds valuable behavioral context beyond annotations by disclosing that 'recipients are masked by default', which is important privacy-relevant behavior for an incident-response tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the action and resource, then adds a concise, useful caveat about masking. Every word earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 8 optional parameters, an output schema, and robust annotations, so the description does not need to explain return values. The one-sentence description covers the tool's purpose and an important behavioral nuance, but could have briefly mentioned filtering semantics or the default result set beyond 'for the current company'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 8 parameters are already well-documented. The description adds no additional parameter-level meaning, but it does implicitly connect the recipient parameter to the masking behavior. Baseline 3 is appropriate since the schema carries the burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with the specific verb 'List' and names the exact resource, 'notification delivery logs', clearly distinguishing it from sibling log tools like list_audit_logs. It also scopes to 'current company' and adds a meaningful detail about recipient masking.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for incident-response safety' implies usage during incident response, and 'for the current company' clarifies scope. However, it does not explicitly state when to prefer this tool over alternatives like list_audit_logs or search_audit_logs, nor does it provide exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_offer_rulesB
Read-onlyIdempotent
Inspect

List upsell/cross-sell offer rules with optional filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by rule type
limitNoMax results (default 20)
statusNoFilter by status

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. However, the description adds no extra behavioral context such as pagination behavior, ordering, or default result scope. It is purely a statement of action with no additional disclosure 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is direct and front-loaded with the main action and resource. There is no extraneous information, making it highly concise and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of a complete output schema and thorough annotations, the description suffices for a straightforward list operation. It does not need to explain return values due to the output schema, and the optional filters are self-evident. Minor gaps exist around result ordering or default behavior, but these are not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (type, limit, status) are already documented. The description adds no further detail beyond the schema, meeting the baseline for a well-described schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists offer rules, which is a specific verb and resource. It distinguishes itself from sibling tools like get_offer_rule (single rule) and create_offer_rule (creation). The mention of optional filters adds further specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as get_offer_rule or when to use filters. It simply says 'with optional filters' without any context or exclusions. This leaves the agent without direction on selecting this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_ordersA
Read-onlyIdempotent
Inspect

List shop orders with optional status and search filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
searchNoSearch by order number or customer name/email
statusNoFilter by order status

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds no behavioral context beyond these hints, such as pagination behavior or default response structure, so it fails to add value beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler, front-loading the primary action. Maximum efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, all parameters are documented in the schema, an output schema exists, and the annotations cover safety. The description sufficiently conveys the tool's scope for selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 100% of the three parameters (limit, search, status), so the baseline is 3. The description only restates the existence of status/search filters without adding nuance, examples, or format details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb 'List' with resource 'shop orders' clearly indicates a read operation, differentiating from get_order (single record) and update_order_status (mutation). The mention of optional filters adds scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states the general use case (listing orders) and the optional filters, but does not explicitly direct users to get_order for single orders or contrast with other list tools. Usage is implied rather than prescribed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_outletsA
Read-onlyIdempotent
Inspect

List shop outlets/locations for the company.

ParametersJSON Schema
NameRequiredDescriptionDefault
activeOnlyNoWhen true, only return active outlets (default false)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds scope ('for the company') but does not disclose behavior like default filters (e.g., whether inactive outlets are included) or pagination. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. It is concise and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple optional parameter, strong annotations, and the presence of an output schema, the description adequately covers the tool's purpose. No further detail is needed for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the activeOnly parameter fully described. The description adds no additional parameter context, but since the schema is sufficient, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('shop outlets/locations') with scope ('for the company'), clearly distinguishing it from mutation tools like create_outlet and update_outlet. It unambiguously states what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (listing outlets) but does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions or alternative tools. This is clear enough for basic inference but lacks explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_plan_optionsA
Read-onlyIdempotent
Inspect

List active FavCRM plans with prices, quotas, included modules, and whether each is the current plan.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds useful context by specifying that only active plans are listed and that each plan is marked as current or not. This is credible but not deeply rich behavioral disclosure; for this simple list operation it suffices.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that immediately states the action and resource, then lists the key returned attributes. No filler words or redundant information; every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter, read-only list tool with an output schema and strong annotations, the description is complete. It specifies the exact scope (active plans) and the meaningful distinctions (current plan flag), which is enough for an agent to select and invoke the tool confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema coverage is 100% (no properties). With no parameters, the description is not required to add parameter semantics; the baseline of 4 applies because there is nothing to explain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'List' and clearly identifies the resource ('active FavCRM plans') as well as the exact data returned (prices, quotas, included modules, current plan status). This clearly distinguishes it from sibling tools like get_plan_status or list_subscriptions, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly establishes when to use the tool: when you need an overview of active FavCRM plans and their details. It does not explicitly call out alternatives or exclusions, but the context is clear enough for a simple no-parameter list operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_postsA
Read-onlyIdempotent
Inspect

List CMS posts (blog posts and/or pages) with optional filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by post type slug (blog_post, page, or any custom type — see list_post_types).
limitNoMax results (default 20)
searchNoSearch by title
statusNoFilter by status

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool as read-only, idempotent, and non-destructive, so the description's 'List' verb matches. It adds slight value by clarifying that the posts can be blog posts and/or pages, which is not explicit in the schema's type parameter description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence with no redundant words. It immediately states the action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple list operation, comprehensive annotations, full parameter descriptions in the schema, and an output schema, this one-sentence description is sufficient for an agent to understand the tool's purpose and scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides full descriptions for all four parameters, so the description's mention of 'optional filters' adds no additional semantics. The schema already documents type, limit, search, and status.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List'), names the resource ('CMS posts'), and clarifies scope ('blog posts and/or pages'), which distinguishes it from sibling tools like get_post, create_post, update_post, and delete_post.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is for broad listing operations with filters but does not explicitly state when to use this tool over alternatives like get_post or list_post_types. It lacks exclusions or alternative tool references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_post_type_fieldsA
Read-onlyIdempotent
Inspect

List the custom field schema for a post type. Use this before creating posts to know which keys to pass in meta and what types they expect.

ParametersJSON Schema
NameRequiredDescriptionDefault
postTypeIdYesPost type ID (from list_post_types)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering the safety profile. The description adds usage context but no additional behavioral traits (e.g., limitations, side effects) beyond what annotations and the output schema provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no fluff. The first sentence states the core purpose; the second gives a concise usage hint. Information is front-loaded and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one parameter, good annotations, and an output schema, the description is complete. It answers what the tool does and when to use it, making it fully adequate for agent selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% coverage for postTypeId with a clear description. The tool description doesn't add meaningful parameter semantics beyond restating the purpose, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action 'List' and the resource 'custom field schema for a post type'. This distinguishes it from sibling tools like list_post_types and list_custom_fields by specifying the post type context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: 'Use this before creating posts to know which keys to pass in meta and what types they expect.' This tells the agent when to use the tool, though it does not mention alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_post_typesA
Read-onlyIdempotent
Inspect

List all post types defined for this company (built-in: blog_post, page; plus any custom types).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the scoping detail 'for this company' and the built-in type names, but does not disclose return format or pagination. This is acceptable for a parameterless listing tool, but the description's added context is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the verb 'List', and includes useful examples of built-in types without unnecessary detail. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless listing tool with an output schema present, the description is complete. It states the action (list), the resource (post types), the scope (company), and content (built-in + custom). No additional context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema provides complete coverage (100% vacuously). The description adds meaning by explaining what will be listed, but there are no parameter semantics to elaborate on, so the baseline of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all post types for the company, names specific built-in examples (blog_post, page), and mentions custom types. This distinguishes it from sibling tools like list_posts (which lists posts) and create_post_type (which creates post types).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for enumerating post types but does not explicitly contrast with alternatives such as list_post_type_fields or list_posts. There is no 'when to use / when not to use' guidance, so it relies on the tool's name and simple purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_product_categoriesA
Read-onlyIdempotent
Inspect

List all product categories for the shop.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds 'all' and 'for the shop', implying no filtering and a shop-specific scope, which is modest extra context. It doesn't mention pagination or response nuances, but these are partially covered by the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence: 'List all product categories for the shop.' Every word adds value and there is no redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 0 parameters, strong annotations, and an existing output schema, the description is fully complete for a simple list-all operation. It clearly conveys the tool's entire behavior without needing additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 properties, so the baseline is 4. The description's 'all' clarifies that no filters apply, which adds a small layer of meaning beyond the schema, but not enough to warrant a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'List' and resource 'product categories', clearly identifying this as a read-only enumeration of product categories. It distinguishes from sibling tools like list_service_categories and list_categories through the resource qualifier, but does not explicitly mention alternatives or exclusions, preventing a top score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this vs. generic list_categories or list_service_categories. The description only states what it does, leaving the agent to infer usage from the tool name rather than explicit context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_productsA
Read-onlyIdempotent
Inspect

List shop products with optional filters by name, status, or category.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
searchNoSearch by product name
statusNoFilter by status
categoryIdNoFilter by category ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds only that filters exist, which is already in the schema. No additional behavioral traits such as pagination or default limits are disclosed, so it adds minimal 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It immediately conveys the action and key optional filters, achieving maximum conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, complete parameter schema, and rich annotations, the description is fully adequate. An output schema exists, so return values are covered elsewhere. No critical information is missing for an agent to select and invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with all parameters (limit, search, status, categoryId) already documented in the schema. The description restates that filtering by name/status/category is possible but adds no new semantic meaning beyond grouping these filters, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List shop products with optional filters by name, status, or category,' using a specific verb and resource. It distinguishes the tool from siblings like get_product, create_product, and list_product_categories, which focus on single-product retrieval, creation, or category listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a user needs multiple products with optional filters, distinguishing it from single-product tools. However, it lacks explicit exclusions or references to alternative tools, so it doesn't earn a 5. The context is clear enough for a typical listing scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_promotionsA
Read-onlyIdempotent
Inspect

List promotion/coupon codes with optional status filter.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
searchNoSearch by name
statusNoFilter by status

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering the safety profile. The description adds no behavioral context beyond the 'optional status filter', which is already in the schema. It 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It efficiently captures the core purpose and key optionality, meeting the bar for concise and well-structured descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

As a simple list operation with three optional parameters, a full output schema, and strong annotations, the description is complete. It conveys the essential purpose, and the structured fields handle the remaining details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are documented. The description adds no extra semantics beyond what the schema provides (e.g., 'limit', 'search', 'status' are all described). Baseline 3 applies because schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and the resource ('promotion/coupon codes') with an optional filter. It distinguishes from singular 'get_promotion' and other list_* tools, achieving high clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the verb 'List' and the resource, but there is no explicit guidance on when to use this tool versus alternatives like 'get_promotion' or 'create_promotion'. No exclusions or conditions are mentioned, only optional status filtering.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_resourcesA
Read-onlyIdempotent
Inspect

List booking resources (rooms, equipment, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds a bit of context by listing example resource types, but does not disclose additional behaviors such as default pagination or return format, though the output schema likely covers that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. It is concise and easy to parse, with examples included for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the presence of an output schema, and comprehensive annotations, the description is nearly complete. The only slight gap is the lack of explicit mention of access scope or alternative tools, but for a straightforward read-only listing tool, it is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% coverage with the 'limit' parameter described as 'Max results (default 20)'. The description adds no additional meaning beyond what the schema already provides, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists booking resources (rooms, equipment, etc.), using a specific verb and resource type. It distinguishes itself from sibling tools like list_services or list_staff by explicitly scoping to booking resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used to list booking resources, but it does not mention when to use it over alternatives or any exclusions. There is no explicit guidance on pagination or filtering beyond the schema's limit parameter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_reward_schemesA
Read-onlyIdempotent
Inspect

List loyalty reward schemes (points/stamps programs) configured for this business.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
searchNoSearch by name

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds valuable context by clarifying that reward schemes refer to points/stamps programs and that results are limited to the current business, which goes beyond the structured metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that begins with the verb and contains no clutter. Every term ('loyalty', 'reward schemes', 'points/stamps programs', 'configured for this business') adds specificity without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with two optional filters, the description is adequate. The presence of an output schema and strong annotations means the description does not need to explain return values or safety. It does not discuss potential edge cases like pagination or empty results, but these are minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: both 'limit' and 'search' parameters already have clear descriptions in the input schema. The tool description adds no additional semantic meaning to these parameters, so it relies on the schema to convey parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb 'List' and the resource 'loyalty reward schemes (points/stamps programs)'. It also adds the scoping phrase 'configured for this business,' which distinguishes it from sibling tools like list_promotions or list_tiers. This is a specific verb+resource+scope definition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool based on its purpose, but it does not explicitly state when to use it versus alternatives or mention exclusions. There is no comparison with related list tools such as list_tiers or list_offer_rules, leaving the agent to infer the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_segmentsA
Read-onlyIdempotent
Inspect

List customer segments. Segments group members by criteria for targeted campaigns.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
searchNoSearch by segment name

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not explicitly state read-only behavior, but annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. It adds no operational details beyond the domain fact about segment grouping, so it meets the lower bar set by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with the action front-loaded. The second sentence provides meaningful context without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, read-only list operation with comprehensive annotations, full schema coverage, and an output schema, this description is sufficient. It clearly identifies the resource and leaves behavioral details to the structured data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters (limit and search) are fully described in the schema with 100% coverage, so the description does not need to elaborate. The description adds no parameter-specific guidance, which is acceptable given the high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list) and resource (customer segments), distinguishing it from single-segment tools like get_segment. The second sentence adds useful context about what segments are used for.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as get_segment, preview_segment_count, or set_segment_members. The description is purely functional and lacks exclusions or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_service_categoriesA
Read-onlyIdempotent
Inspect

List service categories (groups for booking services like "Treatments", "Classes").

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds context about what service categories are (groups for booking services) but does not disclose any additional behavioral traits like return format or pagination. With annotations, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single concise sentence with the verb first, immediately followed by a clarifying parenthetical. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, no parameters, and an output schema present, the description fully covers the purpose. It doesn't need to explain return values because the output schema exists. The annotations cover safety, so the description is complete for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema is empty with 100% coverage. The description adds no parameter details, but none are needed. Baseline for zero parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('service categories'), and the parenthetical clarifies what service categories are. It distinguishes from sibling tools like 'list_categories' by explicitly narrowing to service-related categories.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes clear it's for listing service categories, implying use when those are needed. However, it does not explicitly differentiate from the similar 'list_categories' tool or mention when not to use it, leaving some ambiguity for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_service_packagesA
Read-onlyIdempotent
Inspect

List service packages/prepaid session bundles with optional search, status, sorting, and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort column: name, price, or createdAt
limitNoMax results (default 20)
orderNoSort order
searchNoSearch package name
statusNoFilter by package status

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds the optional filtering capabilities but does not disclose additional behavioral traits like default pagination behavior or response size limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that efficiently conveys the tool's purpose and capabilities with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existing output schema and annotations, the description is sufficient for a simple list-with-filters tool. It names the key filtering dimensions and does not need to explain return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema provides 100% coverage with descriptions for all five parameters (search, status, sort, order, limit). The description merely mentions 'search, status, sorting, and pagination' without adding syntax, defaults, or relationships beyond what schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'List' with the resource 'service packages/prepaid session bundles' and specifies optional search, status, sorting, and pagination. This clearly distinguishes it from get_service_package (single fetch) and mutate operations like update_service_package.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing service packages with filters but does not explicitly state when to use it over alternatives such as get_service_package for single-package retrieval or search_crm for broader search. No exclusions or when-not cases are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_servicesB
Read-onlyIdempotent
Inspect

List booking services with name, price, duration, and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
searchNoSearch by name
statusNoFilter by status

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, establishing the safe read-only nature. The description adds the returned fields but no additional behavioral context such as pagination, default limits, or filtering behavior beyond what schema already documents. This satisfies the lower bar with annotations present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the action and resource. Every word contributes meaning, and it is appropriately sized for a simple listing tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity, full schema coverage, presence of an output schema, and safety annotations, the description is adequate. It covers the core return fields and implies the listing behavior; only the lack of sibling differentiation and usage context prevents a higher score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameter semantics are fully documented in the schema. The description focuses on output fields rather than adding meaning to the limit, search, or status parameters, so it does not exceed the baseline level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists booking services and specifies the fields returned (name, price, duration, status). The verb 'list' and resource 'booking services' are specific and unambiguous, distinguishing it from category/package/schedule listing siblings, though it does not explicitly reference alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus other list tools like list_service_categories or list_service_packages. It simply states the function without contextual cues, exclusions, or alternative tool references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_service_schedulesB
Read-onlyIdempotent
Inspect

List schedule windows for booking services.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
dateToNoYYYY-MM-DD
staffIdNoStaff member ID
dateFromNoYYYY-MM-DD
serviceIdNoService ID
isOverrideNoFilter to override entries only
resourceIdNoResource ID (room/equipment)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. However, the description adds no additional behavioral context such as filtering behavior, pagination, or the nature of 'schedule windows' beyond the minimal purpose, missing an opportunity to add value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that is front-loaded with the action and subject. It conveys the core purpose without any superfluous words, earning top marks for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of a rich input schema (7 optional filter parameters), an output schema, and clear annotations, the description's job is primarily to state the purpose, which it does. It lacks usage guidance, but that is scored separately; for a list operation with strong structured metadata, the description is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all 7 parameters, each with clear descriptions (e.g., 'Staff member ID', 'YYYY-MM-DD'). The description does not add any parameter semantics beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and a specific resource ('schedule windows for booking services'), clearly indicating the tool's function. Although it doesn't explicitly differentiate from sibling tools like get_available_slots, the term 'schedule windows' is distinct enough to convey the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as get_available_slots or list_bookings. There are no usage scenarios, exclusions, or hints about which tool fits which situation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_shipping_methodsA
Read-onlyIdempotent
Inspect

List all shipping methods configured for the shop.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds that it lists 'all' shipping methods and 'configured for the shop', which gives scope context, but no further behavioral details like ordering or pagination. This is reasonable but not overly rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no unnecessary words, and immediately states the verb and object. It is front-loaded and concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and an output schema present, the description fully covers what the tool does. It is a complete statement of functionality, and no additional context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and schema description coverage is 100% (vacuously). Since there are no parameters to describe, the baseline of 4 applies; the description does not need to add parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'List' and a specific resource 'shipping methods', and clarifies scope by saying 'all' and 'configured for the shop'. This clearly differentiates it from other list_* siblings like list_services or list_products.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you want to see shipping methods, but does not explicitly state when to prefer this over alternatives or provide any exclusions. With many sibling list tools, the resource name makes it clear enough but guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_staffB
Read-onlyIdempotent
Inspect

List staff/team members in the business.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only the scope 'in the business' but does not disclose behavioral details such as pagination, filtering, or whether archived/inactive staff are included.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that directly states the verb and resource. It contains no filler or redundant information, earning a perfect conciseness score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with good annotations and an output schema, the description is minimally sufficient. However, it lacks any context about use cases, status of listed staff, or how it differs from related list tools, leaving some gaps for an agent deciding when to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers the single optional parameter 'limit' with a clear description (Max results, default 20), so schema coverage is 100%. The tool description adds no additional meaning beyond what the schema already provides, warranting the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list) and the resource (staff/team members) with the scope 'in the business'. It is specific and unambiguous, but does not explicitly differentiate from similar list tools such as list_contacts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention exclusions, prerequisites, or scenarios where another tool like list_contacts would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_subscriptionsA
Read-onlyIdempotent
Inspect

List member subscriptions. Filter by status to find active, cancelled, or past-due subscriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
statusNoFilter by subscription status

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds minimal behavioral context beyond the schema, such as the ability to filter by status. With annotations present, the bar is lower, and this description meets it without adding rich behavioral details like response format or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence that leads with the primary action ('List member subscriptions') and follows with an optional filter use case. It is concise, front-loaded, and every word contributes to understanding the tool's purpose and typical usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple list tool with only two optional parameters, an output schema present, and strong annotations (readOnly, idempotent, non-destructive). The description, combined with the schema and annotations, provides complete context for what the tool does and how to use it. No significant information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for both parameters (limit and status), so the baseline is 3. The description reinforces the status parameter by mentioning filtering by active/cancelled/past-due, but it does not add meaning beyond what the schema already provides. It meets the baseline without going above.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists member subscriptions, using the specific verb 'list' and the resource 'subscriptions'. It distinguishes from sibling tools like get_subscription (singular fetch), create_subscription, cancel_subscription, etc., by implying a collection listing operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: use this to list subscriptions, optionally filtering by status. It does not explicitly mention alternatives or exclusions, but the 'list' vs 'get' pattern in sibling names implies the distinction. This is slightly above implied usage, as it gives a concrete filtering use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_survey_invitationsA
Read-onlyIdempotent
Inspect

List survey invitation history without exposing token hashes or old invitation tokens.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax invitations (default 50)
surveyIdYesSurvey ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds valuable behavioral context by stating that token hashes and old invitation tokens are not exposed, informing the agent about data filtering and privacy behavior beyond what annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that immediately states the action and resource. It is front-loaded, concise, and contains no unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, no nested objects), the presence of annotations for safety, and the existence of an output schema, the description is complete. It covers the essential purpose and a key behavioral constraint, while schema and output schema handle the remaining technical details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for both parameters (surveyId and limit), so the schema already fully documents them. The description adds no additional parameter semantics 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'List survey invitation history'. This clearly distinguishes it from sibling tools like create_survey_invitation (creation) and list_surveys (surveys themselves). The added qualifier about not exposing token hashes further clarifies the tool's scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is implied by the tool's name and description, but there is no explicit guidance on when to use this tool versus alternatives or when not to use it. No exclusions or comparisons to sibling tools are provided, leaving usage to be inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_surveysA
Read-onlyIdempotent
Inspect

List surveys with optional status/search filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
searchNoSearch survey title or description
statusNoFilter by survey status

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the tool is read-only, idempotent, and non-destructive. The description adds that optional status/search filters are supported, which is a behavioral trait not covered by annotations. However, it omits other behaviors like pagination or ordering. Given the strong annotation coverage, this is adequate 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence: 'List surveys with optional status/search filters.' It is concise, with every word contributing meaning and no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with three optional parameters and an output schema, the description is sufficiently complete. It does not explain return values (covered by the output schema) or safety (covered by annotations). It might lack explicit pagination details, but that is not necessary for the core purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% description coverage for all three parameters (limit, search, status), including enums for status. The description's mention of 'status/search filters' merely repeats the schema's parameter semantics without adding additional meaning, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'List surveys' with a specific verb and resource. It also mentions optional status/search filters, which further clarifies the scope and distinguishes it from sibling tools like get_survey or get_survey_stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (listing surveys with filters) but provides no explicit guidance on when to use this tool versus alternatives such as get_survey for retrieving a single survey. It neither names alternatives nor suggests exclusions, so it relies on inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_survey_workflowsA
Read-onlyIdempotent
Inspect

List automation workflows attached to a survey.

ParametersJSON Schema
NameRequiredDescriptionDefault
surveyIdYesSurvey ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds no extra behavioral context like pagination, ordering, or workflow status, but 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one concise sentence with no filler, front-loaded with the verb and resource. It conveys the essential information efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with one parameter and an output schema, the description is sufficient. The existence of an output schema means return values do not need to be explained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the single parameter (surveyId) as 'Survey ID' with 100% coverage. The description does not add details about the format or how to obtain the ID, but the high schema coverage sets a baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies a specific verb (List) and resource (automation workflows), scoped to a survey. It distinguishes from sibling tools like list_surveys or get_survey_responses by focusing on workflows attached to a survey.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternatives are mentioned. The usage is implied by the name and description—use when needing workflows for a survey—but there is no guidance distinguishing from upsert_survey_workflow or other list tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tagsA
Read-onlyIdempotent
Inspect

List all available tags for the merchant.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoSearch tags by name

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds 'for the merchant' as scoping context, which is useful, but it does not disclose additional behaviors like pagination, filtering limits, or return format. With annotations carrying the main burden, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the action and resource. There is zero filler, making it highly efficient and direct.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter, rich annotations, and an output schema), the description is complete. It clarifies the merchant scope, and the output schema handles return values, so no further detail is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the only parameter 'search' (100% schema coverage), so the description need not repeat it. The description's 'all available tags' aligns with the optional search filter, but it doesn't add extra meaning beyond the schema. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'List all available tags for the merchant.' It uses a specific verb ('List') and resource ('tags'), with a scope ('for the merchant') that distinguishes it from sibling tools like create_tag, delete_tag, and list_categories.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, scenarios, or contrast with sibling list tools. The only implication is that it lists tags, but no explicit when-to-use or exclusion criteria is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tasksA
Read-onlyIdempotent
Inspect

List tasks with optional status, assignee, and account filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
statusNoFilter by task status
accountIdNoFilter by related CRM account
assigneeIdNoFilter by assignee company_members.id

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds no behavioral context beyond those annotations, such as pagination, authentication needs, or result ordering, so transparency is limited.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the tool's purpose and key optional filters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with a fully described schema and an output schema, this description is sufficient. It covers the core purpose and filtering options without omitting critical information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are documented in the schema. The description merely restates the filter names (status, assignee, account) without adding any extra semantic value beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (List) and resource (tasks) with optional filters, making it unambiguous. It is easily distinguished from sibling tools like get_task, update_task, and create_task due to its specific verb and resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving tasks with optional filters, but does not explicitly state when to use this versus alternatives such as get_task or search_crm. No exclusions or alternative tool names are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_templatesA
Read-onlyIdempotent
Inspect

List the company's WhatsApp message templates with their Meta approval status (PENDING / APPROVED / REJECTED). Check this to see which templates are approved before referencing one in a campaign.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax templates to return (default 20)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is clear. The description adds meaningful behavior by specifying that it returns approval status (PENDING/APPROVED/REJECTED) and directs users to verify before campaign use, going beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no redundant information. It front-loads the core action and resource, then adds the usage context, making every word earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with one optional parameter and full schema coverage, the description is complete. It clearly states what is returned and why to use it. The output schema exists to describe return structure, so no further detail is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with the 'limit' parameter fully described in the schema (max 100, default 20). The description does not add additional parameter context, but since the schema does the heavy lifting, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb 'List' and the resource 'WhatsApp message templates' with their Meta approval status, making it distinct from other list_* siblings. It also identifies the scope as 'the company's' templates and names the status field values, providing a precise and unambiguous purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: 'Check this to see which templates are approved before referencing one in a campaign.' This explains the practical use case, though it does not explicitly state when not to use it or name alternative tools, which would earn a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_ticketsB
Read-onlyIdempotent
Inspect

List support tickets with optional filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
searchNoSearch by subject
statusNoFilter by status
categoryNoFilter by category
priorityNoFilter by priority
accountIdNoFilter by CRM account ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description only adds 'with optional filters', which is already evident from the schema, providing minimal extra behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no superfluous words. It efficiently communicates the tool's purpose without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich input schema, output schema, and annotations, the description is adequate but sparse. It does not mention pagination or any edge cases, but the schema's limit parameter and descriptions cover the essentials. The tool is simple enough that this level of detail is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All six parameters have descriptions in the schema (100% coverage), and the description does not elaborate on parameter semantics beyond the schema. The generic mention of 'optional filters' adds no meaningful detail about specific parameter behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'list' and identifies the resource as 'support tickets', clearly conveying the tool's function. It does not explicitly contrast with sibling tools like get_ticket or get_ticket_stats, but the verb and resource are unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to prefer this tool over alternatives such as get_ticket or get_ticket_stats. It merely states the action without context or exclusions, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tiersA
Read-onlyIdempotent
Inspect

List all membership tiers with member counts and stats.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the output detail of 'member counts and stats,' but since an output schema exists, this is only minor additional context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler or redundancy. Every word contributes to the tool's purpose and expected output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless, read-only list tool with a rich output schema and comprehensive annotations, the description is fully sufficient. It clearly states what is listed and that aggregate statistics are included.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the description mentions all relevant inputs (none). The schema is fully covered, so no parameter documentation is needed beyond what is already present.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List'), names the resource ('membership tiers'), and defines scope ('all') while adding the useful detail that member counts and stats are included. This clearly distinguishes it from singular tools like get_membership_tier.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when you need a complete list of membership tiers, but it does not explicitly state when to prefer this over alternatives such as get_membership_tier. No exclusion or alternative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mark_deal_lostAInspect

Mark a CRM deal as lost. Requires a lost reason.

ParametersJSON Schema
NameRequiredDescriptionDefault
dealIdYesThe deal ID
reasonYesWhy the deal was lost

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a write operation (readOnlyHint=false) and not idempotent. The description adds that a lost reason is required, which is a useful behavioral constraint, but it doesn't disclose side effects (e.g., whether the deal becomes immutable, affects reporting, or is reversible). This is acceptable given annotations, but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short, direct sentences. It front-loads the primary purpose and immediately notes the key prerequisite. There is no fluff or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple state-change tool, the description covers the core action and the mandatory input. With an output schema present and full parameter descriptions, the description is adequate. However, it lacks context about postconditions (e.g., whether the deal is closed, audit trails, or restrictions) which would be valuable for an AI agent deciding on this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides full descriptions for both parameters (dealId: 'The deal ID', reason: 'Why the deal was lost'), with 100% coverage. The description's mention of 'requires a lost reason' merely reinforces a required parameter without adding new semantic detail, so it meets the baseline but doesn't exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Mark a CRM deal as lost.' This specifies the verb (mark), the resource (CRM deal), and the desired state (lost), distinguishing it from sibling tools like mark_deal_won or update_deal_stage. The requirement for a lost reason further clarifies the intent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly communicates when to use this tool: when a deal is decided to be lost and you need to record that outcome. However, it does not provide explicit exclusions or mention alternative tools (e.g., 'instead of updating the stage manually'), so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mark_deal_wonAInspect

Mark a CRM deal as won and set close date.

ParametersJSON Schema
NameRequiredDescriptionDefault
dealIdYesThe deal ID
closingDateNoOptional close date (YYYY-MM-DD)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description adds little behavioral context. It simply restates the operation without mentioning side effects, reversibility, permissions, or what happens if the deal is already won. The 'set close date' part is already covered by the parameter schema, so no meaningful extra transparency is provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that conveys the essential action. It is well-structured and directly states the purpose, with no redundant words or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, and the schema/annotations cover parameters and safety cues. However, the description lacks context about usage relative to closely related tools (e.g., mark_deal_lost) and any prerequisites or consequences of the action. It is enough for basic invocation but not fully complete for nuanced real-world decisions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions for both parameters. The tool description mentions 'set close date', which reinforces the closingDate parameter, but adds no new meaning beyond what the schema already provides. The description neither clarifies formats nor prerequisites, so it stays at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Mark a CRM deal as won and set close date.' This uses a specific verb and resource, and distinguishes it from sibling tools like mark_deal_lost by explicitly noting the 'won' outcome and the additional action of setting a close date.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (you use this to mark a deal won) but provides no explicit guidance about when to use this versus alternatives like mark_deal_lost or update_deal_stage. There are no stated exclusions or alternative recommendations, so guidance is only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mark_invoice_sentAInspect

Mark an invoice as sent to the customer (transitions DRAFT → OPEN). Use after delivering the invoice via email or share link. Idempotent.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceIdYesInvoice ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description correctly indicates a non-read-only action, but contradicts the annotation by claiming 'Idempotent' while idempotentHint is false. This is a serious inconsistency, so the score is 1.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the action, then usage context and a claim. No wasted words, efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple state-transition tool with one parameter and an output schema, the description is largely adequate. However, the idempotency claim contradicts annotations and it doesn't address what happens if the invoice isn't in DRAFT state, leaving some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema fully documents the single parameter (invoiceId) with 100% coverage, so the baseline is 3. The description adds no additional semantic meaning beyond the schema, which is acceptable for such a simple parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action (mark as sent), the resource (invoice), and the state transition (DRAFT → OPEN). This distinguishes it from sibling tools like record_invoice_payment or void_invoice.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use after delivering the invoice via email or share link, providing clear timing context. Though alternatives aren't named, the 'Use after...' guidance effectively differentiates it from other invoice actions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mark_no_showAInspect

Mark a booking as no-show when the customer did not attend.

ParametersJSON Schema
NameRequiredDescriptionDefault
bookingIdYesThe booking ID to mark as no-show

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a mutating operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds the semantic of marking as no-show but does not disclose additional behavioral traits like reversibility, prerequisites, or side effects. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the verb and object. It contains no unnecessary words and is easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter, a clear purpose, and an output schema, the description is sufficiently complete. It provides the essential context for an agent to decide when and how to use it, and the output schema handles return-value documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the single parameter (bookingId) with a clear description, yielding 100% schema coverage. The description does not add any extra semantics beyond what the schema already provides, so it meets the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Mark'), the resource ('a booking'), and the specific condition ('when the customer did not attend'). This distinguishes it from related booking tools like cancel_booking and complete_booking.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'when the customer did not attend' provides explicit guidance on when to use this tool. However, it does not mention alternatives or exclusion criteria, such as 'use cancel_booking if the customer cancels in advance.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pause_subscriptionAInspect

Pause an active subscription (status → past_due, no further auto-renew). Use resume_subscription to reactivate.

ParametersJSON Schema
NameRequiredDescriptionDefault
subscriptionIdYesSubscription ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate mutating, non-idempotent, non-destructive behavior. The description adds valuable context beyond annotations by specifying the exact status transition to 'past_due' and the fact that auto-renewal stops, while noting reactivation via resume_subscription.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the core action and state change, followed by a relevant pointer to resume_subscription. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 1-parameter tool with an output schema, the description adequately covers the behavior, including the active-subscription precondition, the resulting status, and the reactivation path. No critical context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the parameter 'subscriptionId' described as 'Subscription ID', so the schema carries the semantic weight. The description does not add further parameter details, but this is unnecessary given the high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Pause') and resource ('active subscription'), and clearly identifies the state change (status → past_due, no further auto-renew). This distinguishes it from sibling tools like cancel_subscription and resume_subscription.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly mentions resume_subscription as the reactivation path, giving clear context for when to use the reverse operation. However, it does not explicitly contrast with cancel_subscription, which could leave the agent guessing about the difference between pausing and cancelling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_workroom_messageAInspect

Post an internal message from an AI colleague into a Workroom thread. Use this to report findings, ask the owner for approval, or share source links after reading CRM/Inbox data. This does not send anything to customers.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentIdYesAI colleague ID that is a participant in the thread
contentYesMessage to show in Workroom. Markdown is allowed.
metadataNoOptional generic metadata, e.g. {sourceRefs:[{type:"inbox_conversation",id:"..."}]}
threadIdYesWorkroom thread ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide no safety/behavior coverage (all hints false), so the description carries the burden. It discloses the internal nature and customer exclusion, but does not describe permissions, persistence, or result behavior beyond posting. Adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each adding value: purpose, use cases, and exclusion. 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 4 params (one nested) and an output schema, the description covers key usage context and boundaries. It could mention metadata handling or participant requirements, but the schema covers parameter specifics and the output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 100% of parameters, so the baseline is 3. The description adds no additional parameter-level detail beyond what the schema already provides; it only implies content may include source links.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific action (post), the object (internal message), the destination (Workroom thread), and the actor (AI colleague). It also distinguishes from customer-facing messaging by saying 'does not send anything to customers.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit use cases: report findings, ask owner for approval, share source links after reading CRM/Inbox data. It also states a clear exclusion (does not send to customers). However, it does not name alternative tools for comparison, so it falls short of the full 'when not to use' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_customer_importAInspect

Preview a bulk customer import (max 2000 rows). Matches existing accounts by phone/email and shows create vs update actions plus points/stamps/credit deltas. Use commit_customer_import with the returned sessionId to apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowsYes
filenameNoOriginal filename for audit

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond the annotations by clarifying that this tool only previews and does not apply changes itself; the actual mutation is deferred to commit_customer_import. It also discloses internal behavior (matching existing accounts by phone/email, showing deltas) and implies a server-side session is created via the returned sessionId, which is important side-effect information. This fully compensates for the lack of a readOnlyHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact (two sentences) and front-loaded with the tool's purpose. Every sentence adds value: the first states the action and scope, the second explains the matching logic and points the user to the commit step. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential workflow (preview, then commit using the returned sessionId), the size limit, the matching logic, and the type of output (create/update actions and deltas). Since an output schema exists, it need not enumerate return fields, and the description does not overreach. It could mention prerequisites or required input fields, but the schema handles those, making this sufficiently complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal parameter context beyond the schema. It mentions the 2000-row limit, which duplicates the schema's maxItems, but does not explain how to structure the 'rows' array or the purpose of 'filename'. With 50% schema description coverage, the description does not compensate for the undocumented portions of the input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Preview') and resource ('bulk customer import'), clearly distinguishing it from the sibling 'commit_customer_import' by stating the commit tool applies the changes. It also adds a concrete size limit (max 2000 rows) and describes the core function (matching by phone/email, showing create vs update actions).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly directs the agent to use 'commit_customer_import with the returned sessionId to apply', which is clear guidance for the follow-up action. It also explains what the preview shows, helping the agent decide if this tool is appropriate. However, it does not state explicit exclusions or alternative tools for similar tasks, so it is one step below a fully explicit guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_segment_countA
Read-onlyIdempotent
Inspect

Preview how many customers would match dynamic segment criteria before creating or updating a segment.

ParametersJSON Schema
NameRequiredDescriptionDefault
criteriaNoDynamic criteria to preview. Omit or null to count all active customers.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful context by stating the tool counts matching customers and is a preflight step, reinforcing the non-mutating nature. It does not contradict annotations and adds the workflow-level behavior of previewing before commit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that clearly states what the tool does and when to use it. Every word contributes to understanding, with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one optional parameter, a rich input schema, a known output schema, and clear annotations, the description is sufficient to convey purpose and usage context. The 'before creating or updating a segment' clause completes the workflow picture without needing more detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'criteria' has comprehensive schema-level documentation (100% coverage), including the meaning of omitting it. The description only loosely refers to 'dynamic segment criteria' and does not add parameter-specific details beyond the schema; hence baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Preview') and a clear resource ('how many customers would match dynamic segment criteria'), and explicitly ties it to the workflow of 'creating or updating a segment'. This distinguishes it from sibling tools like create_segment and update_segment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says the tool is for use 'before creating or updating a segment', which provides clear contextual guidance for when to invoke it. It does not name alternative tools explicitly, but the workflow timing is sufficiently clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_company_knowledgeA
Read-onlyIdempotent
Inspect

Search this company's reviewed knowledge base and return grounded snippets with source document IDs. Use for merchant policies, FAQs, pricing notes, brand guidance, and other uploaded references.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum matching snippets (default 5)
queryYesQuestion or keywords to search for in company knowledge
maxSnippetCharsNoMaximum characters per snippet (default 600)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a safe, read-only, idempotent operation. The description adds useful behavioral context: the knowledge base is 'reviewed' (vetted) and results are 'grounded snippets with source document IDs' (providing traceability). This goes beyond the annotations and helps set expectations for output quality and provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core function, followed by concrete use cases. Every word earns its place; there is no redundant or vague content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a rich output schema and high annotation coverage, and the description covers purpose and usage scope. Minor gaps remain, such as not mentioning behavior when no results are found, but given the output schema and sibling context, the description is sufficiently complete for an agent to select and invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all three parameters (query, limit, maxSnippetChars) with descriptions, so schema coverage is 100%. The description itself doesn't elaborate on parameters, but it implies that 'query' is a search string. Since the schema already provides full parameter semantics, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Search this company's reviewed knowledge base and return grounded snippets with source document IDs.' It uses a specific verb ('Search') and resource ('company's reviewed knowledge base'), and distinguishes itself from sibling tools like get_knowledge_document and list_knowledge_documents by emphasizing it's a query/search operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: 'Use for merchant policies, FAQs, pricing notes, brand guidance, and other uploaded references.' It doesn't explicitly mention when not to use it or name alternative tools, but the context is sufficient for an agent to decide when this search tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_favcrm_platformA
Read-onlyIdempotent
Inspect

Search FavCRM MCP tools, enabled skills, and feature areas for how to use the platform. Use before guessing tool names or JSON arguments.

ParametersJSON Schema
NameRequiredDescriptionDefault
areaNoRestrict search area (default all)
limitNoMaximum results (default 8)
queryYesPlain-language capability question, e.g. "create a booking" or "send a campaign safely"

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that it searches platform information but does not disclose return format, pagination, or any rate limits. This is adequate given the annotations, but not rich in additional behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that communicates the tool's purpose and primary use case without any wasted words. Every clause adds meaningful guidance, including the actionable 'Use before guessing tool names or JSON arguments' instruction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search/discovery tool with a rich output schema, complete parameter documentation, and strong annotations, the description provides sufficient context. It explains what the tool searches, why it would be used, and when to use it, leaving no significant gaps for an agent to correctly select and invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage of all three parameters with clear descriptions, including the enum values for 'area' and constraints for 'limit'. The description does not add parameter-specific semantics, but the baseline of 3 applies because the schema already carries the full burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Search') with a clear resource ('FavCRM MCP tools, enabled skills, and feature areas'), and it distinguishes itself from CRM data search tools by focusing on platform usage and capability discovery. The added guidance 'Use before guessing tool names or JSON arguments' further clarifies its unique role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool ('Use before guessing tool names or JSON arguments'), providing clear contextual guidance. It does not mention exclusions or alternative tools by name, but the instruction strongly implies it should be used as a discovery/assistance tool before other actions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

record_invoice_paymentAInspect

Record a manual payment against an invoice (cash, bank transfer, cheque, card terminal). Updates invoice status to PARTIAL or PAID based on the running total.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoInternal note about this payment
amountYesPayment amount as decimal string, e.g. "100.00"
methodYesPayment method
invoiceIdYesInvoice ID to record payment against
referenceNoExternal reference (cheque number, bank transfer ID)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a non-read-only, non-destructive operation. The description adds valuable behavioral context by stating that it updates invoice status to PARTIAL or PAID based on the running total, which is not captured in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the main purpose, and includes only essential information without redundancy. Every phrase adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 5 parameters and an output schema, the description covers the key side effect (status update) and the context (manual payment). It does not discuss edge cases like overpayment, but the output schema and annotations fill most gaps, making this adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptive parameter texts, so the baseline is 3. The description does not add new parameter-level details beyond what the schema provides, but it reinforces the meaning of 'amount' via 'running total'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Record' and the resource 'manual payment against an invoice', listing payment methods and the resulting invoice status update. This distinguishes it from sibling tools like create_invoice or void_invoice.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'manual payment' establishes a clear context for when to use this tool. It does not explicitly exclude alternatives, but the specific focus on manual payment methods (cash, bank transfer, cheque, card terminal) implies when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

register_organisation_requestAInspect

Step 1 of agentic signup. Sends a 6-digit verification code to the email. After the user reads the code, call register_organisation_verify with it to finish and receive an API key. Use this when a user wants to create a new FavCRM workspace from inside an MCP client.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesOwner email — receives a 6-digit code (10 min TTL)
countryNoISO 3166-1 alpha-2 country code (HK, US, GB, ...)
industryNoVertical — drives default templates
timezoneNoIANA timezone (e.g. Asia/Hong_Kong); falls back to country default
organisationNameYesBusiness / brand name (used as the first company name too)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the key side effect (sending a 6-digit code to the email) and frames it as a first step (not the final creation). It also references the follow-up action needed to complete signup. While the annotations already indicate a non-read-only operation (readOnlyHint=false), the description adds meaningful context about the email-based verification flow and the 10-minute TTL shown in the schema. It does not contradict any annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, front-loaded with 'Step 1 of agentic signup' to set immediate context. Every sentence adds value: what it does, the next step, and when to use it. No redundant filler or repetition of schema property names.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool is part of a two-step signup flow, the description covers both the current action and the next step, making the complete context clear. An output schema exists, so return values are handled. The description also names the sibling verify tool, preventing confusion among the large sibling list. For a moderately complex tool (5 params, workflow context), this is fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage with descriptions for all five parameters, including format details (email, ISO country code, enum for industry, IANA timezone, max lengths). The description adds no significant new parameter-level meaning beyond what the schema already documents. Baseline 3 is appropriate since the schema carries the semantic load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's role as 'Step 1 of agentic signup' and its action: 'Sends a 6-digit verification code to the email.' It explicitly distinguishes this from the sibling verification step, register_organisation_verify, and ties it to a specific user goal: creating a new FavCRM workspace. This goes beyond a vague verb+resource and provides strong differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use it ('Use this when a user wants to create a new FavCRM workspace from inside an MCP client') and gives the next step: 'After the user reads the code, call register_organisation_verify with it to finish and receive an API key.' This names the alternative tool and provides a clear workflow, satisfying the when/when-not criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

register_organisation_verifyAInspect

Step 2 of agentic signup. Confirms the 6-digit code and creates the workspace. Returns an API key the agent should set as Authorization: Bearer for all subsequent FavCRM MCP calls in this session.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes6-digit code from the verification email
requestIdYesFrom register_organisation_request

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a mutating, non-idempotent operation. The description adds that it creates the workspace and returns an API key, plus instructions for setting the Authorization header. This provides valuable context beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. It front-loads the step context and ends with a concrete instruction. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, return format is covered. The description fills the gap by explaining the API key flow and session implications. It does not cover error cases, but for a simple signup step, the provided context is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are fully described in the schema (100% coverage) with clear descriptions ('6-digit code from the verification email', 'From register_organisation_request'). The description adds no additional parameter-level detail, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('confirms', 'creates') and identifies the resource ('workspace'), clearly distinguishing it as Step 2 of the agentic signup flow relative to register_organisation_request. No ambiguity exists about the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly labels this as 'Step 2 of agentic signup', implying it should be used after register_organisation_request. It also provides actionable guidance on using the returned API key for subsequent calls. It does not list exclusions, but the sequential context is sufficient for correct usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_post_blockA
Destructive
Inspect

Remove the block at the given index (0-based). All subsequent blocks shift up by one.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes0-based index of the block to remove
postIdYesThe post ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is known. The description adds useful behavioral context by stating that subsequent blocks shift up by one, which is not conveyed by the annotations or schema. It 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two short sentences that front-load the main action and then provide the key behavioral effect. Every word earns its place, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with a complete schema and annotations, the description covers the core behavior (remove block, shift subsequent blocks). It lacks edge-case information like out-of-bounds behavior, but the presence of an output schema and annotations reduces the burden. It's nearly complete for this complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both postId and index already described clearly. The description reinforces the index semantics by mentioning 0-based indexing and the effect on subsequent blocks, but it doesn't add new parameter details beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Remove the block at the given index (0-based).' This is a specific verb+resource (remove+block) and distinguishes from sibling tools like append_post_block and replace_post_block by indicating removal vs. adding or replacing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives. It implies usage through the verb 'remove,' but lacks guidance on when not to use it or mention of alternatives like replace_post_block. The context from sibling names helps, but the description itself offers no explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reorder_post_blocksAInspect

Reorder blocks by passing block IDs in the desired order. The id list must contain every existing block id exactly once.

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYesThe post ID
orderedBlockIdsYesBlock IDs in the desired order; must match the existing set exactly

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the key behavioral constraint: the submitted ID list must be a complete permutation of existing block IDs. This goes beyond the annotations (which only say readOnly=false) and is consistent with the schema. It does not describe failure modes, authorization, or side effects, but with annotation support this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, with the purpose stated first and the constraint second. No redundant or filler content. Excellent structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (two required params, no nesting) and has an output schema, so the description need not cover return values. It covers the essential operational constraint (complete permutation) and is sufficiently complete for selecting and invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both parameters (postId and orderedBlockIds) already described in the schema. The description restates the constraint on orderedBlockIds ('must contain every existing block id exactly once') but adds no additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Reorder') and resource ('blocks'), clearly distinguishing it from sibling tools like append_post_block, remove_post_block, and replace_post_block. The phrase 'by passing block IDs in the desired order' states the mechanism unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it requires the full set of existing block IDs exactly once, implying a full reorder rather than a partial move. However, it does not explicitly name alternatives or exclude other block-manipulation tools, so it stops short of full usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reorder_post_type_fieldsAInspect

Reorder fields on a post type. Pass field IDs in the desired display order; sortOrder is updated to match.

ParametersJSON Schema
NameRequiredDescriptionDefault
postTypeIdYesPost type ID
orderedFieldIdsYesField IDs in the desired order

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds a behavioral detail beyond the annotations: 'sortOrder is updated to match.' Annotations already indicate readOnlyHint=false and destructiveHint=false, so the write operation is expected. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary action, and contains no filler. It efficiently states what, how, and the expected outcome.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two clearly described required parameters and an output schema present, the description covers purpose, usage, and effect. No significant information is missing. The output schema handles return value details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters, including 'Field IDs in the desired order' for orderedFieldIds. The description's phrase 'desired display order' adds no additional semantics beyond the schema, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb+resource: 'Reorder fields on a post type.' It further explains the mechanism (pass field IDs in desired display order) and the effect (sortOrder is updated), which distinguishes it from sibling tools like create_post_type_field or update_post_type_field.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on how to use the tool: pass field IDs in the desired display order. It does not explicitly mention alternatives or when not to use it, but the specialized nature and sibling names make the usage context clear. No exclusion is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replace_post_blockAInspect

Replace a single block at the given index (0-based). Avoids fetching the full post and re-sending all blocks via update_post.

ParametersJSON Schema
NameRequiredDescriptionDefault
blockYesReplacement block
indexYes0-based index of the block to replace
postIdYesThe post ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false, so the mutation nature is already known. The description adds the behavioral detail that this tool avoids fetching the entire post, providing some insight into its efficiency. However, it does not disclose what happens with out-of-bounds indexes, whether the block is fully replaced or merged, or if any side effects occur, leaving moderate gaps for an AI agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with two sentences that front-load the core purpose and then add a valuable rationale for using this tool. Every word earns its place, and the structure is clear and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, with only 3 parameters and a rich schema that fully documents the block types and constraints. An output schema exists, so return values need not be described. The description covers the primary use case and differentiates from update_post, though it could mention handling of invalid indexes or prerequisites, but these are minor for a well-specified replacement operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter (postId, index, block) having a description in the schema. The tool description does not add meaning beyond the schema—it only reiterates the 0-based index detail. Since the schema carries the full burden, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Replace a single block at the given index (0-based).' This specifies the verb, resource, and scope, and it explicitly contrasts with update_post, making it distinguishable from sibling tools like append_post_block and remove_post_block.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context by noting that this tool 'Avoids fetching the full post and re-sending all blocks via update_post,' which tells the agent when to prefer it over update_post. However, it does not explicitly mention when not to use it or provide exclusions for other sibling tools, though the distinct operation names make this clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_agent_issueAInspect

Report a FavCRM platform issue when an agent finds a missing MCP path, tool failure, confusing schema, CLI/docs issue, or SDK fallback. Include logs, AI analysis, references, and clarification questions so the platform team can follow up.

ParametersJSON Schema
NameRequiredDescriptionDefault
areaYesIssue area
logsNoRelevant error messages, command output, or stack traces
titleYesShort issue title
severityYesImpact level
toolCallsNoRelevant MCP/CLI/SDK calls, arguments, and outcomes
aiAnalysisYesAgent analysis of likely root cause and impact
referencesNoSource links, file paths, docs, screenshots, or IDs that support the report
stepsTriedYesConcrete steps the agent tried before reporting
workaroundNoTemporary workaround used, if any
environmentNoRuntime context such as MCP URL, CLI version, token type, client, sandbox, model, OS
actualBehaviorYesWhat actually happened
expectedBehaviorYesWhat the agent or user expected to happen
clarificationQuestionsNoQuestions the platform team should ask the agent/user to resolve ambiguity

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate readOnlyHint=false, destructiveHint=false, etc., providing no strong safety signals. The description implies the tool files a report for the platform team but does not disclose side effects (e.g., whether a ticket is created, notifications sent, or if the report is reversible). It adds value by describing the report content but leaves behavioral details implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first defines purpose and triggers, the second lists required report components. Every phrase carries informational weight, with no filler or repetition of schema details. It is optimally front-loaded and concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (13 params, 7 required, nested objects) and the presence of an output schema, the description does a solid job covering the core context: why, when, and what to include. It does not enumerate every parameter, but the schema provides full descriptions. The only gap is a lack of explicit guidance on severity or environment context, but these are adequately defined in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaningful context beyond the schema by explicitly naming logs, AI analysis, references, and clarification questions as inclusion criteria, and by mapping the 'area' enum (missing MCP path, tool failure, confusing schema, CLI/docs, SDK fallback) to real-world scenarios. This helps the agent understand which parameters matter and why.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Report'), a clear resource ('FavCRM platform issue'), and enumerates concrete trigger scenarios (missing MCP path, tool failure, confusing schema, CLI/docs issue, SDK fallback). This clearly distinguishes it from sibling tools, which are domain CRUD operations, and establishes it as a meta-reporting tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly specifies when to use the tool: when an agent finds any of the listed issue types. It also instructs on what content to include (logs, AI analysis, references, clarification questions). It lacks explicit exclusions or alternative tool references, but the trigger list provides clear use-case context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_send_approvalAInspect

Create a merchant-owned Workroom approval request for a customer-facing send. The agent must not call send_message, send_whatsapp_message, send_test_campaign, or send_campaign directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentIdYesAI colleague ID that is a participant in the thread
payloadYesExact tool payload to execute if the merchant approves
summaryYesHuman-readable draft/recipient/campaign summary shown above the approval buttons
threadIdYesWorkroom thread ID where the approval button should appear
actionTypeYesThe customer-facing action to execute only after merchant approval

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate this is a write operation (readOnlyHint: false), not idempotent, and not destructive. The description adds context by explaining it creates an approval request and that it is merchant-owned, but does not disclose further behavioral traits such as what happens after approval, potential side effects, or required permissions. It adds some value beyond annotations but not deeply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main purpose, and a clear directive. Every word earns its place; there is no fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema and comprehensive parameter descriptions, the description covers the essential context: what the tool does and when to use it. It lacks details about the approval workflow after request creation, but the schema and output schema likely cover return values. Overall, it is adequately complete for a tool with rich structured metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all five parameters, including the payload's role and actionType's enum. The description itself does not add parameter-level detail beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb and resource: 'Create a merchant-owned Workroom approval request for a customer-facing send.' It also differentiates from sibling tools by explicitly listing the direct send tools (send_message, send_whatsapp_message, send_test_campaign, send_campaign) that the agent must not call, making the tool's unique role unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance by stating the agent must not call direct send tools and instead use this approval request tool. This effectively says 'use this when you need to perform a customer-facing send requiring merchant approval' and names the alternatives to avoid. It is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore_campaignAInspect

Restore a previously deleted campaign.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaignIdYesCampaign ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a write operation (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds minimal behavioral context by specifying the target is a 'previously deleted' campaign, but does not disclose potential side effects, permissions, or state changes beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no wasted words. It is front-loaded with the action and resource, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one well-documented parameter and an output schema, the description is sufficiently complete. It states the core function, and the 'previously deleted' condition clarifies the expected input state. No additional edge-case details are necessary given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage for the single parameter 'campaignId' with a clear description 'Campaign ID'. The tool description adds no additional parameter semantics, so the baseline of 3 applies since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Restore a previously deleted campaign' uses a specific verb (restore) and resource (campaign), clearly distinguishing it from sibling tools like create_campaign, update_campaign, and delete_campaign. It unambiguously conveys the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'previously deleted campaign' implies this tool is for restoring campaigns that have been deleted, providing clear context for when to use it. However, it does not explicitly mention alternatives or exclusions, such as handling already-active campaigns.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore_categoryAInspect

Restore a previously deleted CMS post category.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryIdYesCategory ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the useful context that the category must have been previously deleted, and it does not contradict annotations (readOnlyHint=false aligns with a mutating restore operation). However, it does not disclose potential side effects, idempotency behavior, or what happens if the category is not in a deleted state, so it goes only slightly beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. Every word contributes meaning: it states the verb, resource, and the key precondition ('previously deleted').

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with an output schema, the description is largely complete: it identifies the action, resource, and state required. It could be slightly more complete by noting what happens if the category is already restored or whether restoration is permanent, but the low complexity and existing schema make the description sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single categoryId parameter, so the schema already documents the parameter. The description adds no additional semantic detail about the parameter, such as format or source, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource construction: 'Restore a previously deleted CMS post category.' It clearly identifies the action (restore) and the resource (CMS post category), and the phrase 'previously deleted' distinguishes it from create/update/delete category tools and from other restore_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for restoring deleted categories by saying 'previously deleted,' but it does not explicitly state when to use this tool instead of alternatives like update_category or create_category, nor does it provide exclusions or prerequisites. It is clear enough for a simple restore operation but lacks explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore_invoiceBInspect

Restore a previously deleted DRAFT invoice.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceIdYesInvoice ID to restore

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide minimal safety hints (all false), so the description carries the burden of behavioral disclosure. It states what the tool does but does not explain side effects, reversibility, permissions needed, or what happens if the invoice is not in a restorable state. The 'previously deleted DRAFT' qualifier adds some context but lacks detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that conveys the core action and scope without unnecessary words. It is front-loaded with the verb and resource, making it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 present), the description is minimally viable. However, it lacks context about edge cases (e.g., restoring non-draft invoices, idempotency, or error conditions). The presence of an output schema reduces the need to explain return values, but behavioral and usage gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage: the only parameter, invoiceId, is described as 'Invoice ID to restore', which is clear. The description does not add additional parameter semantics beyond the schema, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (restore), the resource (invoice), and the specific scope (previously deleted DRAFT invoice). This distinguishes it from sibling restore tools (e.g., restore_campaign, restore_post) and from other invoice operations like create_invoice or delete_invoice.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or contrast with delete_invoice or get_invoice. The only implicit usage is that it applies to previously deleted draft invoices, but there is no 'use this when...' or 'instead of...'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore_knowledge_documentAInspect

Restore a previously deleted knowledge document.

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesKnowledge document ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide false hints (readOnly, destructive, idempotent), so the description's 'previously deleted' adds context about the operation's nature. However, it does not disclose any behavioral outcomes beyond 'restore' — e.g., whether the document is fully recovered, if versions are preserved, or if permissions are required. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loaded with the action, and contains no extraneous information. It earns its place fully and 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one well-documented parameter and an output schema present, the description is largely sufficient. It doesn't address potential edge cases (e.g., restoring an already-existing doc) but the minimal scope and sibling context make this acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with documentId described as 'Knowledge document ID'. The description adds no additional meaning beyond the schema, which is acceptable given the high schema coverage. It meets the baseline but does not compensate with extra context about how to obtain the ID or its format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Restore a previously deleted knowledge document' uses a specific verb ('restore') and specific resource ('knowledge document'), clearly distinguishing it from siblings like delete_knowledge_document and get_knowledge_document. It unambiguously states the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when a knowledge document has been deleted and needs recovery, but it provides no explicit when-to-use guidance, exclusions, or references to alternative tools. There is no mention of prerequisites such as the document being in a trash/archive state.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore_postAInspect

Restore a previously deleted CMS post.

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYesThe post ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a write operation (readOnlyHint=false) and non-destructive behavior (destructiveHint=false). The description adds the requirement that the post be 'previously deleted,' but does not disclose details such as failure modes, permission requirements, or whether restoration is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that conveys the core purpose without any redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, one-parameter tool with an output schema and annotations, the description is adequate. It covers the key precondition (previously deleted) but could be slightly more explicit about the restoration outcome or post-state, preventing a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema documents postId with a description, so schema coverage is 100%. The description adds no additional parameter semantics, such as expected format or valid values, aligning with the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool restores a previously deleted CMS post, using a specific verb and resource, and distinguishes it from sibling restore_* tools by specifying 'CMS post' and the deleted-state condition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives like update_post, delete_post, or other restore_* tools. It only states the action, leaving usage implied rather than specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore_post_typeAInspect

Restore a previously deleted custom post type.

ParametersJSON Schema
NameRequiredDescriptionDefault
postTypeIdYesPost type ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only, not idempotent, and not destructive. The description adds minimal context beyond stating the item was previously deleted, but does not disclose side effects like whether the process is reversible or requires specific permissions. It 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that immediately conveys the action and target. There is no unnecessary information, and it is front-loaded with the verb. Excellent conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (1 parameter) and the presence of an output schema, the description is adequate. However, it lacks contextual details such as prerequisites (e.g., the post type must exist in a deleted state) or behavioral notes about restoration (e.g., whether associated data is restored). This leaves some ambiguity for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage for the single parameter postTypeId with a description 'Post type ID'. The tool description adds no further explanation about the parameter, so it relies entirely on the schema. Baseline of 3 is appropriate as the schema already provides sufficient meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'restore' with the resource 'custom post type', clearly distinguishing it from siblings like restore_post, restore_post_type_field, and create_post_type. It states the exact operation and target, 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use the tool: when a previously deleted custom post type needs to be recovered. However, it does not explicitly mention alternatives or exclusions (e.g., 'use create_post_type for new types'), but the context is still clear enough given the operation name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore_post_type_fieldAInspect

Restore a previously deleted field on a post type schema.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldIdYesField ID
postTypeIdYesPost type ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate this is a mutation (readOnlyHint=false) but not destructive. The description adds the context that only previously deleted fields are restored, which is useful. However, it doesn't disclose effects like whether the field is restored to its original position, or any prerequisites. With annotations providing the safety profile, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the action and resource. There is no fluff or redundancy, making it optimally compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple restore operation with two well-documented parameters and an existing output schema, the description is sufficiently complete. It explains the core purpose without needing to elaborate on return formats or edge cases. Slight deductions for not mentioning behavior when the field already exists or whether restoration preserves ordering, but these are minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both 'fieldId' and 'postTypeId' having descriptive names and descriptions. The tool description itself adds no additional parameter meaning, but the schema already documents the parameters adequately, so the baseline 3 is justified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: restoring a previously deleted field on a post type schema. It uses a specific verb ('restore'), identifies the resource ('field on a post type schema'), and implies the condition ('previously deleted'), distinguishing it from siblings like create_post_type_field or delete_post_type_field.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: to restore a previously deleted field. While it doesn't explicitly name alternatives or exclusions, the phrase 'previously deleted' implies it is for restoring rather than creating or updating, which is sufficient guidance given the sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore_promotionAInspect

Restore a previously deleted promotion.

ParametersJSON Schema
NameRequiredDescriptionDefault
promotionIdYesPromotion ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a non-read-only, non-idempotent mutation. The description adds the precondition that the promotion was previously deleted, but does not disclose side effects, prerequisites beyond deletion, or behavior on already-restored promotions. It 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one clear, front-loaded sentence with no filler. It follows the pattern of 'verb + object' and is highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple one-parameter tool with annotations and a clear description, it is largely complete. It could mention expected outcomes or error conditions, but the core purpose is sufficiently conveyed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter promotionId is fully described in the schema with 'Promotion ID' (coverage 100%). The description adds no additional 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'restore' and identifies the resource as 'a previously deleted promotion', clearly distinguishing it from create/update/delete promotion siblings. It is concise and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a promotion has been deleted, but does not explicitly state when not to use it or mention alternatives (e.g., creating a new promotion instead). It provides no exclusions or comparative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore_service_packageAInspect

Restore a previously deleted service package by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
packageIdYesService package ID to restore

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds minimal behavioral context beyond the annotations. It does not disclose prerequisites, side effects, or behavior in edge cases (e.g., already active package). Annotations provide only basic hints (readOnly=false, destructive=false).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no redundant words, making it highly concise and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a simple tool with one parameter and an existing output schema, covering the core action. However, it lacks usage alternatives and deeper behavioral details, leaving some gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for packageId. The description's 'by ID' adds no new info, though 'previously deleted' implies the ID must reference a deleted package. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('restore'), the target resource ('service package'), and a qualifier ('previously deleted'), making it distinct from sibling restore tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'previously deleted' establishes clear context for when to use this tool. It does not explicitly name alternatives, but the context is sufficient for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resume_subscriptionAInspect

Resume a paused subscription back to active.

ParametersJSON Schema
NameRequiredDescriptionDefault
subscriptionIdYesSubscription ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false. The description adds the state change (paused to active) but discloses no additional behavioral details such as error handling, side effects, or requirements. With annotations present, this is acceptable but not enriched.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clean sentence that states the purpose without any superfluous words. It is front-loaded and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (one parameter, output schema exists, annotations present), the description is adequate. It does not mention edge cases like resuming an already-active subscription, but the core purpose is fully covered and the structured data fills the remaining context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers the single parameter 'subscriptionId' with a complete description. The tool description adds no parameter-specific information, but with 100% schema coverage, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Resume') and resource ('paused subscription'), clearly stating the state transition from 'paused' to 'active'. This distinguishes it from sibling tools like 'pause_subscription' and 'cancel_subscription'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when a subscription is paused. The precondition ('paused subscription') is clear, though it does not explicitly mention alternatives or exclusions. This is sufficient for a simple state-transition tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

revert_audit_actionA
Destructive
Inspect

Revert an audited action by restoring the captured before snapshot. Only works for allowlisted target tables with full before/after audit snapshots.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoReason for reverting this action
auditLogIdYesAudit log ID to revert

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as destructive and not read-only. The description adds value by explaining the mechanism (restoring a before snapshot) and the allowlist limitation, which is behavioral context beyond the annotation flags. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no filler. The primary action is front-loaded, and the constraint is stated briefly, making every word purposeful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's scope and the presence of annotations and output schema, the description covers the core purpose, mechanism, and a key constraint. It lacks details about failure modes or the meaning of 'allowlisted', but remains reasonably complete for its context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% description coverage with clear meanings for both parameters ('auditLogId' and 'reason'). The description does not add extra parameter-level detail, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Revert an audited action') and the mechanism ('restoring the captured before snapshot'). This distinguishes it from sibling restore_* tools, which restore deleted entities rather than reverting audit actions. The allowlist constraint adds clear scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear context for use (reverting audited actions) and an explicit constraint ('Only works for allowlisted target tables with full before/after audit snapshots'). However, it does not name alternatives or explicitly state when not to use it beyond that constraint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scrape_knowledge_urlAInspect

Fetch a URL's content into the knowledge base. Server crawls the URL, stores the response body in R2, returns the new document ID. Failures store the row with status='failed'. Use for adding marketing pages, FAQ docs, or external references the agent should be aware of.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to fetch (must be https / http and publicly reachable)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral details beyond the annotations: it crawls, stores the response body in R2, returns a document ID, and on failures stores a row with status='failed'. This adds meaningful context about side effects and error handling, though it does not specify whether the operation is synchronous or asynchronous.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the primary purpose, and each sentence adds value: the mechanism, the success/failure behavior, and the intended use cases. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with an output schema and annotations, the description is complete. It covers the workflow, success and failure outcomes, and appropriate use cases. The output schema handles return-value details, so no further description is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% as the schema already explains the 'url' parameter ('URL to fetch (must be https / http and publicly reachable)'). The description reinforces this but adds no new parameter-specific semantics beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Fetch a URL's content into the knowledge base') and elaborates with the crawl-storage-return flow. It distinguishes itself from sibling knowledge tools by focusing on URL ingestion and mentioning use cases like marketing pages and FAQ docs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for when to use ('Use for adding marketing pages, FAQ docs, or external references'), which implies appropriate scenarios. It does not explicitly name alternatives or exclusions, but the use-case framing is sufficient guidance for an agent to select this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_audit_logsA
Read-onlyIdempotent
Inspect

Search audit logs by free text across action, resource, resource ID, changes JSON, and metadata JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return
queryYesText to search for
createdAfterNoISO timestamp lower bound
createdBeforeNoISO timestamp upper bound

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, establishing a safe read-only profile. The description adds valuable behavioral context by specifying the exact fields searched (action, resource, resource ID, changes JSON, metadata JSON), which goes beyond the annotations. No contradictions exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the verb and resource, then specifies search scope. It contains no fluff or redundant restatements of the tool name, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, comprehensive parameter descriptions, and strong annotations, the description covers the essential purpose and scope. The only slight gap is the lack of explicit alternatives in usage guidance, but overall the tool is well-specified for an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% parameter description coverage, with clear descriptions for query, limit, createdAfter, and createdBefore. The description does not add extra parameter meaning beyond the schema, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Search audit logs by free text' across specific fields (action, resource, resource ID, changes JSON, metadata JSON). This is a specific verb+resource pair and distinguishes the tool from siblings like get_audit_log and list_audit_logs by emphasizing free-text search across JSON fields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for free-text searching but does not explicitly state when to use this tool versus alternatives such as list_audit_logs (filtered listing) or get_audit_log (single log retrieval). No exclusions or alternative tool names are provided, so the guidance remains implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_crmA
Read-onlyIdempotent
Inspect

Search across CRM accounts and contacts by name, email, or phone.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax per entity (default 10)
queryYesSearch string

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds that it searches both accounts and contacts, but does not disclose behavioral details like result grouping, pagination, or handling of multiple matches. With annotations covering safety, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the action and resource. Every word contributes meaning, with no redundant filler. Ideal conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple nature of the tool, the presence of output schema, and the annotations covering safety, the description is sufficient. It explains the scope and searchable fields. The only gap is usage guidance relative to siblings, but that is captured in the usage dimension. Overall, it is complete for most practical purposes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (both query and limit have descriptions). The description adds meaning by specifying that the query searches name, email, or phone, which is not in the schema's 'Search string' description. This is valuable context that helps the agent formulate the query correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Search across CRM accounts and contacts') and specifies the searchable fields ('by name, email, or phone'). This distinguishes it from sibling tools like list_contacts (which lists all contacts) and get_contact (which retrieves by ID).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when looking for CRM records by name, email, or phone, but does not explicitly mention when to use this tool instead of alternatives like list_contacts or search_members. No exclusions or alternatives are stated, leaving the agent to infer the appropriate context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_membersA
Read-onlyIdempotent
Inspect

Search and filter members/accounts. Supports text search, date ranges, booking/activity history, membership tier, tags, and more. Use lastBookingBefore/inactiveDays to find inactive members.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort column: name, email, or createdAt
limitNoMax results (default 20)
orderNoSort order
searchNoName, email, or phone to search
sourceNoFilter by account source
tagIdsNoFilter by tag IDs
tierIdNoFilter by membership tier ID
lifeStageNoFilter by life stage
hasBookingNoFilter to members with/without any booking
createdAfterNoISO date — accounts created after this date
inactiveDaysNoMembers with no activity in the last N days
createdBeforeNoISO date — accounts created before this date
hasMembershipNoFilter to members with active membership
lastBookingAfterNoISO date — members who have a booking after this date
membershipStatusNoFilter by membership status
lastActivityAfterNoISO date — members with activity after this date
lastBookingBeforeNoISO date — members whose last booking is before this date (or have no bookings)
lastActivityBeforeNoISO date — members with no activity since this date

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so safety profile is covered. The description adds a behavioral nuance about using specific filters for inactive members, but the schema already documents these parameters comprehensively. It does not reveal new behavioral traits beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and wastes no words. It effectively summarizes the tool's scope and includes a practical tip, making it concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high parameter count (18), full schema coverage, and presence of output schema and annotations, the description is adequate. It covers the main use case and a key scenario (inactive member search). Minor gaps: no mention of pagination or result default behavior, but output schema likely covers return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are fully documented. The description groups parameters into categories (text search, date ranges, booking/activity history, etc.) and highlights two parameters, but adds no new meaning beyond what the schema already provides. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Search and filter members/accounts.' It lists specific filter capabilities (text search, date ranges, booking/activity history, membership tier, tags) and distinguishes it from broader search tools like search_crm by focusing on member/account objects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a useful usage hint: 'Use lastBookingBefore/inactiveDays to find inactive members,' which guides parameter selection. However, it does not explicitly compare against alternatives like search_crm or list_members, nor mention when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_toolsA
Read-onlyIdempotent
Inspect

Search the available FavCRM tool catalog for relevant operations. Use this when the curated direct tool list does not contain the operation you need.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results (default 8, max 20)
queryNoPlain-language tool search, e.g. "delete a segment" or "set custom field values"
scopeNoOptional exact scope filter, e.g. contacts, customer_segments, invoices
writeNoFilter to write tools (true) or read-only tools (false)
includeInputSchemaNoInclude full JSON input schemas for returned tools. Defaults to false to keep context small.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is covered. The description adds that this searches the catalog but doesn't provide extra behavioral context like pagination, rate limits, or effect on the system. The 'curated direct tool list' context is useful but not behavioral, so a mid-range score is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long and front-loaded with the core purpose. The second sentence provides a necessary usage condition without any filler. Every word earns its place, making it highly efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description fully covers the tool's role as a fallback search mechanism, and the output schema exists to explain return values. Given the tool's simplicity and the comprehensive annotations, the description is complete. It appropriately balances brevity with necessary context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% parameter description coverage, with each parameter (query, limit, scope, write, includeInputSchema) having a clear description. The tool description itself adds no parameter-specific meaning. Since the schema does the heavy lifting, the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches the FavCRM tool catalog for relevant operations. It distinguishes itself from sibling tools by specifying it's for when the curated direct tool list doesn't contain the needed operation. The verb 'search' and resource 'tool catalog' 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use this tool when the curated direct tool list does not contain the operation you need. This provides clear when-to-use guidance and implicitly contrasts it with the alternative (directly selecting a tool). No other exclusions are needed for a discovery/search tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_custom_field_valuesA
Idempotent
Inspect

Set or clear custom field values for a CRM entity. Values are stored as strings; pass null to clear a value.

ParametersJSON Schema
NameRequiredDescriptionDefault
valuesYesValues to upsert
entityIdYesEntity ID
entityTypeYesEntity type

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds useful context about string storage and null-to-clear behavior, but this largely duplicates schema descriptions and does not significantly go beyond the annotations (idempotent, non-destructive). The description is consistent with annotations and adds modest value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with two clear clauses. Every word earns its place; no fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with a well-defined schema and a known output schema, the description captures the core action and the key special behavior (clearing values). It is complete enough for an agent to distinguish and invoke correctly, though slightly more context on entity types would be nice.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description clarifies the null-to-clear behavior for the 'value' parameter, which matches the schema, but does not add substantial meaning for other parameters beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Set or clear') and resource ('custom field values for a CRM entity'). It effectively distinguishes this from siblings like get_custom_field_values (read) and create/update_custom_field (managing definitions).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention scenarios, exclusions, or relationships to sibling tools like get_custom_field_values or create_custom_field, leaving the AI agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_primary_contactA
Idempotent
Inspect

Set a contact as the primary contact for its CRM account and demote other contacts on that account.

ParametersJSON Schema
NameRequiredDescriptionDefault
contactIdYesThe contact ID to make primary

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds meaningful behavioral context by stating that other contacts on the account are demoted, which is a side effect beyond simple assignment. This is valuable transparency, though it does not detail all potential effects or preconditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that is front-loaded with the primary action and includes a key side effect. Every word contributes to understanding, with no unnecessary filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and an output schema, the description is complete. It explains the primary action, the scope (CRM account), and the side effect (demotion of other contacts), leaving no major ambiguities for selection or invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage with the description 'The contact ID to make primary' for contactId. The tool description does not add significant extra meaning to the parameter beyond what the schema already states, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Set a contact as the primary contact for its CRM account and demote other contacts on that account.' It identifies the specific verb, resource, and scope, and distinguishes itself from sibling tools like update_contact or create_contact by focusing on the primary contact designation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implied usage context—setting a primary contact—but does not explicitly state when to use this tool versus alternatives like update_contact or create_contact. There are no exclusion criteria or alternative recommendations, so guidance is minimal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_resource_availabilityA
Idempotent
Inspect

Add an availability window for a resource. Use day-of-week + recurring=true for weekly schedules, or a specific date for one-off blocks.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoYYYY-MM-DD for a specific date instead of dayOfWeek
typeNoDefault available
endTimeYesHH:MM (24h)
dayOfWeekNoDay of week (0=Sun..6=Sat)
startTimeYesHH:MM (24h)
resourceIdYesResource ID
isRecurringNoDefault true

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey idempotentHint=true, destructiveHint=false, and readOnlyHint=false. The description adds behavioral context by explaining the two modes (recurring weekly vs. one-off date blocks), which clarifies the underlying scheduling semantics. It does not contradict annotations and supplements them with useful information about how the tool interprets its inputs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, each earning its place. The first states the core function; the second distills key usage patterns. No fluff, no repetition of schema details, and front-loaded with the central verb.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema (so return values are covered), annotations, and a schema with full parameter coverage. The description adds the essential recurring-vs-one-off distinction, which is the main complexity. It doesn't explicitly address the 'type' parameter (available/blocked) but that is well-documented in the schema. Overall, sufficient for an agent to use correctly in most situations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

While the schema has 100% parameter description coverage, the description adds meaning by explaining the relationship between dayOfWeek, date, and isRecurring. Specifically, it states that dayOfWeek+recurring=true is for weekly schedules and date is for one-off blocks. This goes beyond the schema's individual field descriptions, helping the agent assemble a correct request.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb+resource: 'Add an availability window for a resource.' This clearly distinguishes it from sibling tools like set_staff_availability (which targets staff, not resources) and get_available_slots (which reads availability). The additional clause about recurring vs. one-off further clarifies the tool's exact scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage guidance: 'Use day-of-week + recurring=true for weekly schedules, or a specific date for one-off blocks.' This tells the agent exactly which parameter combinations to use for different scenarios. It doesn't mention when not to use the tool or name alternative tools, but it provides strong contextual guidance for common cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_segment_membersA
Idempotent
Inspect

Replace the members of a STATIC customer segment with the given account IDs. The segment is converted to STATIC.

ParametersJSON Schema
NameRequiredDescriptionDefault
segmentIdYesThe segment ID
accountIdsYesCRM account IDs to set as segment members

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond annotations by disclosing the side effect that 'The segment is converted to STATIC' and clarifying the 'Replace' semantics, which implies existing members are overwritten. Annotations already indicate readOnlyHint=false and idempotentHint=true, so this adds useful context without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary action and side effect. Every word earns its place with no unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two fully documented parameters and an output schema, the description covers the essential behavior (replace and convert to static). It does not explicitly mention prerequisites (e.g., segment must exist), but this is implied and not a significant gap. The existence of an output schema covers return value details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage with descriptions for both segmentId and accountIds ('The segment ID' and 'CRM account IDs to set as segment members'). The description's phrase 'with the given account IDs' adds no new semantic detail beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Replace the members of a STATIC customer segment with the given account IDs.' It uses a specific verb and resource, and notes the conversion to STATIC, which distinguishes it from siblings like update_segment (which likely updates segment properties) and get_segment_members (which reads members).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: it is for setting the full member list of a static segment, and it converts the segment to static. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions or alternative tools for adding/removing individual members.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_staff_availabilityA
Idempotent
Inspect

Add an availability window for a staff member (companyMembers.id). Use day-of-week + recurring for weekly schedules, or a specific date for one-off changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoYYYY-MM-DD for a specific date instead of dayOfWeek
typeNoDefault available
endTimeYesHH:MM (24h)
memberIdYescompanyMembers.id of the staff
dayOfWeekNoDay of week (0=Sun..6=Sat)
startTimeYesHH:MM (24h)
isRecurringNoDefault true

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds valuable behavioral context about the two modes (recurring vs one-off) and clarifies that the tool adds an availability window, which is consistent with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using two sentences to convey the purpose and the two usage modes. It is front-loaded with the core action and avoids redundant or verbose language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, two modes) and the presence of an output schema, the description provides sufficient context for invoking the tool correctly. It covers the key distinction between recurring and one-off availability, though it does not mention the 'type' parameter (available/blocked) which is documented in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

While the input schema has 100% parameter coverage, the description adds semantic value by explaining the combined usage of dayOfWeek + isRecurring for weekly schedules versus date for one-off changes. It also reinforces the meaning of memberId as companyMembers.id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Add') and resource ('an availability window for a staff member'), explicitly referencing companyMembers.id. This distinguishes it from the sibling tool set_resource_availability, which handles resource availability.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context by explaining when to use day-of-week + recurring versus a specific date, which guides the agent in choosing the right parameters. It does not explicitly mention alternatives or exclusions, but the staff member reference implies the division from resource availability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

switch_companyAInspect

Switch the current session to a different company/organisation. Returns a new access token scoped to the target company. All subsequent tool calls will operate on the new company.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyIdYesThe company ID to switch to (use list_my_companies to find available IDs)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses critical behavioral details not captured by annotations: it returns a new access token and changes the scope of all subsequent tool calls. This goes beyond the simple readOnlyHint/destructiveHint flags, which only indicate that the tool changes state. The side effect on session context is clearly articulated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action, and every clause adds value: the verb/resource, the token return, and the session-wide impact. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and an existing output schema, the description sufficiently explains the purpose, the token mechanism, and the session change. Non-obvious behavior (token return, global effect on subsequent calls) is covered. The cross-reference in the schema covers how to find valid company IDs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The main description does not mention the companyId parameter, but the input schema already provides full coverage (100%) with a helpful description and cross-reference to list_my_companies. Since the schema carries the semantic load, the description does not need to add parameter details, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Switch the current session'), the resource ('different company/organisation'), and the outcome ('returns a new access token scoped to the target company'). It distinguishes itself from siblings like list_my_companies by explaining the session-switching effect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: whenever you need subsequent calls to operate on a different company. It does not explicitly mention exclusions or alternatives, but the schema parameter description cross-references list_my_companies, providing complementary guidance. No other tool in the sibling list offers this session-switching behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_accountA
Idempotent
Inspect

Update CRM account/customer profile fields such as name, phone, email, life stage, owner, notes, or member code.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoAccount/customer display name
typeNoAccount type
emailNoEmail address
notesNoInternal notes
phoneNoPhone number
genderNoGender
sourceNoAcquisition source
lastNameNoLast name for individual accounts
accountIdYesThe account ID to update
firstNameNoFirst name for individual accounts
lifeStageNoCRM life stage
assignedToNoAssigned team member user ID, or null to clear
memberCodeNoMerchant member code, or null to clear
dateOfBirthNoYYYY-MM-DD date of birth, or null to clear
referredByAccountIdNoReferrer account ID, or null to clear

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds no additional behavioral context beyond listing field names already present in the schema. It does not clarify partial-update semantics or that only provided fields are changed, which is important for an update tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the action and resource, followed by a non-exhaustive, concise list of example fields. Every word earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (15 parameters, output schema, annotations), the description gives a high-level overview but omits key nuances like whether omitted fields are left unchanged. However, the output schema and parameter descriptions fill most gaps, making it minimally viable but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema provides descriptions for all 15 parameters, including enum options and 'null to clear' semantics. The description's field list adds no meaning beyond what the schema already provides, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the verb 'Update' with a specific resource 'CRM account/customer profile' and lists example fields (name, phone, email, life stage, owner, notes, member code). This is specific enough to distinguish from create/delete account tools, though update_contact is a sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for updating account profile fields, but it does not explicitly state when to use this tool instead of alternatives like update_contact or when not to use it. No exclusions or alternative tool mentions are present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_booking_settingsA
Idempotent
Inspect

Update global booking settings. Pass only the fields you want to change.

ParametersJSON Schema
NameRequiredDescriptionDefault
showCouponNoShow coupon field in booking flow
calendarStyleNoBooking flow calendar presentation
showAccessPassNoShow access pass/package options in booking flow
cooldownMessageNoOptional message shown when cooldown blocks a booking
blockUntilFinishedNoBlock customers from booking again while they have active bookings
globalCooldownDaysNoMinimum days between customer bookings, or null to disable
bookingReminderEnabledNoSend the default pre-booking reminder
sameDayReminderEnabledNoSend an additional same-day reminder before booking start
allowMemberCancellationNoAllow members to cancel bookings from the customer portal
bookingReminderLeadHoursNoHours before booking start for the default reminder
hideUnavailableTimeslotsNoHide unavailable timeslots instead of showing them as full
sameDayReminderLeadHoursNoHours before booking start for the same-day reminder
requireBookingConfirmationNoRequire merchant confirmation before bookings are confirmed
minimumAdvanceBookingMinutesNoMinutes before slot start when customer booking closes. null/0 = no cutoff; set > 0 to require advance notice
memberCancellationCutoffHoursNoHours before booking start when member cancellation closes, or null for no cutoff

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate idempotentHint=true and destructiveHint=false, so the safety profile is known. The description adds the key behavioral trait that only explicitly passed fields are modified and others remain unchanged, which is valuable mutation semantics beyond the annotations. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with zero unnecessary words. The opening phrase 'Update global booking settings' immediately states the action and object, and the second sentence adds an essential usage constraint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although the tool has 15 parameters, the schema provides detailed descriptions for all of them, and the output schema documents the return value. The description's global scope and partial-update instruction fill the main behavioral gap. It is sufficient for an update tool with such rich schema support.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each of the 15 parameters is thoroughly described in the schema itself. The description adds cross-cutting partial-update semantics, clarifying that omitting a parameter leaves it unchanged, which is not encoded in the schema and adds meaning for all parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Update') and names the resource ('global booking settings'), clearly distinguishing it from the read-only counterpart get_booking_settings in the sibling list. The partial-update hint ('Pass only the fields you want to change') adds precision to the scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear context that this tool updates global booking settings and instructs the user to pass only changing fields, which implies partial updates. However, it does not explicitly name alternatives or state when not to use it, though the sibling get_booking_settings makes the read/write distinction obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_campaignA
Idempotent
Inspect

Update an existing campaign. Channel cannot be changed after creation. Pass only fields to change.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName
statusNoStatus filter
segmentIdNoSegment ID
campaignIdYesCampaign ID
scheduledAtNoScheduled timestamp (ISO 8601)
recipientIdsNoExplicit recipient user IDs
channelConfigNoFor email, use subject + htmlBody + optional plainTextBody. Legacy html is normalized to htmlBody.
recipientSourceNoRecipient source: segment | tier | manual

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a mutating, non-destructive, idempotent operation. The description adds valuable context beyond annotations: that the channel is immutable after creation and that updates are partial (only provided fields change). It doesn't describe auth or side effects, but with annotations this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: three short sentences, each with a distinct purpose (action, limitation, usage pattern). No filler or redundant repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 8 parameters, nested objects, and an output schema, the description provides the essential behavioral constraints without over-explaining. It leverages the schema for parameter details and annotations for safety profile, making it sufficiently complete for an 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 100% of parameters, so the baseline is 3. The description adds crucial semantic guidance—'Pass only fields to change'—which clarifies that all parameters except campaignId are optional and that omitted fields retain their existing values. This goes beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Update an existing campaign') with a specific verb and resource. It also distinguishes this tool from siblings by noting the channel immutability constraint, which is unique to updates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (for modifying an existing campaign) and provides a key exclusion: 'Channel cannot be changed after creation.' The instruction 'Pass only fields to change' clarifies the partial-update usage pattern, though it doesn't explicitly name alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_categoryB
Idempotent
Inspect

Update a CMS post category.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName
slugNoURL slug
sortOrderNoSort order (lower = earlier)
categoryIdYesCategory ID
descriptionNoDescription

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds no behavioral context beyond what annotations already provide. It simply states 'Update', which is consistent with readOnlyHint=false, but does not disclose partial update semantics, idempotency implications, or any side effects. The idempotentHint=true annotation already covers safety, but the description itself contributes no additional transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that is appropriately brief and front-loaded. It does not contain fluff, though it is somewhat terse. It is concise without being under-specified to the point of uselessness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema and 100% parameter documentation, so the description need not explain return values or parameters. However, it lacks any mention of prerequisites, restrictions, or update semantics (e.g., whether only provided fields are updated). For a simple update operation, this is acceptable but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are already documented with their types and descriptions. The description adds no extra meaning about how parameters relate to the update operation. It meets the baseline for high schema coverage but does not enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Update) and the resource (CMS post category), distinguishing it from sibling tools like create_category, delete_category, and list_categories. It is specific enough for an agent to know exactly what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. It does not mention that this is for modifying an existing category, nor does it reference create/delete/list counterparts. No context or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_contactB
Idempotent
Inspect

Update fields on an existing contact.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName
emailNoEmail address
phoneNoPhone number
jobTitleNoJob title
contactIdYesThe contact ID
isPrimaryNoMark as the primary contact

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate idempotentHint=true and destructiveHint=false, but the description adds no behavioral context beyond the literal 'update fields.' Critically, it does not clarify whether this is a partial update (only provided fields change) or a full replacement, which is essential for a mutation tool. No additional permissions, side effects, or overwrite semantics are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with zero fluff. It front-loads the core action and resource, making it scannable and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description, combined with the schema and annotations, is adequate for a basic update operation, but it leaves a significant gap: whether omitted fields are preserved or reset. The output schema exists, so return values need no explanation, but the partial-update behavior is undocumented in both description and schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all six parameters having meaningful descriptions, so the baseline is 3. The tool description adds no additional parameter semantics, but the schema handles the burden fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Update') and the resource ('an existing contact'), making the purpose immediately understandable. However, it does not explicitly distinguish from sibling tools like create_contact or set_primary_contact, relying on the tool name for context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for updating already-existing contacts via the word 'existing,' and the required 'contactId' parameter suggests the need for an existing record. However, it provides no explicit guidance on when to prefer this tool over alternatives like create_contact or set_primary_contact, nor does it mention exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_custom_fieldA
Idempotent
Inspect

Update a custom field definition label, type, options, required flag, or sort order.

ParametersJSON Schema
NameRequiredDescriptionDefault
optionsNoAllowed values for select/multiselect fields
fieldTypeNoField type
sortOrderNoDisplay order
fieldLabelNoHuman-readable label
isRequiredNoWhether this field is required
definitionIdYesCustom field definition ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=false, destructiveHint=false, and idempotentHint=true, establishing the safety profile. The description adds value by listing exactly which fields can be updated, which clarifies the scope without contradicting the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that states the action and enumerates the affected attributes concisely. Every word contributes meaning, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a fully documented schema, a present output schema, and annotations covering idempotency and non-destructiveness, the description provides sufficient context for an update tool. It could mention potential side effects of changing field type (e.g., impact on existing values), but this is not strictly necessary given the structured data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for all six parameters, including definitions for fieldLabel, fieldType, options, isRequired, sortOrder, and definitionId. The description summarizes these semantic fields but adds no new detail beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Update' with the resource 'custom field definition' and enumerates the updatable attributes (label, type, options, required flag, sort order). This clearly distinguishes it from sibling tools like create_custom_field, delete_custom_field, and get_custom_field.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for modifying an existing custom field, as it requires a definitionId and refers to updating attributes. However, it does not explicitly state when not to use it or mention alternatives, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_dealA
Idempotent
Inspect

Update a CRM deal. Pass only fields to change; use null for nullable links/fields to clear them.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoDeal name
stageNoPipeline stage, or null to clear
amountNoDeal amount, or null to clear
dealIdYesThe deal ID
ownerIdNoOwner user/team member ID, or null to clear
dealTypeNoDeal type/category, or null to clear
accountIdNoLinked CRM account ID, or null to clear
contactIdNoLinked contact ID, or null to clear
closingDateNoExpected closing date, or null to clear
descriptionNoDeal notes or description, or null to clear
probabilityNoWin probability, or null to clear

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, the description discloses two important behaviors: partial updates (unchanged fields retain values) and null-clearing semantics (passing null clears the field). This adds valuable context beyond the idempotentHint and destructiveHint annotations, which do not capture the clearing nuance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, 18 words, with essential information front-loaded ('Update a CRM deal') and no filler. Every phrase contributes meaning, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 parameters, output schema, annotations), the description covers the critical non-obvious behaviors: partial update and null clearing. The schema documents each parameter, and annotations cover idempotency/safety. While it doesn't mention permissions or return structure, these are not gaps given the rich schema and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter already has a description. The description adds collective meaning by stating 'Pass only fields to change' and 'use null to clear,' which explains the overall update pattern and the meaning of null across all nullable parameters, supplementing the schema's per-field 'or null to clear' notes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Update a CRM deal' with a specific verb and resource, making the tool's purpose clear. It does not explicitly differentiate from sibling tools like update_deal_stage, but the name and scope ('deal' vs 'deal stage') provide adequate distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage instructions: 'Pass only fields to change' and 'use null for nullable links/fields to clear them.' However, it does not explicitly mention when to prefer this tool over alternatives (e.g., update_deal_stage) or provide exclusions, leaving usage vs siblings implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_deal_stageA
Idempotent
Inspect

Move a deal to a different pipeline stage.

ParametersJSON Schema
NameRequiredDescriptionDefault
stageYesNew pipeline stage
dealIdYesThe deal ID
lostReasonNoRequired when moving to lost
probabilityNoOptional win probability (percent string)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a non-read-only, non-destructive, idempotent operation, and the description adds the specific behavior of changing pipeline stage. However, it does not disclose potential side effects like triggering notifications, auditing, or the requirement to provide a lostReason when moving to lost, though the schema covers that parameter constraint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that immediately communicates the function. It is front-loaded, free of fluff, and easy to scan, earning a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity and rich schema/annotations, the description is minimal but adequate. It lacks context about terminal stages, alternative tools, or special behaviors, but the schema and annotations fill in the parameter and safety profile, so the overall combination is acceptable, though not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All four parameters have descriptions in the input schema, including the enum for stage and the conditional requirement for lostReason. The tool description adds no additional parameter-level meaning, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'move' with a target 'different pipeline stage,' clearly indicating a state transition for deals. It distinguishes from generic update_deal and specialized mark_deal_lost/won tools by implying a general stage change rather than a specific final state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no context for when to use this tool over alternatives like mark_deal_lost or mark_deal_won. No mention of prerequisites, side effects, or alternative tools, leaving the agent without guidance on selecting the appropriate tool for a given scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_order_statusA
Idempotent
Inspect

Update the status of a shop order (e.g. confirm, ship, cancel).

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYesNew order status
orderIdYesThe order UUID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a write operation (readOnlyHint=false) and idempotent (idempotentHint=true). The description adds no behavioral context beyond what the schema provides, such as side effects, permission requirements, or validation behavior. It does not contradict the annotations, but adds minimal value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear, front-loaded sentence with useful examples. Every word earns its place, and there is no wasted information or unnecessary length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (2 required params, output schema exists, annotations present), the description is sufficient for an agent to select and invoke the tool. It could optionally note that some status transitions may be irreversible, but this is not a critical gap given the schema enum.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description's examples of statuses are redundant with the enum in the schema. It does not add any new meaning or clarify parameter formats or constraints beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Update') and resource ('status of a shop order'), clearly distinguishing it from other update tools for different entities. It also provides concrete examples of statuses (confirm, ship, cancel), making the tool's purpose immediately understandable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through the tool name and examples, but it does not explicitly state when to use this tool versus alternatives, nor does it mention any prerequisites or restrictions on status transitions. It provides no exclusions or alternative tool references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_outletB
Idempotent
Inspect

Update an existing shop outlet/location by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesOutlet ID (UUID)
nameNoOutlet name
phoneNoContact phone
addressNoStreet address
logoUrlNoLogo URL
isActiveNoWhether outlet is active
latitudeNoLatitude
longitudeNoLongitude
sortOrderNoDisplay sort order
acceptsOrdersNoWhether outlet accepts online orders

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds no behavioral context beyond what the annotations already convey. Annotations indicate idempotentHint=true and destructiveHint=false, so the agent knows it is a safe, repeatable mutation. However, the description does not disclose important operational details such as whether this is a partial update (PATCH-like) or a full replacement, what happens to omitted fields, or potential error conditions. The statement is purely functional and does not enrich the agent's understanding of the tool's runtime behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the action and resource. Every word serves a purpose, and there is no extraneous filler. It is appropriately sized for the task and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, output schema present, annotations available), the description is adequate but leaves gaps. It clearly identifies the operation and resource, and the schema/annotations cover parameter details and safety traits. However, it does not explain the update semantics (e.g., whether unprovided fields are left unchanged or reset), what the response contains, or edge cases like nonexistent IDs. These are clear gaps that prevent a higher score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with every parameter (id, name, phone, address, logoUrl, isActive, latitude, longitude, sortOrder, acceptsOrders) having its own description. The tool description merely references updating 'by ID', adding no new meaning to the structured schema. Since the schema already carries the explanatory burden, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Update an existing shop outlet/location by ID.' It uses a specific verb ('update') with a well-defined resource ('outlet/location') and identifies the key input (ID). This immediately distinguishes it from sibling tools like create_outlet and list_outlets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., 'use create_outlet first to obtain an ID'), scenarios where this tool is preferred, or cases where a different tool should be used. The phrasing 'by ID' implies an existing outlet, but no explicit usage direction is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_postA
Idempotent
Inspect

Update an existing CMS post (any post type). Only provided fields are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
metaNoCustom field values; merged shallowly with existing meta. Use this for structured data, not excerpt.
slugNoURL slug (must be unique per company+type).
typeNoChange post type (e.g. blog_post → treatment). Slug is re-checked for uniqueness under the new type.
titleNoPost title
blocksNoReplaces the entire ordered block array. Use append_post_block / replace_post_block / remove_post_block / reorder_post_blocks for per-block edits. Each block: { id, version, type, data }. Types: paragraph, heading, image, list, quote, code, divider, spacer, embed, html, youtube, file, faq, callout, gallery, cta, accordion, product, columns.
postIdYesThe post ID
statusNoPost status
tagIdsNoTag IDs to sync (replaces existing tags)
excerptNoPlain-text summary only — never JSON. Omit to leave unchanged.
parentIdNoParent post ID for nested types.
seoTitleNoSEO title override
sortOrderNoSort order (lower = earlier)
visibilityNoVisibility
categoryIdsNoCategory IDs
publishedAtNoPublish timestamp (ISO 8601)
featuredImageNoCover image URL
seoDescriptionNoSEO description override

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already covering read/write and destructive hints, the description adds the key behavioral trait that only provided fields are changed (partial update). It does not describe edge cases like type changes, but those are covered in schema parameter descriptions. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, 19 words, front-loaded with verb and resource. Every sentence contributes meaningful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 17 params and a rich schema, the description is terse but sufficient: it states purpose and partial-update behavior, while the schema documents each parameter and the output schema covers return values. It doesn't mention block-level alternatives in prose, but the schema's blocks field does, so completeness is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 17 parameters are already documented. The description adds no parameter-specific detail beyond the overall partial-update semantics; it does not need to compensate for schema gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Update'), resource ('existing CMS post'), and scope ('any post type'). It also specifies the partial-update behavior ('Only provided fields are changed'), distinguishing it from create/delete post and from block-level mutation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for whole-post updates and notes partial updates, but does not explicitly name alternatives like append_post_block for block editing. Context from the schema's blocks parameter does provide that guidance, but the description itself only offers clear context without explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_post_typeA
Idempotent
Inspect

Update a custom post type. Built-in types (blog_post, page) cannot be modified.

ParametersJSON Schema
NameRequiredDescriptionDefault
iconNoIcon name or URL
labelNoDisplay label
sortOrderNoSort order (lower = earlier)
postTypeIdYesPost type ID
labelPluralNoPlural display label
supportsBlocksNoAllow content blocks (rich body)
supportsExcerptNoAllow an excerpt field
supportsNestingNoAllow parent/child nesting
supportsCategoriesNoAllow categories on this post type
supportsFeaturedImageNoAllow a featured image

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=true, so the description does not need to restate safety. It adds value by disclosing the built-in type restriction, but it does not mention behavior such as partial-update semantics, error handling for invalid IDs, or effect on existing posts. This is adequate given annotation coverage but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and contains no fluff. The restriction on built-in types is a single concise clause that earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 10 parameters and an output schema, the description covers the most critical context (built-in type restriction) but does not clarify whether updates are partial or full, nor what happens when attempting to modify a built-in type. The schema and annotations help, but the description could be more complete for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all 10 parameters, each with a clear description. The tool description adds no additional parameter-level context beyond what the schema already provides. Baseline is 3, and there is no compelling extra value from the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates a custom post type, with a specific verb and resource. It also adds the important distinction that built-in types cannot be modified, which differentiates it from general update operations. However, it does not explicitly name sibling tools like create_post_type or delete_post_type, so it is not a full 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear when-to-use guidance by specifying that built-in types are off-limits, implying it is for custom post types. It does not explicitly name alternatives like create_post_type for non-existing types, but the exclusion is clear and helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_post_type_fieldA
Idempotent
Inspect

Update a field on a post type schema. Changing fieldType or flipping required=true is blocked when posts already use the field unless force=true is passed.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoOverride safety guards. Required to change fieldType or flip required=true on a field that already has data in posts.
labelNoDisplay label
fieldsNoChild fields for fieldType="repeater".
fieldIdYesField ID
optionsNoFor URL fields, { uploadable: true } enables file upload while preserving a URL string in meta.
helpTextNoHelp text shown next to the input
requiredNoWhether the field is required
fieldTypeNoField type
sortOrderNoSort order (lower = earlier)
postTypeIdYesPost type ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses a critical behavioral guard: changing fieldType or flipping required=true is blocked when posts already use the field unless force=true is passed. This is beyond what annotations provide (idempotentHint, destructiveHint) and adds essential safety context. It 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that front-loads the action and includes the most important safety constraint. No wasted words; every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich input schema (10 params, all described) and annotations, the description covers the primary caveat needed for correct invocation. The output schema likely handles return values. While it could mention updating vs creating fields, the current description is sufficient for the agent to understand the tool's scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 mentions force=true, but the schema already thoroughly describes the force parameter with the same caveat. No new parameter-specific meaning is added beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Update a field on a post type schema.' This is a specific verb+resource, and it distinguishes itself from sibling tools like create_post_type_field, delete_post_type_field, and reorder_post_type_fields. The safety note adds further specificity about what changes are allowed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context that this tool is for updating an existing field on a post type schema, but it does not explicitly mention alternatives or when not to use it. There is no exclusion like 'for creating a field, use create_post_type_field', so it falls short of explicit when/when-not guidance, but the context is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_productA
Idempotent
Inspect

Update an existing product. Only provided fields are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
skuNoSKU code
nameNoProduct name
priceNoPrice as decimal string
statusNoProduct status
productIdYesThe product ID
categoryIdsNoCategory IDs (first is primary). Replaces all existing categories.
descriptionNoProduct description
memberPriceNoMembers-only price
discountPriceNoDiscounted price

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true, so the agent knows this is a safe, non-destructive write. The description adds valuable context that only provided fields are changed, which is a critical behavioral trait beyond the annotations. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise: two short sentences that state the operation and the key partial-update behavior. Every word earns its place, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 9 parameters with 100% schema coverage, an output schema, and annotations covering safety properties, the description is complete enough for typical usage. It clearly communicates the core action and partial-update behavior. It does not need to repeat schema details, though it could mention edge cases like product-not-found, but that is not critical given the required productId parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and each parameter has a clear description in the schema. The description in the tool description adds no parameter-specific information beyond the general partial-update behavior, which applies to all parameters. Baseline 3 is appropriate since the schema carries the semantic burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Update') and resource ('existing product'), and distinguishes from siblings like create_product and get_product. The additional phrase 'Only provided fields are changed' clarifies the partial-update semantics, 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: to modify an existing product, not to create one. While it does not explicitly name alternatives like create_product, the context is clear enough for correct selection. No exclusions are stated, but the update vs create distinction is evident from the name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_promotionA
Idempotent
Inspect

Update an existing promotion. Pass only the fields you want to change.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoPromotion code
nameNoName
typeNoType
valueNoDiscount value (numeric or decimal string)
endsAtNoEnd timestamp (ISO 8601)
statusNoStatus filter
startsAtNoStart timestamp (ISO 8601)
promotionIdYesPromotion ID
usageLimitTotalNoTotal usage limit across all customers
usageLimitPerCustomerNoUsage limit per customer

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as idempotent and non-destructive. The description adds valuable behavioral detail that only supplied fields are changed, implying unspecified fields are preserved. It does not mention side effects or validation, but it 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the tool's purpose, and every word earns its place. There is no redundancy or unrelated detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a 10-parameter schema fully documented, an output schema present, and annotations covering idempotency and safety, the description is complete enough for correct invocation. The essential PATCH semantics are explicitly stated, and nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage of parameter descriptions, so the description only needs to add semantics beyond that. The phrase 'Pass only the fields you want to change' clarifies that all fields except promotionId are optional and that omitted fields retain their current values, which is valuable PATCH-style guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Update' with the resource 'promotion' and clarifies 'existing promotion', distinguishing it from create_promotion, delete_promotion, and get_promotion. The instruction 'Pass only the fields you want to change' clearly identifies partial-update semantics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States this is for modifying an existing promotion, which implies it is not for creating, deleting, or validating promotions. It lacks explicit exclusions or alternatives, but the phrase 'existing promotion' plus the partial-update instruction provides clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_segmentA
Idempotent
Inspect

Update an existing customer segment by id. Pass only the fields to change; criteria replaces the existing rules.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew segment name
criteriaNoReplace dynamic criteria, or null to clear criteria
segmentIdYesThe segment ID to update
descriptionNoNew segment description
segmentTypeNoChange segment type

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only, is idempotent, and is not destructive, so the bar is lower. The description adds valuable behavioral context: it is a partial update ('Pass only the fields to change') and that criteria overwrites existing rules ('criteria replaces the existing rules'). This goes beyond the annotation hints without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences (18 words), front-loaded with the action and resource, followed by two crucial hints. There is no filler, redundant schema repetition, or ambiguity. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters with a complex criteria object, the description plus full schema coverage provides enough information to select and invoke it correctly. It explains the partial-update semantics and criteria replacement, leaving no major gaps. The presence of an output schema further reduces the need to explain return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% coverage with descriptive parameter docs, so the baseline is 3. The description adds extra meaning by explaining the overall update pattern (only specified fields change) and highlighting the criteria replacement behavior, which complements the schema's per-field descriptions and helps the AI understand how to construct a valid request.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses 'Update an existing customer segment by id' – a specific verb ('Update') and resource ('customer segment') with a unique identifier, clearly distinguishing it from create/delete/get segment siblings. It also specifies the partial-update behavior ('Pass only the fields to change'), reinforcing the exact operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context on when to use the tool: any time you need to modify an existing segment. It states the partial-update pattern ('Pass only the fields to change') and highlights the critical replacement semantics for criteria, but it does not explicitly mention alternative tools (e.g., set_segment_members) or exclusions. Still, the usage intent is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_serviceA
Idempotent
Inspect

Update an existing booking service. Pass only the fields you want to change.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName
priceNoDecimal string, e.g. "80.00"
statusNoStatus filter
capacityNoParticipants per slot
serviceIdYesService ID to update
categoryIdNoCategory ID
visibilityNoVisibility: public | members_only | hidden
descriptionNoDescription
requireLoginNoIf true, guests cannot book without an account
requiresStaffNoWhether the service requires staff assignment
commissionTypeNoCommission type: "fixed" or "percentage"
commissionValueNoCommission amount as decimal string
cooldownMinutesNoCooldown minutes between bookings
durationMinutesNoDuration of one booking in minutes
requiresResourceNoWhether the service requires a resource (room/equipment)
commissionCurrencyNoCommission currency (ISO code)
requiresConfirmationNoIf true, bookings start pending and need explicit confirmation

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the partial-update behavior (unspecified fields stay unchanged), which is a meaningful behavioral trait not directly captured by the annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false). This adds useful context beyond the structured metadata, though it doesn't discuss error handling or prerequisites.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entire description is a single, compact sentence with two clear clauses. It is front-loaded with the main action and immediately provides the key usage rule. Every word earns its place; there is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 17 parameters, the schema descriptions fully cover each property, and an output schema exists to explain return values. The description conveys the core purpose and partial-update behavior, which is sufficient for correct invocation. It lacks explicit guidance on differentiating it from closely related service tools (e.g., update_service_schedule, assign_staff_to_service), but the resource term 'booking service' is reasonably specific.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description adds valuable meta-semantics by explaining that parameters are treated as 'fields to change' and can be passed selectively, which clarifies how to use the optional properties beyond what the schema alone states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states what the tool does with a specific verb and resource: 'Update an existing booking service.' The word 'existing' distinguishes it from creation tools, and the term 'booking service' helps differentiate it from other service-related tools like update_service_schedule or update_service_package.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The instruction to 'Pass only the fields you want to change' provides clear guidance on partial update semantics, indicating that omitted fields will remain unchanged. It does not explicitly mention alternatives or exclusions, but it gives coherent context for when to use this tool (updating an existing service's fields).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_service_packageA
Idempotent
Inspect

Update an existing service package. Pass only the fields you want to change.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName
priceNoDecimal string, e.g. "80.00"
statusNoStatus filter
packageIdYesService package ID to update
validDaysNoValidity period in days
descriptionNoDescription
sessionCountNoNumber of sessions in the package
applicableTypeNoWhat this package applies to: services | products | both
applicableItemsNoItem IDs the package can be redeemed against

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds the partial-update behavioral trait (only provided fields are changed), which is valuable. However, it does not disclose other behaviors like validation failures, missing package handling, or atomicity, so it remains at the level expected given annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is precisely two short sentences: 'Update an existing service package. Pass only the fields you want to change.' Every word earns its place, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 9 parameters, but the input schema covers all of them with descriptions, an output schema exists, and annotations provide safety details. The partial-update instruction is the key contextual gap-filler and is present. Missing details like cross-field dependencies (e.g., applicableItems vs applicableType) are not in the description, but the schema descriptions also do not cover them, so the description meets a sufficient bar for complex update tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all 9 parameters having descriptions in the input schema. The description itself adds no parameter-level detail beyond the general partial-update hint; the schema carries the full semantic load for parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Update an existing service package' with a specific verb ('Update') and resource ('service package'). The word 'existing' differentiates it from create_service_package, and the verb distinguishes it from delete/restore/list sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The instruction 'Pass only the fields you want to change' provides clear partial-update usage guidance, and 'existing' implies this tool is for modifying already-created packages rather than creating new ones. It does not explicitly name 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.

update_service_scheduleA
Idempotent
Inspect

Update a service schedule window. Pass only fields to change.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDate (YYYY-MM-DD)
notesNoFree-form notes
endTimeNoEnd time (HH:mm)
staffIdNoStaff member ID
byWeekdayNoWeekdays (0=Mon..6=Sun) for weekly recurrence
startTimeNoStart time (HH:mm)
recurrenceNoRecurrence rule: none | daily | weekly | monthly
resourceIdNoResource ID (room/equipment)
scheduleIdYesSchedule ID
maxCapacityNoMaximum capacity for this slot
recurrenceEndDateNoRecurrence end date (YYYY-MM-DD)
recurrenceIntervalNoRecurrence interval (e.g. every N weeks)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate it's a write operation (readOnlyHint=false) and idempotent (idempotentHint=true). The description adds the important partial-update behavior ('Pass only fields to change'), clarifying that omitted fields retain their existing values. This goes beyond annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences and nine words, front-loaded with the action. Every word earns its place with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With schema descriptions and an output schema covering parameters and return values, the description sufficiently covers the key behavioral nuance (partial update). It could be more complete by explaining how to clear a field or how recurrence fields interact, but for an update tool this is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 100% of parameters, so the baseline is 3. The description adds the key semantic that only provided fields are modified, which is not captured in the schema. However, it doesn't address how to null-out fields (e.g., passing null explicitly).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Update') and resource ('service schedule window'), which distinguishes it from sibling tools like create_service_schedule and list_service_schedules. However, 'window' is slightly ambiguous without schema context, and it doesn't explicitly mention that it operates on an existing schedule by ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It doesn't mention that create_service_schedule is for new schedules or that update_service handles service-level changes. The phrase 'Pass only fields to change' is parameter usage guidance, not tool selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_surveyA
Idempotent
Inspect

Update a survey draft or publishing configuration. Use questionBlocks to replace the ordered form block list.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoURL slug
titleNoSurvey title
openAtNoOptional ISO datetime when the survey opens
statusNoSurvey status
closeAtNoOptional ISO datetime when the survey closes
settingsNoSurvey settings such as allowMultipleResponses, collectEmail, collectIpAddress, requireAuthentication, showProgress, successMessage
surveyIdYesSurvey ID
visibilityNoSurvey access mode
descriptionNoSurvey description
questionBlocksNoOrdered survey question blocks

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds valuable behavioral context: questionBlocks replaces the entire ordered form block list, which is a key update behavior not obvious from the schema alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. The primary purpose is front-loaded, and the critical parameter behavior is stated succinctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 10 parameters and nested objects, the description covers the core intent and a key parameter behavior. Annotations and output schema fill in safety and return-value details, but the description could optionally mention prerequisites like the survey must exist or the effect of status changes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds extra meaning for the questionBlocks parameter by explaining it replaces the ordered list, going beyond the schema's 'Ordered survey question blocks' description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Update') and the resource ('a survey draft or publishing configuration'), distinguishing it from create_survey and archive_survey. It also adds specific scope by mentioning questionBlocks replacement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear context for when to use this tool: when updating an existing survey's draft or publishing configuration. It does not explicitly name alternatives or exclusions, but the context is unambiguous for the primary use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_tagA
Idempotent
Inspect

Rename or recolor an existing CRM tag.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew tag name
colorNoNew color, or null to clear
tagIdYesThe tag ID to update

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate that the tool is not read-only (readOnlyHint=false), not destructive (destructiveHint=false), and idempotent (idempotentHint=true). The description adds minimal behavioral context beyond the action itself, such as the fact that it modifies name/color, but does not disclose additional traits like auth requirements 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the tool's purpose without redundancy. It is front-loaded and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple update tool with rich schema annotations and an output schema, the description is sufficient. It covers the core purpose, and the schema handles parameter details. However, it could have briefly mentioned that only provided fields are updated (partial update), though this is often implied for update operations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with each parameter having a clear description ('New tag name', 'New color, or null to clear', 'The tag ID to update'). The tool description adds no additional parameter semantics beyond what the schema already provides, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with specific verbs ('rename' or 'recolor') and a specific resource ('existing CRM tag'). It distinguishes itself from sibling tools like create_tag, delete_tag, and list_tags by focusing on modifying an existing tag's properties.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it is for updating an existing CRM tag, which implicitly tells the agent not to use it for creating or deleting tags. While no explicit alternative tools are named, the usage is straightforward for an update operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_taskB
Idempotent
Inspect

Update a task (status, priority, assignee, due date, completion).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoTitle
statusNoStatus filter
taskIdYesThe task ID
dueDateNoDue date (ISO 8601)
priorityNoPriority
assigneeIdNoAssignee user ID
descriptionNoDescription

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate that this is a mutation (readOnlyHint=false), not destructive (destructiveHint=false), and idempotent (idempotentHint=true). The description adds no behavioral details beyond listing fields; it does not mention partial-update semantics, validation, or side effects. The term "completion" is ambiguous and does not correspond directly to a schema property.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence and front-loaded with the action and resource. However, the inclusion of "completion" is slightly redundant/ambiguous, and could be omitted for clarity. Still, it is appropriately brief.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full parameter descriptions, and annotations, the tool is reasonably well specified. The description is minimal but sufficient for basic understanding. It lacks important operational context such as whether only provided fields are updated or if the request requires specific permissions, which matters for an update operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema fully documents each parameter. The description only repeats field names and adds no extra meaning. It does mention "completion" which is not a parameter and could confuse, but overall the schema carries the parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb ("Update") and resource ("a task") and enumerates the updatable fields (status, priority, assignee, due date, completion). This unambiguously distinguishes it from sibling tools like create_task, get_task, delete_task, and list_tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The tool name implies modification of existing tasks, but the description does not explicitly state this or contrast with create_task/delete_task.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_ticket_statusB
Idempotent
Inspect

Update the status of an existing support ticket.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYesNew status
ticketIdYesThe ticket ID to update

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, but the description adds no behavioral context beyond stating the update action. It does not disclose failure modes, side effects on related data, or authorization requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the action and resource. There is no redundant or irrelevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For this simple two-parameter tool with complete schema, annotations, and an existing output schema, the description is sufficient for basic selection and invocation. It lacks only optional context about status transition rules, but that is not critical given the enum in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides full descriptions for both parameters, including an enum of valid statuses for 'status'. With 100% schema description coverage, the description does not need to add parameter details; the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Update') and clearly states the resource ('the status of an existing support ticket'). It distinguishes the tool from siblings like create_ticket, list_tickets, and get_ticket_stats by specifying the exact action on a ticket's status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. It does not mention prerequisites (e.g., ticket must exist) or contrast with create_ticket or update_order_status, leaving the agent to infer usage from the name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_post_cover_from_urlAInspect

Download an external image URL into R2 and attach it as the post's featuredImage. Replaces the manual flow of pasting external URLs (which break when the source goes down). Validates content-type starts with image/ and rejects payloads larger than 20 MB. No AI credits charged — only standard storage.

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYesThe post ID
sourceUrlYesPublic http(s) URL to fetch the image from. Must respond with an image/* content-type.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses that the operation downloads to R2, validating content-type and size, and notes that no AI credits are charged. It also clarifies the attachment behavior to featuredImage, adding value over the bare annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each with a distinct purpose: action, rationale, validation rules, and cost. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the workflow, constraints, cost, and context for use. An output schema exists, so return values need not be explained. Minor gaps like behavior on pre-existing featuredImage are not critical, but the tool is otherwise well-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers both parameters with descriptions, so baseline is 3. The description adds meaningful context: the purpose of sourceUrl (external URL to download), the storage target (R2), and the size limit beyond what the schema provides, elevating it to 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Download') with a clear resource ('external image URL') and outcome ('attach it as the post's featuredImage'). This distinguishes it from sibling tools like generate_post_cover, which creates an image, 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly frames this as a replacement for the manual flow of pasting external URLs, indicating when to use it. It also provides usage constraints (content-type validation, 20 MB limit) but does not name alternative tools explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upsert_survey_workflowA
Idempotent
Inspect

Create or update a survey automation workflow, usually triggered by survey_response_submitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesWorkflow name
graphYesWorkflow graph definition
statusNoWorkflow status
triggerNoTrigger name, default from graph.trigger
surveyIdYesSurvey ID
workflowIdNoExisting workflow ID when updating

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, destructive=false, and idempotent=true, and the description does not contradict them. The description adds only minor context about the trigger event and does not detail side effects or behavior on update, but the upsert semantics are clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that conveys the action, resource, and typical trigger without redundant words. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complete parameter schema, annotations, and output schema, the description is adequate for orientation. It could clarify that workflowId selects update vs create, but the schema already covers this; the graph object structure is also defined in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All six parameters are fully described in the schema (100% coverage), so the baseline of 3 applies. The description adds no additional parameter-level meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific action ('Create or update') and resource ('survey automation workflow'), and adds the typical trigger context. This clearly distinguishes it from sibling tools like list_survey_workflows or create_survey.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given on when to use this tool versus alternatives. The mention of 'usually triggered by survey_response_submitted' describes the workflow's trigger, not the tool's invocation context. There are no exclusions or alternative tool references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_campaignA
Read-onlyIdempotent
Inspect

Validate a campaign before sending. Resolves contactable recipient count and previews the final email subject/body without sending.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaignIdYesCampaign ID to validate

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and non-destructive behavior. The description adds meaningful behavior beyond that: it 'resolves contactable recipient count' and 'previews final email subject/body', giving a concrete picture of what the validation performs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise, front-loaded sentences. Every phrase adds value without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A single-parameter tool with an output schema present. The description fully covers the tool's purpose, key behaviors, and nothing is missing given the low complexity and existing structured metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has a single required parameter 'campaignId' with a description and 100% schema coverage, so the schema already carries full parameter meaning. The description does not add additional parameter detail, which is acceptable given the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description specifies the verb 'validate' targeting a campaign, and uniquely states it resolves contactable recipient count and previews the email without sending. This clearly distinguishes it from siblings like create_campaign or validate_promotion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'before sending' provides clear timing context, and 'without sending' contrasts with send actions. It implies using this as a pre-flight check, though it does not explicitly name alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_promotionA
Read-onlyIdempotent
Inspect

Check if a promotion code is valid for a given order. Returns isValid, discount amount, and an error code/message if invalid. Use before applying to a checkout.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesOrder subtotal in major units (dollars, not cents)
channelYesWhere the promo is being applied
accountIdNoCustomer account ID — used for per-customer usage limits
promotionCodeYesThe code customer entered

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, reducing the burden on the description. The description adds behavioral context by specifying the return payload ('Returns isValid, discount amount, and an error code/message if invalid'). This is valuable beyond annotations, though it doesn't cover edge cases or error specifics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with the purpose front-loaded. No filler or redundancy. Every word adds value, delivering purpose, return info, and usage guidance in less than 30 words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, complete parameter documentation, and read-only annotations. The description covers purpose, usage, and return behavior, which is sufficient for a simple validation tool. Minor gap: 'given order' is not formally tied to the parameters, but this is a minor ambiguity given the schema and context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds minimal param context ('for a given order') but doesn't clarify how amount, channel, or accountId map to an order. Baseline 3 applies since the schema does the heavy lifting and the description adds no significant param meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with a specific verb+resource: 'Check if a promotion code is valid for a given order.' This clearly distinguishes it from sibling tools like create_promotion, get_promotion, and validate_campaign. It also states the return values (isValid, discount amount, error code/message), making the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear usage context with 'Use before applying to a checkout.' This tells the agent when to invoke the tool, but it does not explicitly mention when not to use it or name alternative tools. The guidance is sufficient for the primary use case but lacks exclusionary details.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

void_invoiceA
Destructive
Inspect

Void an invoice. Destructive — invoice can no longer be paid or edited; existing payments are preserved as history. Cannot void invoices that are already PAID or VOIDED.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceIdYesInvoice ID to void

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTool result payload — shape varies per tool, see the tool description
summaryYesOne-line human-readable summary of the action
renderTypeYesUI rendering hint for the result
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, but the description adds substantial value by explaining exactly what destruction entails: invoice can no longer be paid or edited, existing payments are preserved as history. Also discloses the state restrictions, enriching the annotation 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose. Every clause adds essential information including constraints and side effects. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (single parameter) and the presence of an output schema, the description fully covers what the tool does, what happens, and what cannot be done. It provides complete operational context for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers the single parameter invoiceId with a clear description. The tool description adds no further parameter details, but since schema coverage is 100%, the description need not compensate. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Void an invoice' with a specific verb and resource, and clarifies the meaning of voiding (cannot be paid or edited). It distinguishes the tool from siblings like delete_invoice and restore_invoice by explaining the unique state transitions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context for when to use the tool (to void an invoice) and includes a key exclusion: cannot void invoices that are already PAID or VOIDED. Does not explicitly mention alternatives, but the constraints and 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.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • F
    license
    -
    quality
    B
    maintenance
    The owner-verified local business data + service & menu-price layer for AI agents. Owner-authored business profiles where every response carries provenance — verification level, completeness score, freshness timestamps, and upstream sources. * Search & profiles — find businesses by name, category, city, or geo-radius; full profiles with contacts, hours, media, ratings. * Price layer
    Last updated
  • A
    license
    -
    quality
    B
    maintenance
    AI-native CRM with 33 tools. Pipeline, leads, health scores, revenue analytics, CSV import/export.
    Last updated
    3
    MIT
  • A
    license
    -
    quality
    B
    maintenance
    Turns Claude Code, Claude Desktop, Cursor, Windsurf or ChatGPT into a WhatsApp operator that knows your customers, your templates, your wallet, and your funnel.
    Last updated
    16
    3
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.