FavCRM
This connector has been replaced by https://glama.ai/mcp/connectors/io.favcrm/favcrm/admin
Server Details
An agentic CRM for service businesses — bookings, customers, WhatsApp, loyalty, invoicing — with a public MCP server any AI agent can operate.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 3.9/5 across 190 of 190 tools scored. Lowest: 2.8/5.
Each tool targets a distinct resource and action, with clear descriptions that minimize ambiguity. Even related tools like create_post vs create_post_type are well-separated by their targets.
All tools follow a consistent verb_noun pattern (e.g., create_account, list_services, update_post), with no mixing of naming conventions. The pattern is predictable throughout the set.
190 tools is excessively large for any server, far exceeding the typical 3-15 tool range. The sheer volume overwhelms agents and suggests poor scoping, even for a comprehensive CRM platform.
The tool set covers CRUD operations across many domains (CRM, bookings, marketing, CMS, etc.), but notable gaps exist (e.g., no delete_account, delete_contact, update_booking). These are minor given the vast surface.
Available Tools
223 toolsaccept_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.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Invite token returned by create_team_member_invite or from the invite link |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool sends a 6-digit verification code to the invited email, which is a key side effect. Annotations already indicate non-idempotent (idempotentHint=false) and mutation (readOnlyHint=false), so the description adds appropriate context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Front-loaded with the step context and action, followed by the next step. Very efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description clearly explains the tool's role in a two-step process. Since an output schema exists, it is acceptable that return values are not detailed. Some minor gaps exist (e.g., token source), but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the parameter 'token' is well-documented in the schema. The tool description does not add further parameter details; it only mentions 'invite token' in context. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it is 'Step 1 of agentic team invite acceptance' and specifies the action: validates token and sends verification code. This clearly distinguishes it from the sibling tool 'accept_team_invite_verify' which is step 2.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description positions itself as the first step and instructs to call 'accept_team_invite_verify' next. However, it does not mention where to obtain the invite token or prerequisites, relying on the schema's parameter description for that detail.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 6-digit code from the invite email | |
| name | No | Optional display name when creating a new user | |
| token | Yes | Invite token returned by create_team_member_invite or from the invite link |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses three main actions (verify, join, return) and confirms write operation (readOnlyHint=false). Does not discuss error states or idempotency, but sufficient for basic behavior awareness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence front-loaded with purpose. Every word earns its place, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main actions but omits that a new user can be created via the optional 'name' field. Given the output schema exists, returns are somewhat covered, but the optional user creation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have schema descriptions (100% coverage). The description adds context that the token comes from the invite creation step, which is helpful beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it's step 2 of invite acceptance, with specific actions: verify code, join user, return API key. Distinguishes from sibling 'accept_team_invite_request' as the next step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Step 2' and mentions the token source (create_team_member_invite or invite link), guiding when to use. Could be improved by noting not to use before step 1.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Friendly title for the document | |
| content | Yes | Document body text |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: it confirms the tool stores a document, clarifies that embedding and retrieval are handled elsewhere, and implies an immediate write operation. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise, front-loaded sentences with no wasted words. Each sentence serves a distinct purpose: action, use cases, and storage detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple add tool with fully described schema, the description is adequate. It explains storage and retrieval context, though it could mention duplicate handling or overwrite behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with basic descriptions, but the description adds value by explaining the type of content expected (policies, FAQs, etc.) and that 'name' is a friendly title, which enriches the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a free-form text document to the knowledge base, lists specific use cases (policies, FAQs, etc.), and distinguishes it from siblings like query, delete, and scrape tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear examples of when to use the tool (pasted policies, FAQs, etc.) but does not explicitly mention when not to use it or suggest alternatives like scrape_knowledge_url for web content.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| blocks | Yes | Block(s) to append | |
| postId | Yes | The post ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds behavioral context: blocks are appended to the end, and each block must follow a specific structure with required fields id, version, type, data along with a list of supported types. It does not cover side effects, permissions, or error conditions, but the annotations provide the safety profile. This is a reasonable addition beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two sentences, with the key action and requirement front-loaded. Every word serves a purpose: the tool's action, target, block format, and supported types. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, detailed nested schema, and an output schema), the description covers the core functionality well. It explains the block requirement and lists all 17 block types. It does not discuss return value (output schema exists), error handling, or edge cases, but for an append tool this is sufficient. The presence of an output schema alleviates the need to describe return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, meaning the schema already fully documents the two parameters (postId and blocks). The description summarizes the block structure and lists types, which adds some convenience but does not clarify parameter semantics beyond the schema. For instance, it doesn't explain how to construct a block's 'data' for each type (though the schema's oneOf provides that). So the description adds marginal value, earning a baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Append' and the resource 'blocks to a post'. It specifies that blocks are added to the 'end of a post', which is precise. Sibling tools like 'remove_post_block', 'reorder_post_blocks', and 'replace_post_block' have distinct purposes, so this tool is well-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (to add blocks at the end of a post) but does not explicitly mention when not to use it or provide alternatives. For example, it doesn't contrast with 'replace_post_block' or 'insert' (if such existed). The usage context is clear but lacks explicit exclusions or guidance on adjacent tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_surveyADestructiveIdempotentInspect
Archive a survey and remove it from active survey lists.
| Name | Required | Description | Default |
|---|---|---|---|
| surveyId | Yes | Survey ID to archive |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and idempotentHint=true. The description adds that the survey is removed from active lists, but does not disclose details about recoverability, permissions, or impact on existing invitations/responses. With annotations covering the main behavioral traits, the description adds moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the action, no unnecessary words. Achieves maximum conciseness while still conveying purpose and effect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for a simple archive action given annotations and output schema. However, it lacks context about reversibility (e.g., whether archived surveys can be restored) and side effects on survey data or active workflows. Sibling tools include restore_* for other entities, but no explicit mention here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter surveyId, with a clear description in the schema. The tool description does not add additional 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Archive' and resource 'survey', and states the effect 'remove it from active survey lists'. This clearly distinguishes it from sibling tools like create_survey, get_survey, list_surveys, and update_survey.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives, such as update_survey or delete_survey. The description implies usage when archiving is intended, but does not provide exclusions or mention prerequisites.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | users.id from list_staff.userId | |
| serviceId | Yes | Service ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a non-readonly, non-destructive mutation. The description's verb 'assign' aligns with a write operation, but it does not disclose potential side effects (e.g., replacing existing assignments) or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second provides a crucial parameter hint. No unnecessary words, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple assignment tool with an output schema and low parameter count, the description covers the essential: what it does and how to supply the userId. Could mention potential overwrite behavior, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the description adds value by clarifying that userId should come from 'list_staff.userId', providing a meaningful cross-reference. ServiceId is less elaborated, but schema description suffices.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Assign a staff member to a booking service') and identifies the resource. It provides a specific hint on obtaining the userId from list_staff, but does not explicitly differentiate from sibling tools like 'link_resource_to_service'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by instructing to pass the userId from list_staff, suggesting a prerequisite call. However, it does not provide explicit guidance on when to use this tool versus alternatives or what to avoid.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | The ai-media job ID (from generate_image, generate_post_cover, or POST /v6/merchant/ai-media/generate) | |
| postId | Yes | The post ID | |
| assetIndex | No | Which asset to use when the job produced multiple outputs. Default 0. | |
| pollIfRunning | No | When true, advance polling once if the job is still running. Default true. | |
| pollTimeoutMs | No | When pollIfRunning is true, wait up to this long for terminal state. Default 30000. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it verifies the job belongs to the company and succeeded, and does not charge credits (charged at submit). This adds behavioral context beyond annotations. However, it doesn't mention potential side effects like overwriting an existing cover, though annotations already show destructiveHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: three sentences that front-load the purpose, then usage context, then verification and credit info. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the full schema coverage, output schema exists, and annotations provide some safety hints, the description is complete. It covers purpose, usage scenarios, verification, and credit behavior, making it sufficient for an agent to decide when and how to invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining the overall scenario (reusing a job), which helps interpret parameters like jobId, pollIfRunning, etc. It provides enough context to understand parameter roles beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool attaches a previously generated ai-media job's output as the post's featuredImage. It specifies the verb 'attach' and resource 'post cover', and distinguishes from siblings like generate_post_cover and upload_post_cover_from_url by indicating reuse scenario.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use: when generate_post_cover timed out (job kept running) or when reusing the same generation across multiple posts. It provides clear context for when this tool is appropriate versus alternatives.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tagId | Yes | Tag ID to attach | |
| accountIds | Yes | Member/account IDs to tag (max 100) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, so the tool is clearly a write operation. The description adds the context of segmenting members but does not disclose details like whether attachments overwrite existing tags or cause side effects. With annotations present, the description provides adequate but not rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that communicates the primary action, target, and a use case. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple parameter structure, the presence of an output schema, and annotations covering behavioral traits, the description sufficiently explains the tool's purpose and context. It could mention the maximum number of account IDs (100) explicitly, but the schema already documents that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters (tagId as string, accountIds as array with max 100) with 100% coverage. The description does not add additional meaning or constraints beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Attach') and the resource ('tags to a member/account'), and it provides a specific use case ('segmenting members after filtering'). This distinguishes it from sibling tools like 'detach_tags' or 'create_tag'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a context hint ('Useful for segmenting members after filtering'), which implies when to use the tool. However, it does not explicitly state when not to use it or compare it to alternatives like 'detach_tags'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_bookingADestructiveInspect
Cancel a booking and create a durable refund receipt. Uses the merchant refund setting unless refundMethod is provided.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Cancellation reason | |
| bookingId | Yes | The booking ID to cancel | |
| refundMethod | No | Refund cash manually or convert refundable cash to member credit | |
| idempotencyKey | Yes | Unique key for this cancellation attempt; reuse it only when retrying the same request |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond the destructiveHint annotation by stating that a durable refund receipt is created and that the refund method follows merchant settings unless overridden. It does not describe all consequences of cancellation, but the annotation covers the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action and then a concise detail about refund behavior. Every word contributes value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core action and the refund behavior, and an output schema exists to explain return values. It does not elaborate on idempotency or retry semantics, but the idempotencyKey parameter description in the schema covers that. Overall adequate for a destructive mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing baseline 3. The description adds extra semantics for refundMethod by explaining the default merchant setting, which exceeds the baseline. Other parameters are adequately described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool cancels a booking and creates a durable refund receipt, using a specific verb and resource. It distinguishes itself from related booking tools like confirm_booking or complete_booking by focusing on cancellation and refund receipt creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to cancel a booking, but it does not provide explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. It mentions refundMethod override, but no context on when to choose manual vs account_credit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_subscriptionADestructiveInspect
Cancel a subscription. Destructive — turns off auto-renew and prevents further billing cycles. Existing paid periods stay valid until end.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint to true. The description adds valuable detail: explains what destruction means in this context (turns off auto-renew, prevents further billing, existing paid periods remain valid). This goes beyond the annotation and fully discloses the behavioral implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of three short sentences. It front-loads the key action and each sentence provides unique value: action, destructive nature, and the effect on billing and existing periods. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, one-parameter destructive operation with an existing output schema and clear annotations, the description covers essential behavioral aspects. It lacks mention of prerequisites (e.g., having an active subscription) but is otherwise sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the subscriptionId parameter already described as 'Subscription ID'. The description adds no additional parameter-level detail beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool cancels a subscription and specifies that it turns off auto-renew, preventing future billing. It implicitly distinguishes from sibling tools like pause_subscription by labeling it 'Destructive', indicating permanent action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for use (final cancellation of auto-renew and billing) but does not explicitly mention when not to use it or name alternative tools such as pause_subscription or resume_subscription. The destructive label helps, but explicit guidance would improve.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_plan_operationARead-onlyIdempotentInspect
Preflight whether an intended operation is allowed by token scopes, enabled modules, subscription state, and quota. Provide toolName, quotaCode, or moduleCode.
| Name | Required | Description | Default |
|---|---|---|---|
| delta | No | Planned usage increment. Currently quota checks are single-resource preflights. | |
| toolName | No | MCP tool name to preflight, e.g. create_account | |
| quotaCode | No | Quota code to check, e.g. contacts or mcp_calls_per_minute | |
| moduleCode | No | Module code to check, e.g. whatsapp or crm |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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 valuable context about the specific checks performed (scopes, modules, subscription, quota), complementing the annotations effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that conveys the essential information without any extraneous wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simple preflight nature, existing annotations, and an output schema, the description provides sufficient context. It covers the purpose, key checks, and parameter expectations adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description restates that toolName, quotaCode, or moduleCode should be provided, adding no new semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose as a preflight check for operations, listing the specific checks (token scopes, enabled modules, subscription state, quota). This clearly distinguishes it from sibling tools that perform actual operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (before performing an operation to check permissibility) but does not explicitly mention alternatives or when not to use it. The context is clear but could be improved with direct guidance.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Override the name of the cloned entity (defaults to "Original Name (Copy)") | |
| entityId | Yes | ID of the entity to clone | |
| entityType | Yes | Type of entity to clone |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behavioral traits: duplication, default name change, DRAFT status creation. Annotations (readOnlyHint: false, destructiveHint: false) are consistent, and description adds valuable context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, focused sentence conveying core behavior without redundancy. Front-loads action ('Duplicate an existing record') and follows with specifics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers essential behavior; output schema exists so return values need not be described. Could mention error cases (e.g., entity not found) but not necessary for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. Description does not add new semantic meaning beyond the schema, but confirms default name behavior for the 'name' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it duplicates an existing record, lists supported entity types, and describes key transformation (DRAFT status, '(Copy)' appended). Unambiguous and distinct from create/update siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage when needing a copy of an existing record, implicitly contrasting with create_* (new from scratch) and update_* (modify existing). No explicit when-not-to-use, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | ||
| sessionId | Yes | sessionId from preview_customer_import |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses the side effects: accounts are created/updated and points, stamps, and credit deltas are applied. Annotations indicate it is not read-only and not destructive, which aligns. Additional detail on idempotency or failure behavior would enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences that front-load the purpose and then give the key usage instruction. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, side effects, and parameter relationship to preview. Since an output schema exists, return values need not be described. Minor missing details like constraints (max rows) are present in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds value by specifying that the rows and sessionId should be exactly those returned by preview_customer_import, which is not apparent from the schema alone. With 50% schema coverage, this guidance is crucial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'commit' and the resource 'customer import', and specifies it creates/updates accounts and applies points/stamps/credit deltas. It also explicitly names the sibling tool 'preview_customer_import' to distinguish the two steps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description instructs to use the same rows and sessionId returned by preview_customer_import, establishing clear context for when to use this tool. It implicitly excludes using it without a preview, but does not explicitly state alternatives or when not to use.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| bookingId | Yes | The booking ID to complete |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the side effect of commission calculation beyond what annotations provide (annotations show destructiveHint=false and readOnlyHint=false, but this is a mutation). However, it does not disclose potential irreversibility or other behavioral traits like whether it changes booking status permanently.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the main action and adding the key side effect. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a single parameter, an output schema (not shown), and annotations, the description adequately covers the purpose and side effect. However, it could mention permission requirements or confirm if the action is reversible for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter bookingId is fully described in the schema ('The booking ID to complete'). The description does not add additional meaning or format details beyond the schema. With 100% schema coverage, baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'mark as completed' and the resource 'booking'. It also mentions the side effect of triggering commission calculation, which distinguishes it from sibling tools like cancel_booking or confirm_booking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a booking is finished and commission should be triggered, but it does not explicitly state when to use this tool over alternatives like cancel_booking or confirm_booking. No exclusions or alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confirm_bookingBInspect
Confirm a pending booking.
| Name | Required | Description | Default |
|---|---|---|---|
| bookingId | Yes | The booking ID to confirm |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (mutation) and destructiveHint=false, but the description adds no behavioral context beyond that. For example, it doesn't explain side effects (e.g., status change, notifications) or whether the action is reversible. The description relies entirely on annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no unnecessary words. Directly conveys the purpose. Excellent conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists but is not shown; the description does not explain success/error behavior or state changes. While minimal, it provides enough for a straightforward mutation. Could benefit from clarifying what 'confirm' entails (e.g., booking status becomes 'confirmed').
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all parameters (100%), with a clear description for 'bookingId'. The tool description adds no additional insight beyond what's already in the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Confirm a pending booking' clearly states the action (confirm) and resource (booking). It distinguishes from siblings like 'cancel_booking' and 'complete_booking', though not explicitly contrasting. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not specify prerequisites (e.g., booking must be pending) or conditions under which confirmation is appropriate. Lacks context to guide agent decision-making.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| dealName | No | Optional deal name | |
| accountId | Yes | Lead account ID | |
| dealStage | No | Optional initial deal stage | |
| lifeStage | No | Lifecycle after convert (default active) | |
| createDeal | No | Create a deal during conversion | |
| dealAmount | No | Optional deal amount | |
| dealClosingDate | No | Optional deal close date |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose what happens to the original lead account after conversion (e.g., deletion, archiving) or any side effects. The annotations (readOnlyHint=false, destructiveHint=false) provide minimal info, so the description carries a heavy burden which it fails to meet.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core purpose and optional behavior without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters and an output schema, the description is brief. It covers the main purpose and optional deal creation but omits prerequisites, error conditions, or return value details. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with all parameters described in the schema. The description adds marginal value by mentioning the optional deal creation and lifecycle change, but does not significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Convert a lead account to an active customer' with the optional deal creation, distinguishing it from related tools like create_deal or create_account.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context by mentioning the optional deal creation, but does not explicitly state when to use this tool versus alternatives. It implies a conversion scenario but lacks 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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Account/customer display name | |
| type | No | Account type. Defaults to individual. | |
| No | Email address | ||
| notes | No | Internal notes | |
| phone | No | Phone number | |
| source | No | Acquisition source. Defaults to api. | |
| tierId | No | Membership tier ID to enroll into. If omitted, the company default tier may apply. | |
| address | No | Postal address | |
| lastName | No | Last name for individual accounts | |
| expiresAt | No | Optional ISO expiry for the membership | |
| firstName | No | First name for individual accounts | |
| lifeStage | No | CRM life stage. Defaults to active. | |
| enrollMembership | No | Whether to create an active membership immediately |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates this is a mutation ('Create'), consistent with annotations (readOnlyHint: false). It adds context about optional enrollment and primary contact creation, but does not detail side effects like failure handling or contact creation mechanics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy. The first sentence states the main action, and the second provides guidance on when to use the sibling tool. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Though output schema exists, the description does not explain the return value or what constitutes a 'primary contact'. It omits context about prerequisites (e.g., company context) and interaction between parameters like enrollMembership and tierId. Adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional parameter-specific details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create', the resource 'CRM account/customer', and specifies that a primary contact is also created. It distinguishes from the sibling tool 'enrol_membership' by noting when to use that tool instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides when to use this tool versus enrol_membership, indicating that enrollment can be done optionally now or later via the sibling tool. It implicitly advises using this tool when the account does not yet exist.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Booking notes | |
| endTime | Yes | End time in HH:MM format | |
| staffId | No | Staff member ID | |
| accountId | Yes | The member/account ID | |
| serviceId | Yes | The service ID | |
| startTime | Yes | Start time in HH:MM format | |
| resourceId | No | Resource ID | |
| bookingDate | Yes | Date in YYYY-MM-DD format |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a non-read-only, non-destructive write operation. The description confirms creation but does not add details like authorization needs, side effects, or rate limits. With annotations already covering the basic behavioral profile, the description adds the prerequisite step but little else.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. First sentence states purpose, second provides critical usage guidance. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (not shown, but indicated), the description doesn't need to cover return values. It covers purpose, prerequisite, and key parameters. With 8 parameters and moderate complexity, the description is adequate but could mention that the booking is created immediately or if any confirmation is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 8 parameters, so the schema already defines them well. The description mentions 'service, member, date, and time' which maps to key parameters but adds 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.
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,' specifying the verb and resource. It distinguishes from sibling create tools by adding the prerequisite step 'Use get_available_slots first,' making it clear this is specifically for bookings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs the agent to first use get_available_slots to find valid times, then create the booking with the required parameters. This provides clear when-to-use and how-to-use guidance, differentiating it from other tools.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Campaign name | |
| channel | No | Channel (default whatsapp) | |
| templateId | No | Message template ID to use | |
| scheduledAt | No | ISO date to schedule the broadcast | |
| recipientFilter | No | Filter criteria for recipients, e.g. { tagIds: ["..."] } |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no destructive or idempotent hints, but the description adds crucial behavioral context: the broadcast is a draft and requires admin action to send. This goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the key purpose and lifecycle detail. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema existence, the description covers the purpose, behavior, and lifecycle adequately. It does not explain return values, but that is handled by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add significant meaning beyond the schema; it only mentions channel options which are already defined in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a DRAFT WhatsApp or SMS broadcast campaign, using specific verbs and resources. It distinguishes itself from other create tools by specifying the draft-only nature and the channel options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says the broadcast is NOT sent and requires admin review, guiding the agent on when to use this tool (to create drafts). However, it does not mention alternatives for immediate sending if such exist.
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".
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Campaign name (internal) | |
| status | No | Default DRAFT | |
| channel | Yes | email | sms | whatsapp | push | |
| segmentId | No | Required if recipientSource="segment" | |
| scheduledAt | No | ISO datetime for scheduled send (status must be SCHEDULED) | |
| recipientIds | No | Required if recipientSource="individual", "list", or "csv"; values are account IDs | |
| channelConfig | No | Channel-specific config: subject + htmlBody for email, body for sms/whatsapp, templateId, etc. Legacy email html is normalized to htmlBody. | |
| recipientSource | No | Where to source recipients from. "list" is normalized to "individual". |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, so description carries burden. It adds that campaigns start as DRAFT and that 'list' is normalized to 'individual', and provides email config specifics. No contradictions. Good behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences, no filler. First sentence states core purpose and scope; second gives key usage tips. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and schema coverage is 100%, the description adequately covers creation context (DRAFT default, email config, alias). Could mention scheduling or company scoping, but overall sufficient for a creation tool with rich schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds marginal value by reiterating email config details and the recipientSource alias, but most of that is already in schema. No additional meaning beyond schema for other parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the action (create) and resource (marketing campaign) and adds context (channels: email, SMS, WhatsApp) and initial state (DRAFT). It is clear but does not distinguish from sibling tools like create_broadcast or create_promotion, which might overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage hints (e.g., email channelConfig fields, recipientSource alias) but no explicit guidance on when to use this tool versus alternatives. It lacks when-not or comparison to siblings, leaving the agent to infer usage context.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Category name | |
| slug | No | Auto-generated from name if omitted. | |
| sortOrder | No | Sort order (lower = earlier) | |
| description | No | Description |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Only states the action without disclosing side effects, permissions needed, or return behavior. Annotations indicate non-read-only and non-destructive, but description adds no behavioral context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with verb, no wasted words. Efficiently conveys purpose and a key usage note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple creation tool with full schema and output schema. However, it lacks differentiation from sibling category tools and does not address error scenarios or required permissions, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 4 parameters fully. Description adds minimal value beyond schema for the name parameter (sub-category naming). Baseline of 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it creates a CMS post category with examples. The name and description distinguish it from sibling tools like create_product_category and create_service_category, even without explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides one guideline about sub-category naming (namespaced names) but does not explicitly compare to other category creation tools or state when to use this vs alternatives. 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.
create_contactBInspect
Create a contact on an existing CRM account.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Contact name | |
| No | |||
| phone | No | Phone | |
| jobTitle | No | Job title | |
| accountId | Yes | Owning account ID | |
| isPrimary | No | Mark as primary contact |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds that the contact is created on an existing account, implying validation but no further behavioral details like side effects or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence of 9 words, very concise. It front-loads the key info but could add a bit more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal but sufficient given the presence of a complete input schema and output schema. However, it omits mention of the return value (expected since output schema exists) and does not clarify required fields beyond the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no extra meaning beyond the schema's per-parameter descriptions. The overall context aligns with the schema but does not enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'contact on an existing CRM account', distinguishing it from other contact operations like update or delete. It uniquely identifies the tool's purpose among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., update_contact, import). The description implies an existing account but does not specify prerequisites or scenarios where other tools are better suited.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_custom_fieldAInspect
Create a custom field definition for CRM entities. Use options for select or multiselect fields.
| Name | Required | Description | Default |
|---|---|---|---|
| options | No | Allowed values for select/multiselect fields | |
| fieldName | Yes | Stable machine name, e.g. preferred_branch | |
| fieldType | Yes | Field type | |
| sortOrder | No | Display order | |
| entityType | Yes | Entity type, e.g. account, contact, deal, booking | |
| fieldLabel | Yes | Human-readable label, e.g. Preferred branch | |
| isRequired | No | Whether this field is required |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false. The description adds no new behavioral context (e.g., idempotency, permissions, side effects) beyond the creation action. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action, no superfluous words. Efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters, 4 required, a rich schema, and output schema present, the description is adequate. It could mention uniqueness constraints on fieldName, but overall complete for a creation tool with good schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The description adds minimal value by linking options to select/multiselect, which is already in the schema description. No new semantics for other parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a custom field definition for CRM entities, distinguishing it from post type field creation by specifying the CRM context. The verb 'create' and resource 'custom field' are explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions using options for select/multiselect fields, providing some usage guidance, but does not explicitly state when to use this tool versus alternatives like create_post_type_field or update_custom_field. No exclusions or context for not using it.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Deal name | |
| stage | No | Pipeline stage | |
| amount | No | Deal amount | |
| ownerId | No | Owner user/team member ID | |
| dealType | No | Deal type/category | |
| accountId | No | Linked CRM account ID | |
| contactId | No | Linked contact ID | |
| closingDate | No | Expected closing date | |
| description | No | Deal notes or description | |
| probability | No | Win probability, e.g. 25 |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description's 'Create' action aligns with annotations (readOnlyHint=false, not idempotent). However, it does not add behavioral context beyond what annotations already provide, such as permissions or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, the description does not need to explain return values. It covers the essential purpose and key optional links. It is adequate, though it could mention the default pipeline or required permission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The description adds value by hinting at the optional linking (accountId, contactId) but does not significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Create', the resource 'CRM sales pipeline deal', and the optional linking to account and contact. This distinguishes it from sibling tools like update_deal, get_deal, and list_deals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when creating a new deal but does not explicitly state when not to use it or mention alternatives (e.g., update_deal for existing deals). The context is clear 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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Draft reply text for the merchant to review | |
| agentId | Yes | AI colleague ID creating the suggestion | |
| subject | No | Optional email subject suggestion | |
| metadata | No | Optional metadata such as rationale, confidence, or source refs | |
| conversationId | Yes | Inbox conversation ID | |
| sourceMessageId | No | Inbound message ID this draft responds to |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by clarifying that despite being a create operation (readOnlyHint=false), it only creates a draft suggestion and does not send anything. It also describes where it appears (inline in composer). However, it does not disclose permissions, rate limits, or side effects on conversation state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences: the first states the purpose, and the second provides usage guidance. Every sentence adds value, no filler 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's context (inbox composer, inbound events, replyPolicy) and explains what it does not do. Given the output schema exists, return value explanation is not needed. It misses some details like error behavior or interaction with other tools, but overall is sufficiently complete for a creation tool with well-documented parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds overall context by mentioning replyPolicy='suggest', which relates to the sourceMessageId parameter, but does not provide new per-parameter semantics beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the specific resource 'draft reply suggestion' that appears inline in the FavCRM Inbox composer. It distinguishes from sibling creation tools like create_note or create_invoice by specifying the exact use case (reply suggestion in inbox composer), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('for message.inbound events with replyPolicy="suggest"') and what it does not do ('does not send anything to the customer'). This provides clear usage context, though it could be more explicit about when not to use it (e.g., avoid for outbound messages).
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.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Free-form notes shown on the invoice | |
| dueDate | No | Due date (ISO 8601 date) | |
| currency | No | ISO currency code (defaults to company default) | |
| accountId | Yes | Customer accountId (CRM account) | |
| lineItems | No | Line items to bill — totals are computed server-side |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds return value ('Returns the new invoiceId') but does not disclose potential side effects like email notifications or customer balance updates. Beyond annotations, the description adds minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and contains no unnecessary words. It efficiently conveys the tool's purpose and output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (5 parameters, 1 required), the description adequately covers the creation action and return value. However, it could mention idempotency (annotations indicate non-idempotent) or that invoice creation may have downstream effects. The presence of an output schema partially compensates, but the description could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to explain each parameter. The description adds 'Optionally include line items inline', which aligns with schema but is not essential. Baseline of 3 is appropriate since parameter meanings are fully captured by schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new invoice for a customer, with optional inline line items, and returns the invoice ID. This distinguishes it from siblings like 'delete_invoice', 'list_invoices', and 'update_invoice'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating invoices with optional line items, but does not explicitly state when to use this over alternatives (e.g., creating line items separately) or provide prerequisites or conditions for use.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Note content | |
| entityId | Yes | The entity ID | |
| isPinned | No | Pin this note to the top | |
| entityType | Yes | Type of entity |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false (write operation) and destructiveHint=false. The description adds that it 'adds' a note, which is consistent but does not disclose additional behavioral traits such as whether the note is appended or replaces existing notes. With annotations covering the basic safety profile, the description provides minimal extra value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct sentence that fully conveys the tool's purpose without unnecessary words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema and annotations, the description is minimally adequate. It names the entity types but does not mention whether the target entity must exist or how notes are associated. While the schema covers parameters, additional contextual details (e.g., that notes are attached to an entity's timeline) would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add parameter-level details beyond what the schema provides (e.g., entityType enum values). It merely restates the entity types, which are already in the schema. No additional semantic enrichment.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add a note') and specifies the target entities (member/account, booking, ticket, or invoice), distinguishing it from other create_* tools that create different resources. The verb 'add' aligns with the tool name 'create_note' and provides unambiguous purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to attach a note to one of the listed entity types, but it does not provide explicit guidance on when not to use (e.g., if the entity does not exist) or mention alternatives like list_notes for reading. The context is clear but lacks exclusions or prerequisites.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Rule name | |
| type | Yes | Rule type: upsell, cross_sell, bundle, or post_purchase | |
| products | No | Products to suggest with optional discounts | |
| description | No | Rule description | |
| triggerType | Yes | When the offer triggers | |
| triggerConfig | No | Trigger-specific configuration |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-destructive and not read-only, but the description adds value by stating 'as draft', suggesting it's safe and not final. However, no further behavioral traits like permissions or rate limits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no extraneous words. Front-loaded with the key purpose and essential details. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 params, nested objects, enums) and the presence of an output schema, the description provides a high-level summary but lacks details like default state or behavior when optional fields are omitted. Output schema might compensate but is not shown.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents parameters. The description briefly mentions trigger type, conditions, and products, which maps to existing schema properties but does not add new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (create) and resource (offer rule) with a specific context (upsell/cross-sell as draft). It distinguishes from sibling tools like list_offer_rules and get_offer_rule which are read-only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for creating a draft offer rule, and the context is clear. However, it does not explicitly state when not to use this tool or mention alternatives like updating an existing rule, but given the sibling list, no update tool exists, so it's sufficient.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Optional outlet UUID (for legacy migration; non-standard formats accepted) | |
| name | Yes | Outlet name | |
| phone | No | Contact phone | |
| address | No | Street address | |
| logoUrl | No | Logo URL | |
| isActive | No | Whether outlet is active (default true) | |
| latitude | No | Latitude | |
| longitude | No | Longitude | |
| sortOrder | No | Display sort order (default 0) | |
| acceptsOrders | No | Whether outlet accepts online orders (default true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate it is a write operation (readOnlyHint=false) with no destructive or idempotent guarantees. The description adds the behavioral detail that the id parameter is for migration and can accept non-standard formats. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, highly concise. The purpose is front-loaded, and every word earns its place. No unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the full schema descriptions and output schema, the description is fairly complete. It covers the primary action and the key optional parameter. Could mention permissions or side effects, but not essential for creation tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented. The description adds value by clarifying the purpose of the id parameter for legacy migration, but does not elaborate on other parameters beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a shop outlet/location', using a specific verb and resource. It distinguishes from siblings like update_outlet and list_outlets. The mention of optional id for migration adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to use the id parameter for legacy migration but does not elaborate on when to use this tool versus alternatives or when not to use it. The context of creation is implicit but lacks explicit usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_plan_upgrade_linkAInspect
Create a Stripe Checkout link for a new paid subscription, or a Stripe Billing Portal link for an existing Stripe subscription. Use only after the user explicitly asks to upgrade or fix billing.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | No | Target plan ID. Use list_plan_options first if unknown. | |
| confirm | No | Required true to create a Stripe-hosted payment or billing link. | |
| planCode | No | Target plan code, e.g. favcrm-lite. Either planId or planCode is required. | |
| returnUrl | No | Where Stripe should return after checkout/portal. Defaults to merchant billing settings. | |
| billingCycle | No | monthly |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-readOnly and non-destructive. The description adds that it creates Stripe links for two scenarios, but does not disclose side effects (e.g., redirecting user), authentication needs, or the requirement that confirm=true. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first sentence states the function, second provides a usage condition. No redundant or irrelevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, the description covers the dual behavior and usage condition. It does not mention the return type (URL) or the confirm requirement, but these are partially covered in the schema. Overall, fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 80% coverage with individual parameter descriptions. The description does not add significant meaning beyond the schema (e.g., explaining the confirm parameter's role). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a Stripe Checkout link for new subscriptions and a Stripe Billing Portal link for existing subscriptions. It distinguishes itself from sibling tools like create_subscription by focusing on link generation, but does not explicitly contrast with that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Use only after the user explicitly asks to upgrade or fix billing.' This gives clear context. However, it does not mention when not to use or suggest alternatives.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| meta | No | Structured 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. | |
| slug | No | URL slug. Auto-generated from title if omitted; collisions get -2, -3 suffix. | |
| type | Yes | Post type slug (e.g. blog_post, page, treatment). Must exist in post_types for this company. | |
| title | Yes | Post title | |
| blocks | No | Ordered 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. | |
| status | No | Status (default draft) | |
| tagIds | No | Tag IDs to attach to the post | |
| excerpt | No | Plain-text summary only — never JSON. Auto-derived from the first paragraph/heading block if omitted and the post type supports excerpts. | |
| parentId | No | Parent post ID for nested types (e.g. pages). | |
| seoTitle | No | SEO title override | |
| sortOrder | No | Sort order (lower = earlier) | |
| visibility | No | Visibility (default public) | |
| categoryIds | No | Category IDs (post types with supportsCategories only) | |
| publishedAt | No | ISO timestamp; required when status=scheduled. | |
| featuredImage | No | Cover image URL | |
| seoDescription | No | SEO meta description |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a non-read-only, non-idempotent creation operation, which matches the description. The description adds useful behavioral details such as auto-derived excerpt from blocks, slug auto-generation with collision handling, and a warning against placing JSON in excerpt, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and uses concise sentences. Every sentence adds specific value (prerequisites, auto-derivation, meta usage). No redundant or fluff content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high schema coverage and the existence of an output schema, the description covers the essential workflow: prerequisites, parameter behaviors, and warnings. It does not explain return values, which is acceptable. It provides sufficient context 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds value by clarifying excerpt behavior and the expected structure for meta. It also warns about JSON misuse, which is not present in the schema. This provides meaningful context beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new CMS post, specifying the supported post types (blog_post, page, custom). It mentions related tools (list_post_types, create_post_type) for discovery, which helps distinguish it from sibling tools, though it could explicitly contrast with update_post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states prerequisites: the post type must already exist, and guides the user to list_post_types or create_post_type if needed. It also explains how to handle custom fields via meta. However, it does not mention when to use alternatives like update_post or clone.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| icon | No | Icon name or URL | |
| slug | Yes | Lowercase identifier, e.g. "treatment". Auto-derived from label if omitted. | |
| label | Yes | Singular UI label, e.g. "Treatment" | |
| sortOrder | No | Sort order (lower = earlier) | |
| labelPlural | Yes | Plural UI label, e.g. "Treatments" | |
| supportsBlocks | No | Default true | |
| supportsExcerpt | No | Default true | |
| supportsNesting | No | Default false | |
| supportsCategories | No | Default true | |
| supportsFeaturedImage | No | Default true |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, etc. The description adds context about prerequisites and follow-up actions but does not disclose behavioral traits like idempotency or side effects beyond what is obvious from the purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each adding value: purpose, prerequisite, follow-up and warning. It is front-loaded and free of fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, output schema exists) and sibling tools, the description covers the essential workflow steps and a key storage guideline. It omits return value details, but the output schema handles that. Slightly incomplete regarding potential error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters described. The description does not add significant meaning beyond the schema; it merely echoes the schema's note on slug auto-derivation. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Define' and identifies the resource 'custom post type', with examples like 'treatment' and 'service'. It clearly distinguishes from sibling tools such as create_post and create_post_type_field by stating its prerequisite role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it ('Required before creating posts of that type'), what to do next ('use create_post_type_field to define its structured field schema'), and what not to do ('do not use excerpt for structured data'). It provides clear usage context and alternatives.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | snake_case key used in meta. Auto-derived from label if omitted. | |
| label | Yes | Human-readable field label, e.g. "Tagline" | |
| fields | No | Required for fieldType="repeater". Defines the child fields stored in each row object. | |
| options | No | For 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. | |
| helpText | No | Optional hint shown in the UI | |
| required | No | Whether the field is required on post creation (default false) | |
| fieldType | Yes | Field type: text | textarea | richtext | number | boolean | date | datetime | select | multiselect | url | email | image | file | gallery | attachments | repeater | |
| sortOrder | No | Sort order (lower = earlier) | |
| postTypeId | Yes | Post type ID (from list_post_types) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains that the field key becomes the key in meta, which is behavioral insight beyond annotations. It also details repeater usage. Annotations already indicate mutation, so the description adds useful context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: purpose, key behavior, repeater guidance. No fluff. Information is front-loaded and every sentence is meaningful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 params, nested objects) and presence of an output schema, the description adequately covers the core use case and a key special feature. It does not cover all edge cases but is sufficient for typical usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the baseline is high. The description adds value by explaining the key's usage in meta and the repeater pattern, which enriches understanding beyond raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Add a custom field to a post type schema', which is a specific verb+resource. It distinguishes from siblings like 'create_post_type' by focusing on fields. Additionally, it explains the key's role in meta and gives a usage example for repeaters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context by stating when to use fieldType='repeater' and advises against storing structured data in the excerpt. However, it does not exclude other scenarios or contrast with all sibling tools like 'create_custom_field'.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | SKU code | |
| name | Yes | Product name | |
| price | Yes | Price as decimal string (e.g. "29.99") | |
| categoryIds | No | Category IDs (first is primary) | |
| description | No | Product description | |
| memberPrice | No | Members-only price | |
| productType | No | Product type (default one_time) | |
| discountPrice | No | Discounted price |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate safe mutation (readOnlyHint=false, destructiveHint=false). Description adds the draft state context, which is useful but doesn't disclose additional behaviors like permissions or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. Essential information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists and annotations are present, the description is adequate for a creation tool. It could mention prerequisites like being in a shop context, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so the description does not add parameter details. Baseline 3 is appropriate as schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create', resource 'shop product', and the state 'as DRAFT'. It distinguishes from sibling tools like create_product_category and update_product.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for initial creation with draft status, but no explicit comparisons to alternatives like update_product or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_product_categoryAInspect
Create a product category. Use parentId to create subcategories under an existing category.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Category name | |
| parentId | No | Parent category ID for subcategories | |
| sortOrder | No | Display sort order | |
| description | No | Category description | |
| onlineEnabled | No | Show in online store (default true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds basic context (creation, subcategories) but no behavioral traits beyond annotations, such as permissions or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words, efficiently conveying purpose and key usage detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and full parameter descriptions, the description is nearly complete; it could mention required field 'name' but remains adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description only adds meaning for parentId; baseline 3 applies as schema already fully documents parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a product category, distinguishing it from siblings like create_category (generic) and create_service_category by specifying 'product category'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on using parentId for subcategories but does not explicitly state when to use this tool over alternatives 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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Coupon code customers enter at checkout (auto-uppercased) | |
| name | Yes | Promotion name (internal) | |
| type | No | Default percentage | |
| value | Yes | Discount value as decimal string | |
| endsAt | No | ISO datetime — when the promo expires | |
| status | No | Default active | |
| startsAt | No | ISO datetime — when the promo becomes valid | |
| posEnabled | No | Allow at POS | |
| description | No | Description | |
| eventEnabled | No | Allow on event registrations | |
| minimumAmount | No | Minimum order amount required, decimal string | |
| onlineEnabled | No | Allow on online shop orders | |
| bookingEnabled | No | Allow on bookings | |
| maximumDiscount | No | Cap on percentage discounts, decimal string | |
| minimumQuantity | No | Minimum item count required | |
| usageLimitTotal | No | Max total uses across all customers | |
| usageLimitPerCustomer | No | Max uses per single customer |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations show readOnlyHint=false, indicating mutation. Description adds behavioral details: type enum constraints, value as decimal string, and server-side uppercasing. No contradictions with annotations. Adequate but could mention creation specifics (e.g., returns created resource).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose. No redundant information. Every sentence adds value. Well-structured for quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 17 parameters and existing output schema, description covers core purpose and key parameter semantics. Missing explanation of optional fields (e.g., dates, limits) but schema descriptions fill that gap. Sufficient for agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. Description adds extra meaning beyond schema: explains the type enum and how value is interpreted (percentage or currency units). Provides context for required parameters beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a promotion / discount code' with specific verb and resource. It distinguishes from siblings like update_promotion by explaining the type and value fields. The resource is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context: type can be percentage or fixed_amount, value is a string representing the discount. Notes that codes are uppercased server-side. However, no explicit guidance on when to use this tool vs. alternatives like update_promotion or validate_promotion.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Resource name (e.g. "Treatment Room A") | |
| type | Yes | Free-form type label, e.g. "room", "equipment" | |
| status | No | Default active | |
| capacity | No | How many concurrent bookings (default 1) | |
| description | No | Description |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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 confirms 'Create' but adds no further behavioral context (e.g., idempotency, side effects). With annotations present, the bar is lower, but more detail could be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences with no wasted words. It front-loads the core purpose and then adds relevant usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters (2 required) and an output schema, the description is nearly complete. It mentions the key usage context (requiresResource services). It could optionally mention linking after creation, but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all parameters. The description adds no parameter-specific details 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Create a bookable resource (room, equipment, vehicle).' It provides specific verb (create) and resource type with examples, distinguishing it from sibling tools like 'create_service' or 'update_resource'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Used by services that have requiresResource=true,' indicating when to use this tool. While it doesn't explicitly state when not to use it or list alternatives, the context is clear and sufficient for an AI agent to decide.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Segment name | |
| criteria | No | Dynamic segment criteria | |
| description | No | Segment description | |
| segmentType | No | Segment type (default DYNAMIC) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a mutation (create). The description adds no further behavioral details beyond the creation action and segment type distinction. It does not disclose side effects, permissions, or idempotency considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and immediately providing key decision criteria. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema and full parameter descriptions, the description lacks guidance on how to structure the criteria object for dynamic segments and does not mention that members must be set separately for static segments. The tool's complexity (nested object, multiple condition types) warrants more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The description adds value by explaining the semantics of segmentType (STATIC vs DYNAMIC), which goes beyond the schema's enum description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new customer segment and immediately distinguishes between STATIC (manual lists) and DYNAMIC (criteria-based auto-filtering), which differentiates from siblings like update_segment or set_segment_members.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use STATIC vs DYNAMIC segment types, but lacks explicit direction on when to prefer create_segment over update_segment or set_segment_members, and does not mention prerequisites or post-creation steps.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Service name | |
| type | No | Default one_on_one | |
| price | No | Decimal string, e.g. "80.00". Defaults to "0". | |
| status | No | Default active | |
| capacity | No | How many participants per slot (default 1) | |
| currency | No | ISO currency code, default HKD | |
| sortOrder | No | Sort order (lower = earlier) | |
| categoryId | No | Existing service category ID | |
| visibility | No | Visibility: public | members_only | hidden | |
| description | No | Description | |
| requireLogin | No | Default true — guests cannot book | |
| requiresStaff | No | Whether the service requires staff assignment | |
| allowedTierIds | No | Required when visibility=members_only | |
| commissionType | No | Commission type: "fixed" or "percentage" | |
| commissionValue | No | Commission amount as decimal string | |
| cooldownMinutes | No | Minimum gap before bookings can be cancelled (default 0) | |
| durationMinutes | Yes | Duration of one booking in minutes | |
| requiresResource | No | Whether the service requires a resource (room/equipment) | |
| commissionCurrency | No | Commission currency (ISO code) | |
| requiresConfirmation | No | If true, bookings start as pending and need confirm_booking |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the tool creates a service (mutation), which matches annotations (readOnlyHint=false). It mentions setting various fields but does not disclose behaviors like whether requireLogin defaults to true or the effect of requiresConfirmation. Annotations are sparse, so the description carries the burden but provides only high-level behavioral info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the core purpose and a key usage hint. No filler. Could be slightly more structured (e.g., bullet points) but is concise and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 20 parameters and an output schema, the description is minimal. It covers high-level intent but omits important context such as payment handling, staff assignment, or tier restrictions. The output schema may compensate for return values, but the description lacks full contextual coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter has individual descriptions. The tool description adds no further semantics beyond grouping fields (duration, price, capacity, policies). Baseline of 3 applies as schema already handles parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource ('Create a bookable service'). Distinguishes from siblings like update_service and create_service_category by specifying it creates a new service. The description also lists key attributes (duration, price, capacity, policies).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides helpful prerequisite: 'Use list_service_categories first if you want to attach to an existing category.' This guides the agent on when to call a sibling tool. However, it does not explicitly compare with other creation tools or state 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.
create_service_categoryAInspect
Create a service category (e.g. "Treatments", "Classes") to group bookable services.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Category name | |
| sortOrder | No | Sort order (lower = earlier) | |
| description | No | Description |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, but the description adds no behavioral context beyond creation. It does not mention authorization requirements, side effects, or rate limits, which is a gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, well-formed sentence with no redundancy. Every word adds value. Front-loaded with verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters and an output schema, the description is adequate but could mention common use cases or that categories are typically used to organize services in a menu. Still complete enough for a simple create tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no extra meaning beyond the schema's parameter descriptions. The description's mention of grouping contributes minimally to parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Create), resource (service category), and provides concrete examples (Treatments, Classes) to group bookable services. It distinguishes from siblings like create_category (general) 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for grouping bookable services but does not explicitly state when to use this tool over alternatives like create_category or list_service_categories. No exclusion or 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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Package name | |
| price | Yes | Package price | |
| status | No | Default ACTIVE | |
| validDays | Yes | Validity window after purchase, in days | |
| description | No | Description | |
| sessionCount | Yes | Number of included sessions | |
| applicableType | No | Default ALL | |
| applicableItems | No | Items used when applicableType=SELECTED |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the core behavior (create a package) which aligns with annotations (readOnlyHint=false, destructiveHint=false). It adds a usage hint but does not elaborate on side effects, permissions, or error conditions. Given annotations cover the basic traits, the description adds moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no extraneous information. The first sentence states the purpose, the second provides a key usage tip. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters, 4 required, and an output schema, the description is brief. It explains the concept of a prepaid session bundle and the applicableType mechanism, but lacks detail on how sessionCount and validDays interact or default behaviors. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context specifically for applicableType and applicableItems, clarifying their use together. Other parameters (name, price, sessionCount, etc.) are already described in schema, so overall the description provides limited additional meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a 'service package/prepaid session bundle', providing a specific verb and resource. It distinguishes from sibling create tools by specifying the type, and includes a usage hint about applicableType, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a specific tip about when to use applicableType=SELECTED, but does not explicitly guide when to use this tool versus alternatives like list_service_packages or update_service_package. Usage context is implied but not directly stated, earning a mid-range score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_service_scheduleAInspect
Create a bookable schedule window for a service, including recurring weekly/daily availability.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Start date or one-off date (YYYY-MM-DD) | |
| notes | No | Free-form notes | |
| endTime | Yes | HH:MM (24h) | |
| staffId | No | Optional companyMembers.id to bind this schedule to staff | |
| byWeekday | No | Weekdays for weekly recurrence: 0=Mon, 1=Tue, ... 6=Sun | |
| serviceId | Yes | Service ID | |
| startTime | Yes | HH:MM (24h) | |
| recurrence | No | Default none | |
| resourceId | No | Optional resource ID to bind this schedule to a room/resource | |
| maxCapacity | No | Max bookings per generated slot | |
| recurrenceEndDate | No | YYYY-MM-DD | |
| recurrenceInterval | No | Default 1 |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description's 'Create' is consistent. However, it does not add behavioral context like permissions needed or side effects beyond what the schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence (12 words) that is front-loaded and efficient, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 12 parameters and an output schema, the description is adequate but minimal. It could mention the required parameters (serviceId, date, startTime, endTime) for completeness, but the schema covers them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no new meaning beyond summarizing that recurrence is supported. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a bookable schedule window for a service with recurrence options, which distinguishes it from sibling tools like list_service_schedules or update_service_schedule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as set_staff_availability or set_resource_availability, nor does it mention any prerequisites or exclusions.
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 manual, non-renewing subscription record for a member. Use a subscription action link for provider-backed recurring billing.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Override amount per cycle (otherwise derived from tier) | |
| tierId | No | Membership tier ID — if set, amount/currency default from the tier | |
| currency | No | ISO currency code (otherwise derived from tier or company default) | |
| accountId | Yes | Customer accountId | |
| autoRenew | No | Manual records cannot auto-renew | |
| billingCycle | No | Billing cycle (default monthly) | |
| currentPeriodEnd | No | Period end (ISO 8601). Defaults to start + cycle. | |
| currentPeriodStart | No | Period start (ISO 8601). Defaults to now. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false, destructiveHint=false). The description adds meaningful context by specifying 'non-renewing' and contrasting with provider-backed billing, but does not disclose further side effects or permissions. This extra context justifies a 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with the verb and resource front-loaded. Every word earns its place, and the alternative guidance is packed efficiently. It is not verbose or over-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters but full schema descriptions and an output schema, the description sufficiently covers the tool's key context. It clarifies the edge case of provider-backed recurring billing, though it doesn't explain the return value. This is complete enough 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, so the baseline is 3. The description does not add parameter details beyond the schema, but it reinforces the non-renewing nature (autoRenew const false). This meets the baseline but adds no extra semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Create a manual, non-renewing subscription record for a member.' This distinguishes it from provider-backed recurring billing, and the 'create' verb + resource is specific. It contrasts with sibling tools like create_plan_upgrade_link or enrol_membership.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly gives an alternative usage: 'Use a subscription action link for provider-backed recurring billing.' This tells the agent when not to use this tool and points to a different approach, providing clear usage context.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Optional URL slug; generated from title when omitted | |
| title | Yes | Survey title | |
| openAt | No | Optional ISO datetime when the survey opens | |
| status | No | Initial status | |
| closeAt | No | Optional ISO datetime when the survey closes | |
| settings | No | Survey settings such as allowMultipleResponses, collectEmail, collectIpAddress, requireAuthentication, showProgress, successMessage | |
| visibility | No | Who can access the survey | |
| description | No | Optional survey description | |
| questionBlocks | Yes | Ordered survey question blocks |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false, destructiveHint=false). The description adds value by clarifying that the survey is not automatically published unless the status is set, which is important behavioral context. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences that are front-loaded and convey the essential purpose and a key decision point. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and full schema coverage, the description is adequately complete. It explains the core action and the main branching choice (publish later vs. now). Minor gap: doesn't explicitly state the default status if omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minor value by mentioning 'custom question blocks' and the status option for publishing, but does not significantly expand on individual parameter meanings beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a survey with custom question blocks' and mentions immediate portal access upon publishing. It distinguishes from sibling tools like 'archive_survey' and 'update_survey' by focusing on creation and publish options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context by mentioning the ability to publish later or immediately. However, it lacks explicit guidance on when not to use this tool or how it compares to alternatives like 'update_survey'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_survey_invitationBInspect
Create a token-auth survey invitation for a specific member/account or contact.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | No | Intended channel, e.g. email, sms, whatsapp, link | |
| metadata | No | Optional invitation metadata | |
| surveyId | Yes | Survey ID | |
| accountId | No | CRM account ID to invite | |
| contactId | No | Contact ID to invite | |
| expiresAt | No | Optional invitation expiry ISO datetime | |
| recipientName | No | Recipient display name for link tracking | |
| recipientEmail | No | Recipient email for link tracking | |
| recipientPhone | No | Recipient phone for link tracking |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions 'token-auth', adding context about authentication. Annotations already show it is not read-only, not idempotent, not destructive. However, it does not disclose side effects like sending notifications or creating records, beyond the mutation implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with verb and resource, no wasted words, and conveys the essential purpose efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters and an output schema, the description is adequate but incomplete. It does not explain return values (though output schema exists) or clarify parameter dependencies/alternatives. Missing prerequisites (e.g., survey must exist).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains each parameter. The description adds minimal extra meaning, only summarizing the recipient types but not clarifying relationships between parameters (e.g., accountId vs contactId vs recipientEmail).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'create' and the resource 'survey invitation', and specifies the recipient types. However, it does not explicitly distinguish from sibling tools like 'create_survey' or 'create_team_member_invite' beyond stating the recipient types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., other invitation or creation tools). There is no mention of prerequisites or context of use.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Tag name | |
| color | No | Optional display color, e.g. #2563eb |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false (mutation) and destructiveHint=false (non-destructive). The description only restates that it creates a tag, adding no extra context about uniqueness, consequences of duplicate names, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded. However, it is slightly too sparse; a bit more detail would improve clarity without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with two parameters and an output schema exists. The description is adequate but fails to differentiate when to create versus attach tags, leaving some contextual gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions. The tool description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'a CRM tag' with a specific purpose 'for customer segmentation and organization.' It distinguishes from siblings like attach_tags and delete_tag.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like attach_tags (which likely assigns tags to entities) or update_tag. The description does not mention prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_taskBInspect
Create a task. Optionally link to a CRM account or assign to a team member.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Task title | |
| status | No | Status filter | |
| dueDate | No | ISO date (YYYY-MM-DD) | |
| priority | No | Priority | |
| accountId | No | Linked CRM account | |
| assigneeId | No | company_members.id | |
| description | No | Description |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-readOnly and non-destructive. The description adds little beyond stating the creation action. No contradictions. It does not disclose behaviors like duplicate handling, permission 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no extraneous words. It is front-loaded with the core action. While concise, it could include a bit more context without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, return values are not needed. However, with 7 parameters and optional associations, the description is minimal. It covers the basics but misses details like required title uniqueness or default values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description adds no additional meaning beyond what the schema provides, meeting the baseline but not compensating further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a task, and mentions optional features (linking to CRM account, assigning to team member). However, it does not distinguish from sibling tools that also create entities (e.g., create_ticket, create_deal), missing differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like create_ticket or create_deal. It only mentions optional features, leaving the agent to infer context without explicit when-to or when-not-to instructions.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional display name for a new user | |
| role | No | Team member role to grant on acceptance | staff |
| Yes | Invitee email address | ||
| modules | No | Optional legacy module list to attach to the company member | |
| permissions | No | Optional structured module permissions to attach to the company member | |
| expiresInHours | No | Invite lifetime in hours. Defaults to 72, max 336. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide non-read-only, non-destructive hints. Description adds that a one-time token is returned and requires subsequent email verification, enhancing transparency without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, 24 words, no waste. Essential information front-loaded: main action then flow. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Describes the multi-step process and references sibling tools. Output schema is present, so return details are covered. Lacks explicit mention of preconditions (e.g., authentication), but overall complete for agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 6 parameters with descriptions. Description does not add extra parameter meaning, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it invites a team member and returns a one-time accept token, distinguishing it from sibling tools like accept_team_invite_request and accept_team_invite_verify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the follow-up verification flow (accept_team_invite_request and accept_team_invite_verify), guiding the agent on the sequence. No explicit when-not-to-use, but sufficient for context.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Friendly template name (a Meta-safe id is derived from it). | |
| footer | No | Optional small footer text. | |
| message | Yes | Body text. Use {{1}}, {{2}} for personalised values. | |
| category | Yes | UTILITY = transactional (order/shipping), MARKETING = promos, AUTHENTICATION = codes. | |
| language | No | Language code, default en_US. | |
| headerText | No | Optional short bold header above the body. | |
| variableSamples | No | Example values per variable number, e.g. {"1":"Sara"} — Meta reviews with these. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond annotations: submission to Meta, approval requirement, allowance consumption, and scope (text only, buttons added elsewhere). Annotations are neutral (not read-only, not destructive), and description complements them without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences covering main action and key constraints, plus a final sentence on allowance. Every sentence adds value. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 7 params and an output schema, the description covers the full lifecycle: creation, submission, approval wait, allowance impact, and scope limitations. It is self-contained and provides sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions (e.g., name derivation, variable formatting, category enum meanings). The description adds overarching context (text-only, app for buttons) but no per-parameter enhancements beyond what schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Create and submit a WhatsApp message template to Meta for approval.' It specifies verb (create/submit), resource (WhatsApp template), and scope (text templates only, with header, body, footer). This distinguishes it from sibling tools like list_templates and 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use (to create and submit a template) and provides context: template is not usable until Meta approves, and consuming allowance. It mentions checking with list_templates for approval status. Though it doesn't explicitly list alternatives, the context 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.
create_ticketCInspect
Create a support ticket for a member issue.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | Where the ticket originated | |
| subject | Yes | Ticket subject/title | |
| category | No | Ticket category | |
| priority | No | Ticket priority | |
| accountId | No | Member/account ID this ticket is about | |
| contactName | No | Contact name if no account ID | |
| description | No | Detailed description of the issue | |
| contactEmail | No | Contact email if no account ID | |
| contactPhone | No | Contact phone if no account ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds no additional behavioral context, such as what happens after creation (e.g., notification sent, status set). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the core function. Concise but could be expanded slightly without harming clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters and an output schema, the description is too brief. It does not guide which parameters are typically used or how they relate, but the schema and annotations fill some gaps. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The tool description does not mention any parameters, so it adds no value 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool creates a support ticket for a member issue. It is a specific verb+resource combination, but does not differentiate from other create tools like create_account or create_booking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidelines on when to use this tool versus alternatives such as update_ticket_status or other creation tools. No context provided for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_variationBInspect
Add a variation (size, color, etc.) to an existing product.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Variation SKU | |
| name | No | Variation name | |
| price | Yes | Price as decimal string (e.g. "29.99") | |
| productId | Yes | The product ID | |
| memberPrice | No | Members-only price | |
| stockStatus | No | Stock status | |
| discountPrice | No | Discounted price | |
| stockQuantity | No | Stock quantity | |
| selectedOptions | No | Option selections e.g. {"Size": "Large"} |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only, non-destructive mutation. The description adds no behavioral context beyond 'Add', such as permission requirements, side effects (e.g., does it update product automatically?), or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the purpose. It contains no fluff, but could be slightly more structured for clarity (e.g., separating purpose from examples).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters with complete schema descriptions and an output schema, the description is sufficient but minimal. It lacks context on how variations relate to options or common use cases, but is not incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description does not add any additional meaning or usage tips for parameters beyond what the schema provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add a variation') and the target resource ('to an existing product'), with examples of variation types. It distinguishes from sibling tools like 'create_product' by specifying that it adds to an existing product.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for adding variations but provides no explicit guidance on when to use this tool versus alternatives, no exclusion criteria, and no context about prerequisites (e.g., product must exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_whatsapp_connect_linkAInspect
Create a short-lived browser link for WhatsApp Business Embedded Signup. The user must open the link because Meta requires a browser popup to authorize and choose the WABA/phone number.
| Name | Required | Description | Default |
|---|---|---|---|
| ttlMinutes | No | Connect link lifetime in minutes. Defaults to 30. | |
| onboardingMode | No | Use cloud_api for a new WhatsApp Cloud API connection, or coexistence when connecting a WhatsApp Business App number. | cloud_api |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses behavioral traits beyond annotations: the link is short-lived and requires user interaction in a browser. Annotations already indicate it's not read-only nor destructive, and description adds useful context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no fluff. First sentence states purpose, second explains an important behavioral requirement. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, full schema parameter coverage, and presence of an output schema, the description is complete. It explains the critical browser popup requirement that might otherwise cause confusion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. Description adds minimal extra meaning beyond 'short-lived' hinting at ttlMinutes. Baseline 3 is appropriate as the schema already does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action 'create' and the resource 'short-lived browser link for WhatsApp Business Embedded Signup'. Distinguishes from other create tools by specifying the WhatsApp context and the requirement for a browser popup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a usage note that the link must be opened in a browser for Meta authorization. Does not explicitly state when not to use, but the purpose is specific enough to imply appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_accountADestructiveInspect
Soft-delete a CRM account/customer. This releases the primary phone for future reuse while keeping account history for audit.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The account ID to soft-delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, but the description adds critical context: it's a soft-delete (not permanent), releases the primary phone, and retains audit history. This goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences front-loading the action and resource. No filler; every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter, annotations, and an output schema, the description is nearly complete. It covers the soft-delete behavior and side effects. Minor gap: no mention of recoverability or preconditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'accountId' is already fully described in the input schema. The description does not add new semantic information, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Soft-delete'), the resource ('CRM account/customer'), and key effects (releases phone, keeps history). It differentiates from hard-delete and other delete tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like hard-delete or archive. The description does not mention prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_campaignADestructiveInspect
Delete a campaign. Only allowed in DRAFT status; sent campaigns are kept for audit history.
| Name | Required | Description | Default |
|---|---|---|---|
| campaignId | Yes | Campaign ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the agent knows this is a destructive operation. The description adds the critical constraint that deletion is only allowed for DRAFT campaigns and that sent campaigns are preserved for audit history, providing additional behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences. The first states the action, and the second adds the essential constraint. There is no unnecessary information, and the key points are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple delete operation with one parameter, the description covers the primary action, the key status constraint, and the behavior for sent campaigns. An output schema exists, so return values are not required in the description. The tool is well-documented for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a description for campaignId. The tool description does not add any additional meaning to the parameter beyond what the schema already provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deletes a campaign, specifies the required DRAFT status, and explains that sent campaigns are retained for audit. This distinguishes it from other delete tools and from campaign management siblings like update_campaign or restore_campaign.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the tool is only for campaigns in DRAFT status and that sent campaigns are kept for audit, providing clear when-to-use and when-not-to-use guidance. However, it does not mention any alternative tools like restore_campaign for reverting deletion, which would further improve guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_categoryADestructiveInspect
Delete a CMS post category. Posts in the category are not deleted; they are simply unlinked.
| Name | Required | Description | Default |
|---|---|---|---|
| categoryId | Yes | Category ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that posts remain after category deletion (unlinked), going beyond the destructiveHint annotation to explain the non-destructive effect on posts. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It conveys the action and key side effect concisely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with high schema coverage and an output schema, the description covers the essential behavioral consequence. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not add meaning beyond the input schema, which already has 100% coverage with a clear 'Category ID' parameter. Schema coverage is high, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete' and the resource 'CMS post category'. It specifies that posts are not deleted but unlinked, which distinguishes it from deletion of posts or other resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives like restore_category or other delete tools. However, it clarifies the consequence (posts unlinked), which helps avoid unintended data loss.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_contactADestructiveInspect
Delete a secondary contact. Primary contacts are protected; set another primary contact or delete the account instead.
| Name | Required | Description | Default |
|---|---|---|---|
| contactId | Yes | The contact ID to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true, so the destructive nature is known. The description adds extra behavioral context by noting that primary contacts are protected and cannot be deleted via this tool. However, it does not detail other behaviors like cascading effects or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first defines the action, second provides boundary conditions and alternatives. No filler, every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description covers the essential: action, scope, and alternative for edge cases. It is complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a clear parameter description. The tool description adds semantic context by implying the contactId must belong to a secondary contact, which is valuable beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the action 'delete' on the resource 'secondary contact' and explicitly distinguishes from primary contacts, which are protected. This is a specific verb+resource with clear sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use (delete secondary contacts) and when not to use (primary contacts), and provides alternatives: 'set another primary contact or delete the account instead'. This is ideal guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_custom_fieldADestructiveInspect
Delete a custom field definition and its stored values.
| Name | Required | Description | Default |
|---|---|---|---|
| definitionId | Yes | Custom field definition ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true. The description adds value by specifying that stored values are also deleted, which is important behavioral context beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the tool's purpose with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool, the description is adequate. It covers the primary action and consequences. Having 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'definitionId' described as 'Custom field definition ID'. The description does not add extra meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Delete' and the resource 'custom field definition and its stored values'. It distinguishes from sibling tools like create_custom_field or update_custom_field by specifying the deletion aspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., update_custom_field). The description only states what it does without any context on prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_dealADestructiveInspect
Soft-delete a CRM deal from the sales pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| dealId | Yes | The deal ID to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true. Description adds 'soft-delete' which implies recoverability, but does not clarify further behavior (e.g., whether it's reversible, impact on related data, or required permissions).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, direct and to the point. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with one parameter and output schema, the description is adequate. However, it could note the ability to restore or long-term effects, but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter dealId. The description adds no extra meaning beyond the schema's parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'soft-delete' and the resource 'CRM deal', with context 'from the sales pipeline'. It distinguishes from sibling tools like delete_account by specifying CRM deal scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like delete_account or other deletion tools. No mention of prerequisites or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_invoiceADestructiveInspect
Delete a DRAFT invoice. Only invoices that have never been sent can be deleted; otherwise use void_invoice.
| Name | Required | Description | Default |
|---|---|---|---|
| invoiceId | Yes | Invoice ID to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive hint, but the description adds critical behavioral condition (only draft invoices) and explicitly names an alternative (void_invoice). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. Every sentence provides essential information: what it does, conditions, and alternative. Front-loaded with key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 1 parameter and output schema available, the description covers all necessary context: condition, limitation, and alternative. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (invoiceId) with schema coverage 100% and description 'Invoice ID to delete'. The description does not add extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'delete' and resource 'invoice', specifying it only applies to DRAFT invoices. It distinguishes from the sibling 'void_invoice' by noting the condition 'only invoices that have never been sent can be deleted; otherwise use void_invoice'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (DRAFT, never sent) and when not to use (otherwise use void_invoice). Provides clear context for tool selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_knowledge_documentADestructiveInspect
Soft-delete a knowledge document. The agent loses access immediately, but the document can be restored with restore_knowledge_document.
| Name | Required | Description | Default |
|---|---|---|---|
| documentId | Yes | Knowledge document ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide destructiveHint=true, and description adds behavioral context: it is a soft delete, meaning immediate loss of access but with restorability. This goes beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences that convey the essential information without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the soft-delete behavior and mentions restoration. With an output schema present and only one parameter, the description is largely sufficient, though it could briefly note the immediate effect on agent access.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (1 parameter described). The description does not add extra context about the parameter (e.g., format or source), so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a 'soft-delete' on a knowledge document, and it specifies that the agent loses access immediately but the document is restorable. This distinguishes it from other delete tools by noting the reversible nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or compare with other delete operations among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_postADestructiveInspect
Delete a CMS post by ID. Soft-deleted posts can be restored with restore_post.
| Name | Required | Description | Default |
|---|---|---|---|
| postId | Yes | The post ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation (true), the description adds that deletion is soft and reversible via restore_post. This provides valuable behavioral context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single, front-loaded sentence that conveys all necessary information without any unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter, clear action) and the presence of an output schema, the description covers the essential aspects: what it does, how it works (soft delete), and a pointer to restoration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description does not add any extra meaning to the single 'postId' parameter beyond what the schema already provides (type and description).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Delete), the resource (CMS post), and the method (by ID). It also mentions the ability to restore soft-deleted posts, distinguishing it from related tools like restore_post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a hint about soft deletion and restoration, but does not explicitly state when to use this tool versus other delete tools (though sibling tools target different entities). The context is clear enough for a specific resource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_post_typeADestructiveInspect
Delete a custom post type. Built-in types cannot be deleted. Fails if any posts of this type still exist — delete those first.
| Name | Required | Description | Default |
|---|---|---|---|
| postTypeId | Yes | Post type ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: it reveals the destructive nature (consistent with destructiveHint=true) and adds the specific failure condition when posts exist. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences, front-loaded with the primary action, followed by constraints and prerequisites. Every word adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, full schema coverage, and strong annotations (destructiveHint=true), the description is complete. It covers preconditions, constraints, and behavior, leaving no gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the single parameter 'postTypeId' with a concise description. With 100% schema coverage, the description does not add further parameter-level meaning, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deletes a custom post type, explicitly excludes built-in types, and distinguishes from sibling delete_post by mentioning the prerequisite of no existing posts. This provides a specific verb-resource combination with clear scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance: use it for custom post types, not for built-in ones (which cannot be deleted), and warns that it fails if any posts of that type exist, instructing to delete those first. This is comprehensive usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_post_type_fieldADestructiveInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Delete even if posts have data in this field. Existing meta values become orphaned. | |
| fieldId | Yes | Field ID | |
| postTypeId | Yes | Post type ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant value beyond annotations. Annotations indicate destructiveHint=true, but the description explains the blocking condition and the effect of force=true (orphans data). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: one for the action, one for the condition. No wasted words, front-loaded with the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (not shown) and no nested objects, the description covers the key behavioral aspect (force conditional) and notes data orphanage. It could mention implications for related data, but overall sufficient for a delete tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%. The description adds nuance for the force parameter, explaining the blocking condition. The required params (fieldId, postTypeId) are already described in the schema, so the description adds no extra meaning for them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Remove a field from a post type schema,' providing a specific verb and resource. It distinguishes from siblings like create, update, list, and restore by focusing on deletion with a conditional force parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: it blocks when posts have data unless force=true. This implies when to use force. However, it does not explicitly mention when not to use the tool or compare with alternatives like update_post_type_field or restore_post_type_field.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_promotionADestructiveInspect
Delete a promotion. Past usage records are preserved.
| Name | Required | Description | Default |
|---|---|---|---|
| promotionId | Yes | Promotion ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond the annotations by stating that past usage records are preserved. This informs the agent about the non-destructive nature of the deletion on historical data, which is not covered by the 'destructiveHint' annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences that front-load the essential purpose and a key behavioral trait. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, one action) and the presence of an output schema, the description adequately covers the most important behavioral aspect. It could be slightly more complete with permission requirements, but it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full coverage of the single parameter with a description. The tool description does not add additional meaning or context beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and the resource ('promotion'), and adds a distinguishing behavioral note about preserving past usage records. This differentiates it from related tools like 'restore_promotion'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. While it mentions that past usage records are preserved, there is no direct comparison to other tools or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_segmentCDestructiveInspect
Delete a customer segment.
| Name | Required | Description | Default |
|---|---|---|---|
| segmentId | Yes | The segment ID to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already set destructiveHint=true, so the agent knows deletion is destructive. However, the description adds no further behavioral context (e.g., whether deletion is permanent, impacts on associated data, or if it can be undone). Without annotations, this would be a 1; with them it's still minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with a clear verb-object structure. It is concise and front-loaded, but could include more information without becoming verbose. Score 4 for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deletion tool with good schema coverage and annotations, the description is adequate. However, it does not mention return values (output schema exists but content unknown) or side effects. Given the complexity, it is minimally complete but could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema already documents the segmentId parameter. The description 'Delete a customer segment.' does not add any new semantics about the parameter. Baseline 3 is appropriate; no extra value from description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a customer segment.' clearly states the action (delete) and the resource (customer segment). It is specific enough to distinguish from siblings like create_segment, update_segment, and get_segment, though it does not elaborate on what a segment is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., update_segment to deactivate, or set_segment_members). It does not mention prerequisites, such as requiring the segment to exist or be unused. The description lacks any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_service_packageADestructiveInspect
Delete a service package by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| packageId | Yes | Service package ID to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true, indicating a destructive operation. Description adds no further behavioral details such as irreversibility or cascading effects, which are not required but could be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no redundant words; every part earns its place. Front-loaded with action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with one parameter and an output schema, the description is mostly complete. Minor gap: does not mention consequences or confirmations typical for destructive actions, but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the single parameter (packageId) with a description; the tool description offers no additional meaning beyond the schema. Baseline 3 due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states action ('Delete'), target resource ('service package'), and identifier ('by ID'). Clearly discriminates from sibling delete tools which target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. other delete tools or when not to use it. The simple nature implies usage, but explicit context is lacking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_tagADestructiveInspect
Delete a CRM tag and remove it from all tagged entities.
| Name | Required | Description | Default |
|---|---|---|---|
| tagId | Yes | The tag ID to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description adds important behavioral context by stating that deletion removes the tag from all tagged entities, which is beyond what annotations provide. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that effectively communicates the tool's purpose and effect with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with one parameter and an output schema, the description is complete. It clarifies the cascading effect on tagged entities, which is essential for the agent to understand the tool's impact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear parameter description for tagId. The description does not add additional meaning beyond the schema for the single parameter, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete', the resource 'CRM tag', and the effect 'remove it from all tagged entities'. This distinguishes it from sibling tools like create_tag, update_tag, attach_tags, and detach_tags.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or differentiate from siblings like detach_tags or update_tag.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_taskADestructiveInspect
Soft-delete a CRM task.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The task ID to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide destructiveHint=true, and the description adds 'soft-delete,' clarifying the specific behavior. However, it does not explain what soft-delete entails (e.g., reversibility, permissions).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no redundant information. It is appropriately concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with output schema and annotations, the description is mostly complete. It could optionally mention the soft-delete implications (e.g., restorable), but the existing information is sufficient for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter 'taskId' is fully documented in the schema. The description adds no additional meaning beyond the schema's description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Soft-delete a CRM task' clearly states the verb (soft-delete) and resource (CRM task), distinguishing it from other delete tools (e.g., delete_account) and related tools (get_task, update_task).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over alternatives, such as when to soft-delete vs. other deletions or restoration tools. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detach_tagsADestructiveInspect
Detach one tag from one or more member/account records.
| Name | Required | Description | Default |
|---|---|---|---|
| tagId | Yes | Tag ID to detach | |
| accountIds | Yes | Member/account IDs to untag (max 100) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the description adds no new behavioral context. It does not disclose failure modes or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence that front-loads the essential information with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with full schema coverage and an output schema, the description is adequate. However, it could mention edge cases like invalid tagId or duplicate accountIds.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear parameter descriptions. The tool description does not add new 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (detach), the object (tag), and the target (member/account records). It distinguishes itself from siblings like attach_tags and create_tag.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. Usage is implied as the inverse of attach_tags, but lacks explicit exclusions or alternatives.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| field | Yes | Which loyalty unit to credit | |
| amount | Yes | Positive integer amount to credit | |
| reason | No | Audit-trail reason (e.g. "Booking completed", "Manual adjustment") | |
| accountId | Yes | The member/account ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is not read-only, not idempotent, and not destructive. The description adds that the server records a transaction with the reason as audit context, which provides some extra behavioral context but not extensive details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences with no wasted words. It front-loads the verb and resource effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description is adequate. It covers the main operations and audit context, though it could mention account validation or side effects for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description repeats the field usage instructions, adding minimal new meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Credit' and the resource 'loyalty points or stamps', and differentiates between points and stamps via the field parameter. It is specific and distinguishes from sibling tools like issue_rewards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks guidance on when to use this tool versus alternatives, such as redeem_points or issue_rewards. No prerequisites 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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tierId | No | The membership tier ID. Omit to enrol on the default no-tier membership. | |
| accountId | Yes | The member/account ID to enrol | |
| expiresAt | No | Optional ISO date to override the tier-computed expiry. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds value beyond annotations by disclosing that paid tiers return PAYMENT_REQUIRED unless skipPriceCheck is set. Annotations indicate it's not read-only (readOnlyHint false), and description confirms mutation. However, it doesn't mention potential idempotency or what happens if the member is already enrolled in a tier.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences packed with essential information. No filler words. Front-loads the core action and immediately provides behavioral nuances and usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters and an output schema, the description covers key behaviors (immediate vs payment), prerequisite (list_tiers), and parameter usage. No gaps for an AI agent to understand how to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and description adds meaningful context: tierId can be omitted to enrol on default membership, and expiresAt is an optional ISO date to override expiry. This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Enrol' and resource 'member into a membership tier'. Distinguishes between free and paid tiers, and differs from sibling tools like get_membership_tier or list_tiers by focusing on the enrolment action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use: for enrolling members, with differentiation between free (immediate) and paid (may require payment). Provides a prerequisite: 'Use list_tiers first to find the target tier.' Also hints at an alternative (skipPriceCheck) to bypass payment requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_toolADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| toolName | Yes | Exact target tool name returned by search_tools | |
| arguments | No | Arguments object for the target tool. Must match the target input schema. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true and openWorldHint=true. Description adds enforcement of target tool policies but no additional behavioral traits (e.g., error handling, side 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the core action, followed by important policy enforcement context. No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description covers purpose and enforcement, but could mention that the output matches the target tool's output schema. However, output schema exists, so this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter schema is fully covered with descriptions. Description adds only a usage hint for toolName but does not enrich parameter meaning beyond schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool executes any FavCRM tool by name, differentiating it from specific CRUD siblings. The reference to discovery via search_tools adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage after search_tools but lacks explicit when/when-not guidance or alternatives. It does not state when to prefer direct tool calls over this dispatcher.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Optional title if a new thread is created | |
| userId | No | Merchant user ID to notify. Defaults to the current MCP user when omitted. | |
| agentId | Yes | AI colleague ID for the Workroom DM |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate it is not read-only and not destructive. The description adds that it only prepares the channel (not sends a message) and focuses on internal Workroom, which is useful. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose, usage context, and scope clarification. No unnecessary words. Front-loaded with the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and parameters are well-documented, the description provides adequate context: what it does, when to use, and what it does not do. Could mention that it checks for existing threads, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The description text does not add new details beyond the schema, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('find or create') and resource ('Workroom DM thread'), specifies the participants ('merchant user and AI colleague'), and gives a precise use case. It distinguishes from the sibling 'post_workroom_message' by noting it only prepares the channel, not sends messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use: 'when an inbound event deserves owner attention but no threadId was provided.' It also clarifies that it 'only prepares an internal Workroom channel,' implying that after this, posting is needed. However, it does not mention alternatives or when not to use.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Random seed for reproducible output | |
| prompt | Yes | Generation prompt | |
| modelCode | Yes | Image model code from list_image_models | |
| aspectRatio | No | Output aspect ratio (e.g. 16:9, 1:1) | |
| pollTimeoutMs | No | Default 60000. | |
| negativePrompt | No | Things to exclude from generation | |
| pollIntervalMs | No | Default 3000. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds useful behavioural context beyond annotations: costs credits, poll timeout behavior, and jobId retrieval. Annotations are minimal, so description compensates well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with purpose, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all necessary context: generation, usage, cost, poll behavior, and job retrieval. Output schema exists, so return values are documented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so schema already documents parameters. Description provides minimal additional semantic value (e.g., mentions list_image_models for modelCode), but baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'generate', resource 'AI image', and outcome 'public R2 URL'. Distinguishes from siblings by noting it does not attach to a post by itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance on when to use (mint reusable URLs for image fields) and mentions costs and referencing list_image_models. Does not explicitly state when not to use, but context is strong.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Random seed for reproducible output | |
| postId | Yes | The post ID | |
| prompt | Yes | Image generation prompt | |
| modelCode | Yes | Image model code from list_image_models (e.g. nano-banana-2) | |
| aspectRatio | No | Aspect ratio passed to the model, e.g. "16:9", "1:1" | |
| pollTimeoutMs | No | Default 60000. | |
| negativePrompt | No | Things to exclude from generation | |
| pollIntervalMs | No | Default 3000. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations (which only set readOnlyHint=false and destructiveHint=false) by detailing the job submission, polling, R2 folder copy, URL writing, credit cost, and timeout handling. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences, with the main action in the first sentence and process details in the second. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (8 parameters, 3 required, output schema present), the description covers all key aspects: the action, the multi-step process, cost implications, timeout behavior, and fallback. It is complete for an AI agent to understand how and when to invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description explains the overall workflow but does not add significant meaning beyond the schema for individual parameters. For example, it mentions modelCode from list_image_models but provides no additional syntax or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates an AI image and attaches it as a post's featuredImage, specifying the verb and resource. It distinguishes from siblings like attach_post_cover_from_job and list_image_models by mentioning them, providing a specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit context: it costs credits (reference to list_image_models), describes polling timeout behavior, and suggests using attach_post_cover_from_job as a fallback. While it doesn't explicitly state when not to use, it offers sufficient guidance for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attachment_textARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| attachmentId | Yes | The attachment ID from the message attachments list |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, idempotent, non-destructive behavior. The description adds valuable details: extraction on first read, caching, and return statuses ('ready', 'skipped', 'failed', 'not_found'). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences) and front-loaded with the core purpose. Every sentence adds value, no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, clear annotations, output schema exists), the description covers all essential aspects: purpose, input source, behavior (extraction, caching, results), and usage guidance. It is complete for an AI agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one required parameter 'attachmentId' described in schema. The description adds context on how to obtain the ID ('from the message attachments list'), which adds some value beyond the schema, but not enough to raise the score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool reads text/Markdown content from attachments (PDF, image, document) in Workroom threads or customer messages. It distinguishes itself from sibling tools by focusing on attachment text extraction rather than other data retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises when to use the tool: 'Use when a message references an attachment you need to read.' It does not explicitly state when not to use, but the context makes it clear it is only for reading attachments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_audit_logARead-onlyIdempotentInspect
Fetch a single audit log entry by ID, including before/after snapshots when available.
| Name | Required | Description | Default |
|---|---|---|---|
| auditLogId | Yes | Audit log ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context about snapshot availability beyond annotations. However, annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so behavioral transparency is partially covered. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, 13 words, front-loaded with key information. No unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch tool with one parameter and an output schema, the description is sufficient. It clearly states what the tool does and includes an important detail about snapshots.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter, and description does not add additional meaning beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fetch a single audit log entry by ID') and resource, distinguishing it from list/search tools. The mention of snapshots adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for fetching a single entry but does not explicitly differentiate from sibling tools like list_audit_logs or search_audit_logs. No when-to-use or when-not-to-use 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_slotsARead-onlyIdempotentInspect
Find available booking slots for a service on a specific date.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ISO date to check (YYYY-MM-DD) | |
| staffId | No | Optional: filter by specific staff member | |
| serviceId | Yes | The service to check availability for | |
| resourceId | No | Optional: filter by specific resource |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds the specific scoping to a date, but does not disclose further behavioral traits like return format, pagination, or timezone handling. This is adequate but not exceptional 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.
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 key action and resource. No unnecessary words or details, achieving maximum efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with a clear purpose and existing output schema, the description adequately covers the core functionality. It specifies the two required parameters (serviceId, date) and implies the return type (available slots). Some additional context about slot granularity or timezone could be beneficial but is not strictly needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema already provides detailed explanations for all four parameters. The description adds high-level context ('for a service on a specific date') but does not enhance parameter 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Find') and resource ('available booking slots') with clear constraints ('for a service on a specific date'). It effectively distinguishes from siblings like 'list_bookings' and 'get_booking_detail' by focusing on availability slots 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the context for use: checking availability for a service on a date. While it does not explicitly exclude alternatives or provide when-not-to-use guidance, the context is unambiguous and sufficient for an agent to understand when to invoke this tool versus others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_booking_detailARead-onlyIdempotentInspect
Get full booking details including line items, status history, and participants.
| Name | Required | Description | Default |
|---|---|---|---|
| bookingId | Yes | The booking ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, indicating a safe read operation. The description adds value by specifying the returned content (line items, status history, participants), but does not disclose additional behavioral traits like rate limits or prerequisites. Since annotations cover 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence of 12 words that efficiently communicates the tool's purpose and scope. Every word contributes to clarity, and there is no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only retrieval tool with a single parameter and an existing output schema, the description provides sufficient context. It states what the tool returns (full details including line items, status history, participants), which is complete for appropriate use. The presence of the output schema reduces the need to describe return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single parameter bookingId, with a schema description of 'The booking ID'. The tool description does not add further semantic meaning or usage hints for the parameter, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get full booking details' and specifies included components (line items, status history, participants). This distinguishes it from sibling tools like get_booking_settings or get_booking_stats, as it focuses on comprehensive detail retrieval for a specific booking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when full booking details are needed, but it does not explicitly state when to prefer this over alternatives like list_bookings or get_booking_settings. No exclusions or alternative mentions are provided, making it adequate but not exemplary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_booking_settingsARead-onlyIdempotentInspect
Get global booking settings for the customer booking flow, cancellation rules, visibility options, and confirmation requirements.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds valuable context by enumerating the categories of settings returned (booking flow, cancellation, visibility, confirmation), which exceeds what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core purpose ('Get global booking settings') and efficiently lists the covered areas without any redundant or irrelevant details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there are no parameters, annotations cover safety, and an output schema exists, the description sufficiently informs the agent about what the tool retrieves. It covers the essential aspects for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters. The description does not need to explain parameters; it correctly describes the output scope. Baseline for no-param tools is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'global booking settings' covering specific areas: customer booking flow, cancellation rules, visibility options, and confirmation requirements. This is a specific verb-resource pair with distinct scope among sibling get_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for fetching booking settings but does not provide explicit guidance on when to use it versus alternatives, nor does it mention any preconditions or exclusion cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_booking_statsARead-onlyIdempotentInspect
Get booking counts: today, this week, this month, and breakdown by status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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 that it returns counts for timeframes and status breakdown, but does not disclose further behavioral traits like data freshness or caching. Adds context beyond annotations but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded and contains no fluff. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and an output schema (though not shown), the description covers the key aspects: timeframes and status breakdown. It could be slightly more specific about which statuses are included, but it is largely sufficient for a simple stats endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100% by default. The description does not need to provide parameter details; it appropriately skips them. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns booking counts for specific timeframes (today, this week, this month) and a breakdown by status. The verb 'Get' and resource 'booking stats' are specific, and it distinguishes from sibling tools like list_bookings (individual bookings) and get_dashboard_stats (broader stats).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for aggregate counts, but does not explicitly tell when to use this tool versus alternatives like list_bookings or get_dashboard_stats. No direct guidance on when-not-to-use or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contactARead-onlyIdempotentInspect
Fetch a single contact by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| contactId | Yes | The contact ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false, making the behavioral profile clear. The description 'Fetch' aligns and adds no additional context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no unnecessary words, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return value explanation is not needed. The description is sufficient for the simple fetch operation given the annotations and schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with the parameter 'contactId' described as 'The contact ID'. The description adds no extra 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch', resource 'contact', and scope 'single by ID', which distinguishes it from sibling tools like 'list_contacts' or 'create_contact'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While no explicit when/when-not or alternatives are mentioned, the context of a simple get-by-ID operation is clear. The agent can infer usage from the tool's name and parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conversation_messagesARead-onlyIdempotentInspect
Get messages from a specific conversation thread. Shows the chat history between the merchant and a contact.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| search | No | Search within messages | |
| conversationId | Yes | The conversation ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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 content (messages, chat history) which aligns with annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences that front-load the action and purpose. Every word adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description sufficiently explains the tool's purpose and output for a simple retrieval operation. Since an output schema exists, the description does not need to detail return values. A minor gap: doesn't mention that it returns messages in order or pagination, but acceptable given the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description does not provide additional parameter-level details beyond what's in the schema (e.g., limit, search, conversationId). Meets the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action ('Get messages'), the resource ('from a specific conversation thread'), and the context ('shows the chat history between the merchant and a contact'). This distinguishes it from siblings like 'list_conversations'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (to view chat history for a specific conversation) but does not explicitly contrast with alternatives such as 'list_conversations' or 'post_workroom_message'. The context is clear enough for most use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_custom_fieldARead-onlyIdempotentInspect
Get a custom field definition by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| definitionId | Yes | Custom field definition ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, establishing the tool's safety. The description adds no additional behavioral context beyond stating it gets a definition, so it does not significantly enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 8 words, perfectly front-loaded and efficient with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one required parameter, an output schema, and full annotation coverage, the description is complete enough. It tells the agent exactly what the tool does and how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the only parameter 'definitionId' has a clear schema description. The tool description adds no new meaning beyond restating that it retrieves by ID, so it provides no additional semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Get' and resource 'custom field definition' with retrieval method 'by ID', clearly distinguishing it from sibling tools like list_custom_fields and update_custom_field.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. While the purpose implies retrieval of a single definition, it does not differentiate from list_custom_fields or get_custom_field_values, leaving room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_custom_field_valuesARead-onlyIdempotentInspect
Get custom field values for a CRM entity such as an account, contact, deal, or booking.
| Name | Required | Description | Default |
|---|---|---|---|
| entityId | Yes | Entity ID | |
| entityType | Yes | Entity type |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint, so safety is clear. The description adds context on supported entity types but does not disclose behavior for missing entities or default values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 16 words, front-loaded with action and subject. No extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with two required parameters and an output schema, the description adequately covers what the tool does. No further context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description does not add meaningful additional semantics beyond stating the entity types, which are already in the enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), resource ('custom field values'), and scope ('for a CRM entity'), with examples of entity types. It clearly distinguishes from siblings like 'set_custom_field_values' and 'list_custom_fields'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as 'get_custom_field' or 'list_custom_fields'. No prerequisites 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.
get_dashboard_statsARead-onlyIdempotentInspect
Get high-level business KPIs: member count, new members this week, active subscriptions, total points issued, active promotions, rewards redeemed, messages sent.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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 value by enumerating the specific data points returned, enhancing the agent's understanding 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently lists the KPIs. It is well-structured and front-loaded with the main purpose, with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and the presence of an output schema, the description provides sufficient context by listing the KPIs. It covers the essential information for a dashboard stats tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to add parameter information. The baseline for zero-parameter tools is 4, and the description meets that by not requiring additional parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves high-level business KPIs and lists specific metrics. The verb 'get' and resource 'dashboard stats' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. While it is a generic KPI tool, it does not differentiate from sibling tools like get_booking_stats or get_invoice_stats. Usage is implied but not explicitly clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dealARead-onlyIdempotentInspect
Get detailed CRM deal information by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| dealId | Yes | The deal ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. Description adds minimal behavioral context beyond 'by ID'. No contradictions, but no additional traits disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 7 words, no redundancy, front-loaded with purpose. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, annotations cover safety. Description is sufficient for a simple get-by-id tool. Could mention return format but not necessary given schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with description 'The deal ID'. Description echoes this with 'by ID', adding no new meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get detailed CRM deal information by ID', specifying verb, resource, and method. It distinguishes from sibling tools like list_deals, create_deal, update_deal, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like list_deals or search_crm. Implies use for specific deal details, but lacks contrast with similar retrieval tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoiceARead-onlyIdempotentInspect
Fetch a single invoice with line items, payment history, and customer detail.
| Name | Required | Description | Default |
|---|---|---|---|
| invoiceId | Yes | Invoice ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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 context about the return content (line items, payment history, customer detail), enhancing transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with verb and resource. No unnecessary words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool, high schema coverage, rich annotations, and presence of output schema, the description is fully adequate for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with invoiceId described as 'Invoice ID'. The description does not add additional parameter semantics beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetch a single invoice' with specific included details (line items, payment history, customer detail), distinguishing it from list_invoices and other sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like list_invoices or get_invoice_stats. The usage is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoice_statsARead-onlyIdempotentInspect
Outstanding totals, overdue counts, and revenue this period. Used by the weekly-snapshot playbook.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, covering safety and idempotency. The description adds the insight that it returns aggregated period-specific data, but does not elaborate on potential limitations (e.g., date range definition, pagination, or performance). The additional context is modest 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two short sentences: the first states the tool's output, and the second provides a usage context. Every word is necessary; there is no repetition or fluff. It is well-structured and front-loaded with the most critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of parameters, the presence of an output schema (which documents return format), and clear annotations, the description adequately covers the tool's functionality. However, it does not define what 'this period' means (e.g., current month, fiscal year) or whether the data is real-time or cached. This minor gap prevents a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and schema description coverage is 100%, meaning there are no parameter semantics to clarify. The description's mention of 'this period' implies a time context, but since no date parameters exist, this does not require further documentation. A higher score is not warranted because the description adds no parameter details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the exact resource ('invoice stats') and lists concrete metrics ('Outstanding totals, overdue counts, and revenue this period'). This clearly distinguishes it from sibling tools like 'get_booking_stats' or 'get_dashboard_stats', which target different data. The verb 'get' combined with the specific metric names makes the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Used by the weekly-snapshot playbook,' which hints at an automated context but does not explicitly state when to use this tool versus alternatives like 'get_invoice' (single invoice) or 'list_invoices'. No guidance is given on scenarios that would make this tool more appropriate than similar stat tools, leaving the agent to infer usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_knowledge_documentARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| documentId | Yes | Knowledge document ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, and idempotentHint. The description adds value by specifying that the response includes metadata and status, and that different content variants are accessed via separate endpoints, providing behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences. The first sentence states the primary purpose, and the second provides important usage guidance. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter input schema and the existence of an output schema, the description sufficiently covers the tool's functionality. It mentions the response includes metadata and status, and directs to another endpoint for content, making it complete for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not add meaning beyond the schema's parameter description. Since schema description coverage is 100%, the baseline is 3, and the description does not provide additional semantics for the documentId parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'fetch' and the resource 'single knowledge document', and specifies that it includes metadata and extraction/review status. It also distinguishes from sibling tools like list_knowledge_documents by emphasizing 'single' document retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly informs that reviewed content is served via a different endpoint, and raw/extracted variants are for audit. This provides clear guidance on when to use this tool versus alternative endpoints for content retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_loyalty_balanceARead-onlyIdempotentInspect
Get a member's current loyalty balance — points, stamps, credits, lifetime totals, and active membership tier. Returns null if the member is not enrolled.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The member/account ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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 useful behavior: returns null if the member is not enrolled. This supplements the annotations without contradicting them. No further traits like auth needs or rate limits are mentioned, but the added context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 20 words, front-loaded with the verb and resource. It is concise, no filler, and every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately covers return specifics (enumerated fields and the null case). For a read-only tool with rich annotations, this is complete and sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for accountId. The description does not add extra meaning beyond confirming this is a member ID. Baseline of 3 is appropriate as the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves a member's current loyalty balance, enumerating key components (points, stamps, credits, lifetime totals, active membership tier). It also distinguishes from sibling tools like earn_loyalty_points, issue_rewards, get_membership_tier, and get_member_profile by focusing on the full balance for an enrolled member.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving comprehensive loyalty data but does not explicitly state when to use this tool versus alternatives (e.g., get_membership_tier for tier-only queries, or earn_loyalty_points for earning operations). No 'when not to use' or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_member_profileARead-onlyIdempotentInspect
Get detailed profile for a specific member/account by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The account ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description aligns with 'get' but adds no extra behavioral context (e.g., data freshness, rate limits). Baseline score appropriate given annotation richness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, 11 words, front-loaded with verb. No unnecessary information. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-parameter read-only tool with output schema (not shown), description adequately states purpose and identification method. Annotations cover safety aspects. No missing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with accountId described as 'The account ID'. Description adds 'by ID' but no additional meaning beyond schema. Baseline 3 due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Get', resource 'detailed profile for a specific member/account', and parameter 'by ID'. Among many 'get' siblings, this differentiates by specifying 'member/account' and 'detailed profile'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., get_contact). Does not mention when not to use or provide context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_membership_tierARead-onlyIdempotentInspect
Get a specific membership tier by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| tierId | Yes | The tier ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, non-destructive. The description adds no further behavioral context, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and annotations are present, the minimal description is sufficient for a simple retrieval tool. Could mention result if tier not found.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter description 'The tier ID'. The description adds 'by ID' which adds no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get a specific membership tier by ID' clearly states the verb and resource, and distinguishes from sibling list_tiers which lists all tiers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a specific tier ID is known, but does not explicitly state when to use or avoid this tool versus alternatives like list_tiers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_offer_ruleARead-onlyIdempotentInspect
Get offer rule detail including associated products and discounts.
| Name | Required | Description | Default |
|---|---|---|---|
| ruleId | Yes | The offer rule ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered. The description adds no further context beyond 'Get', which is consistent. A score of 3 is appropriate as the description adds minimal extra behavioral info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler. It front-loads the verb and resource, then specifies the scope. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter tool with one parameter and a known output schema, the description adequately conveys what the tool returns (detail, products, discounts). Combined with the annotations, it is fully complete – nothing missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the only parameter 'ruleId' described as 'The offer rule ID'. The description does not add any additional meaning or format guidance beyond what the schema provides. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get offer rule detail including associated products and discounts' – a specific verb (Get) plus resource (offer rule) plus scope (detail, products, discounts). It distinguishes itself from siblings like 'list_offer_rules' (which lists rules without detail) and 'create_offer_rule'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you need full detail of a specific rule), but it does not explicitly state when to use this tool versus alternatives like 'list_offer_rules' or 'update_offer_rule'. 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_orderARead-onlyIdempotentInspect
Get full order detail including line items.
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | Yes | The order UUID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, establishing a safe read operation. The description adds value by specifying what details are returned ('including line items'), which goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence (6 words) that effectively communicates the purpose without any 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with an output schema (not shown but indicated), the description is sufficient. The sibling tools provide clear context (e.g., list_orders for listing all orders, update_order_status for modifications).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the single parameter ('The order UUID'). The tool description does not add additional 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get full order detail including line items' uses a specific verb ('Get') and resource ('order detail') and further specifies scope ('including line items'), distinguishing it from sibling tools like list_orders which only list summaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies usage for retrieving a single order's full details. The context signals and sibling names (e.g., list_orders, update_order_status) provide differentiation, though no explicit when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_plan_statusARead-onlyIdempotentInspect
Show the current organisation plan, subscription/payment state, enabled modules, and quota usage. Use before deciding whether an agentic operation is allowed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so description mainly lists return fields (plan, subscription, modules, quota). It adds no new behavioral traits beyond annotations, but the content is accurate and consistent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second gives usage guidance. No unnecessary words or repetition. Ideal length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and presence of output schema, description covers all relevant aspects: what is shown (plan, subscription, payment, modules, quota) and when to use (before operations checking allowances). Fully adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters and schema coverage is 100%. No need for parameter explanation in description. Baseline for 0 params is 4, and description meets that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Show the current organisation plan, subscription/payment state, enabled modules, and quota usage.' It uses a specific verb ('Show') and resource ('plan status'), distinguishing itself from siblings like list_plan_options which lists available plans.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use before deciding whether an agentic operation is allowed,' providing clear context on when to use this tool. While it doesn't mention alternatives or when not to use, the advice is direct and helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_postARead-onlyIdempotentInspect
Get detailed CMS post including content blocks, categories, and tags.
| Name | Required | Description | Default |
|---|---|---|---|
| postId | Yes | The post ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating safe read. The description adds value by specifying what is returned (content blocks, categories, tags). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently communicates the tool's purpose and scope. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (documenting return values), full annotation coverage, and low complexity, the description is complete. It tells the agent exactly what the tool does and what it returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with a single parameter (postId) described concisely. The description does not add any additional parameter information, 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.
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 ('detailed CMS post'), and the specific inclusions ('content blocks, categories, and tags'). It distinguishes from siblings like list_posts (which lists posts) and update_post (which modifies).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need detailed information about a single post. Although it does not explicitly list exclusions, the context from sibling tools (e.g., list_posts for listing) makes the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productARead-onlyIdempotentInspect
Get full product detail including images, options, and variations.
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | The product ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds no additional behavioral context (e.g., auth needs, rate limits, or data freshness). It is adequate but does not enhance beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no superfluous words. It is front-loaded with the purpose and includes specifics (images, options, variations) efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input schema (one required parameter) and the existence of an output schema (not shown, but mentioned), the description sufficiently conveys what the tool does. It could mention that it returns a full product detail object, but the output schema likely covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the single parameter 'productId' described as 'The product ID.' The description does not add any new meaning or usage details beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get full product detail including images, options, and variations,' which specifies the verb (Get), resource (product detail), and scope (images, options, variations). This distinguishes it from sibling tools like 'list_products' that return summaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving a single product's details, but does not explicitly state when to use it versus alternatives like 'list_products' or 'get_product_category'. 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_promotionARead-onlyIdempotentInspect
Get details of a specific promotion/coupon code.
| Name | Required | Description | Default |
|---|---|---|---|
| promotionId | Yes | The promotion ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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's a safe read operation. The description adds minor context ('details') but does not disclose return format, potential errors, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundant words. It could be slightly improved by including a brief note about the output, but it is efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one parameter, no nested objects) and presence of both annotations and an output schema, the description is almost complete. It could mention what 'details' include, but the output schema likely covers this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter 'promotionId' described as 'The promotion ID'. The description mentions 'specific promotion/coupon code' but adds no extra 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.
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 ('specific promotion/coupon code'), matching the tool's name. It distinguishes from sibling tools like list_promotions (which lists all) and create/update/delete promotions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool or provide alternatives. Usage is implied: when you have a promotion ID and want its details. However, no guidance on when not to use it or distinction from validate_promotion or list_promotions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_segmentARead-onlyIdempotentInspect
Get customer segment details including type, criteria, and live member count.
| Name | Required | Description | Default |
|---|---|---|---|
| segmentId | Yes | The segment ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by specifying the returned details (type, criteria, live member count), which goes beyond what annotations provide. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with the action and resource, containing no unnecessary words. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one required parameter, existing annotations, and an output schema documenting return values, the description adequately covers the tool's behavior. It lists three specific details returned but does not mention that this is for a single segment by ID, which is implicitly clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter (segmentId) with 100% schema coverage. The description adds no additional meaning beyond the schema's description 'The segment ID'. Baseline score of 3 is appropriate given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Get customer segment details' and specifies included fields (type, criteria, live member count). This clearly distinguishes it from sibling tools like list_segments (list all segments) and get_segment_members (get members).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving details of a specific segment but does not provide explicit guidance on when to use it versus alternatives like list_segments or get_segment_members. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_segment_membersARead-onlyIdempotentInspect
Get the members that belong to a specific segment.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| segmentId | Yes | The segment ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description aligns with annotations (readOnlyHint=true, destructiveHint=false) but adds no new behavioral context like pagination or rate limits. Annotations carry the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One efficient sentence with no waste. Front-loaded purpose. Perfect conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Sufficient for a simple read operation with output schema. Could mention pagination or member count, but not critical given schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers both parameters with descriptions (100% coverage). Description adds no extra meaning beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Get' and resource 'members that belong to a specific segment', distinguishing it from sibling tools like set_segment_members and get_segment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as search_members or list_contacts. Lacks context for optimal usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_service_detailARead-onlyIdempotentInspect
Get full service details including addons, staff, resources, and tier pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| serviceId | Yes | The service ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only and idempotent, so the description appropriately focuses on what data is included (addons, staff, resources, tier pricing), adding useful behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence clearly conveys the tool's purpose and scope with no wasted words. It is front-loaded and efficiently communicates the key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read operation with an output schema, the description adequately lists key return components. It is complete enough but could briefly mention that it is a detail retrieval for one service.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, serviceId, is already fully described in the schema with 100% coverage. The description does not add any further meaning to the parameter beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'full service details' and lists specific components (addons, staff, resources, tier pricing), distinguishing it from sibling tools like list_services or get_service_package.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the comprehensive fetch for a single service but provides no explicit guidance on when to use it versus siblings like list_services or get_service_package, nor conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_service_packageARead-onlyIdempotentInspect
Get service package detail including applicability and selected booking service/event items.
| Name | Required | Description | Default |
|---|---|---|---|
| packageId | Yes | Service package ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior. The description adds value by specifying that the detail includes applicability and selected booking service/event items, which is beyond annotation information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently conveys the tool's purpose without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter, output schema present), the description adequately covers what the tool returns. No additional context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter (packageId) is well-documented in the schema with a clear description. The tool description does not add additional semantics beyond the schema, but the schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves service package details, including applicability and selected booking items. It distinguishes from sibling tools like list_service_packages (list all) and create_service_package.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use versus alternatives. While the purpose is clear, the description does not mention exclusions or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscriptionARead-onlyIdempotentInspect
Fetch a single subscription with customer, tier, billing cycle, and renewal info.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value by listing the specific fields returned (customer, tier, billing cycle, renewal info), giving the agent a clearer picture of the behavior beyond what annotations convey. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 10 words, with the verb and resource front-loaded. No wasted information; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately covers the tool's purpose and return value. With one well-documented parameter and clear annotations, nothing is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter 'subscriptionId' described. The description does not add additional meaning beyond the schema; it focuses on the output rather than the input. Per rubric, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fetch') and the resource ('a single subscription'), and specifies the returned information (customer, tier, billing cycle, renewal info). This distinguishes it from sibling tools like list_subscriptions (which returns multiple).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (to get details of a single subscription) but does not explicitly state when not to use or suggest alternatives. Siblings like list_subscriptions are not mentioned, so usage guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_surveyARead-onlyIdempotentInspect
Get survey detail, including blocks, publishing status, visibility, settings, and response count.
| Name | Required | Description | Default |
|---|---|---|---|
| surveyId | Yes | Survey ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds behavioral context by listing specific data fields returned (blocks, publishing status, visibility, settings, response count), providing useful detail beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence of 14 words. Every word conveys essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input (one required ID) and presence of an output schema, the description sufficiently covers what the tool returns. It could mention response format or error behavior, but the listed fields provide adequate context for a read-only retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (surveyId) with 100% schema coverage. The description does not add semantic information beyond the schema's 'Survey ID' label. Since coverage is high, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get survey detail' and enumerates specific components returned (blocks, publishing status, visibility, settings, response count). It distinguishes from sibling tools like 'get_survey_responses' and 'get_survey_stats' by implying a broader scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving full survey details but does not explicitly specify when to use this tool over alternatives (e.g., get_survey_responses for responses only, list_surveys for listing). No 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.
get_survey_responsesCRead-onlyIdempotentInspect
List responses for a survey.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max responses (default 50) | |
| surveyId | Yes | Survey ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint and idempotentHint, but the description adds no behavioral context beyond that. It does not mention pagination, sorting, the effect of the limit parameter, or any other runtime behavior. With annotations present, the bar is lowered, but the description still fails to provide useful behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) and front-loaded with the essential action. It contains no wasted words. However, it could marginally expand to clarify the scope (e.g., 'for a specific survey') without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description lacks context for a tool with many siblings. It does not clarify that this tool returns response data as opposed to survey metadata or stats. The minimal description leaves the agent with insufficient information to decide when to call this tool among the many list_* and get_* tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description does not add any extra meaning or constraints. Baseline of 3 is appropriate as no value is added beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('list') and the resource ('responses for a survey'). It is unambiguous but does not differentiate from closely related 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.
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. For example, it does not mention that to retrieve survey metadata one should use 'get_survey', or that to get aggregated stats to use 'get_survey_stats'. The agent is left to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_survey_statsARead-onlyIdempotentInspect
Get response and invitation metrics for a survey overview dashboard.
| Name | Required | Description | Default |
|---|---|---|---|
| surveyId | Yes | Survey ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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 that it returns metrics for a dashboard, which is consistent. No contradictions, and the description provides additional context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no waste. However, it is very minimal and could include slightly more detail without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input schema (one required parameter), the existence of an output schema (so return values need not be explained), and the low complexity, the description is largely complete. However, it does not specify which metrics are returned (e.g., response count, invitation count), which would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (surveyId is described as 'Survey ID'). The description does not add any extra meaning beyond what the schema already provides, so it meets the baseline expectation but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), specifies the resource ('response and invitation metrics for a survey overview dashboard'), and clearly distinguishes from sibling tools like `get_survey` and `get_survey_responses` by indicating it provides aggregated overview data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when an overview of survey metrics is needed, but it does not explicitly state when to use this tool vs alternatives like `get_booking_stats` or `get_dashboard_stats`, 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_taskARead-onlyIdempotentInspect
Get detailed task information by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The task ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is clear. Description adds 'detailed task information' but does not disclose additional behavioral traits beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence front-loaded with key action and resource. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one required parameter and an output schema, the description provides complete context. Output schema details are not needed per guidelines.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (taskId has a description). Description does not add further meaning beyond the schema, meeting baseline for full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'get', resource 'detailed task information', and identifier 'by ID'. It effectively distinguishes from sibling tools like get_contact or get_deal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not specify situations to avoid or mention alternative tools for related tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ticket_statsARead-onlyIdempotentInspect
Get ticket counts grouped by status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds no extra behavioral context beyond stating the function, which aligns with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, no filler, front-loaded with key information. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 0 parameters, existing output schema, and comprehensive annotations, the minimal description is sufficient. It lacks no critical information for a simple stats tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0 parameters with 100% coverage, so baseline is 4. No parameter info needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get ticket counts grouped by status' is a specific verb+resource+outcome. It clearly distinguishes from sibling tools like get_booking_stats or get_invoice_stats by focusing on tickets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. It's implied that you use it for ticket counts, but no when-not or context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_whatsapp_connection_statusARead-onlyIdempotentInspect
Check whether WhatsApp Business is connected for this company, including WABA/phone metadata and the latest agentic connect session state.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and destructiveHint. The description adds value by specifying the data returned (WABA/phone metadata, session state), which is not covered by annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no extraneous information. It is concise and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, rich annotations, and an existing output schema, the description adequately covers the tool's behavior and return context. No gaps are apparent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is 100%. Baseline score is 4 for zero-parameter tools; the description does not need to add parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Check') and the resource ('WhatsApp Business connection') with specific details (WABA/phone metadata, session state). It effectively distinguishes from sibling tools like '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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied—this is a read-only check for connection status. However, there is no explicit guidance on when to use this versus alternatives (e.g., before attempting to connect).
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.
| Name | Required | Description | Default |
|---|---|---|---|
| expiresAt | No | Optional ISO date when the reward expires | |
| memberIds | Yes | Member/account IDs to receive the reward (max 50) | |
| giftOfferId | Yes | The gift offer/reward scheme ID to issue |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate it is not read-only and not destructive, and the description implies a write operation. However, it does not disclose additional behavioral details such as idempotency, maximum batch size, or side effects beyond the parameter descriptions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the primary action and then lists prerequisites. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has a simple purpose, all parameters are described in the schema, and an output schema exists, the description is adequately complete. It could mention idempotency or retry behavior for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description adds no new parameter information beyond reiterating required fields. It does not elaborate on data types or defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('issue'), specifies the resource ('gift/reward'), and indicates it applies to multiple members. This distinguishes it from sibling tools like 'earn_loyalty_points'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions prerequisites (gift offer ID and member IDs) but does not explicitly state when to use this tool vs alternatives like 'earn_loyalty_points' or other mutation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_resource_to_serviceBInspect
Link a room/resource to a booking service.
| Name | Required | Description | Default |
|---|---|---|---|
| serviceId | Yes | Service ID | |
| resourceId | Yes | Resource ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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 indicate non-read-only, non-destructive, non-idempotent behavior, but the description does not elaborate on side effects or requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no extraneous information. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple and has an output schema, the description omits context about the nature of the link (e.g., whether it replaces existing links, permissions needed). It is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description does not add further meaning to the parameters, so it meets the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Link') and the involved entities ('room/resource' and 'booking service'). It is specific and distinguishes from sibling tools like 'assign_staff_to_service' or 'create_resource'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. It does not mention 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.
list_audit_logsARead-onlyIdempotentInspect
List recent audit log entries for this company. Filter by action, resource, resourceId, user, source, outcome, destructive flag, and created date range.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return | |
| action | No | Exact tool/action name, e.g. delete_campaign | |
| source | No | Audit source, e.g. mcp, ai_agent, payment_webhook, merchant_api | |
| userId | No | Actor user ID | |
| outcome | No | Execution outcome | |
| resource | No | Resource name, e.g. campaigns | |
| resourceId | No | Resource ID | |
| destructive | No | Whether the audited tool was destructive | |
| createdAfter | No | ISO timestamp lower bound | |
| createdBefore | No | ISO timestamp upper bound |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds the notion of 'recent' logs and filter capability, but does not conflict with annotations. However, it doesn't elaborate on behavioral nuances beyond what annotations and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded purpose, no fluff. Efficiently communicates the tool's function and main features.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter list tool with full schema coverage and an output schema, the description adequately covers the purpose and filter capabilities. It could mention sorting or default ordering, but overall is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents each parameter. The description merely lists filter names, which adds no 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb (list), resource (recent audit log entries), and scope (for this company). It distinguishes from siblings like get_audit_log and search_audit_logs by specifying 'recent' and listing filters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage context (listing recent audit logs) but does not explicitly differentiate from siblings like get_audit_log or search_audit_logs. No when-not-to-use 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.
list_bookingsARead-onlyIdempotentInspect
List bookings with filters for date range, status, service, staff, or member.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| dateTo | No | ISO date — bookings up to this date | |
| status | No | Filter by booking status | |
| staffId | No | Filter by staff member ID | |
| dateFrom | No | ISO date — bookings from this date | |
| accountId | No | Filter by member/account ID | |
| serviceId | No | Filter by service ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description's mention of filters adds minimal behavioral transparency. No additional traits (e.g., pagination behavior, rate limits, default sorting) are disclosed beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is clear and to the point. No unnecessary words or redundancy. It front-loads the purpose and lists filters efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, return values need not be explained. The description combined with schema and annotations adequately covers the tool's functionality, though it could mention default behavior (e.g., limit 20) or that bookings are from the current company context. Still, it is sufficiently complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already describes all 7 parameters with descriptions. The description only summarizes some filter types without adding new meaning or clarifying any ambiguous parameter relationships. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'List' and resource 'bookings', and explicitly mentions filters (date range, status, service, staff, or member). This clearly distinguishes it from sibling tools like create_booking, cancel_booking, or other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used for listing bookings with filters but does not provide explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned, though the context of siblings offers many list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_campaignsBRead-onlyIdempotentInspect
List marketing campaigns (email, SMS, WhatsApp) with delivery stats.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort column | |
| limit | No | Max results (default 20) | |
| order | No | Sort order | |
| search | No | Search by campaign name | |
| channel | No | Filter by channel |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint, indicating safe read operation. The description adds that the tool returns 'delivery stats', which is useful behavioral context beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 8 words, which is concise but loses accuracy by omitting the 'push' channel. It could include mentions of filtering and sorting without much bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 5 parameters and an output schema, the description only mentions channels and delivery stats, ignoring filter, search, sort, and limit capabilities. It is not complete for a list tool with multiple filters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already well-documented. The description does not add new meaning beyond the schema, meeting the baseline of 3. It mentions 'delivery stats' which may relate to output, not parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List marketing campaigns', specifying the verb and resource. It also mentions channels (email, SMS, WhatsApp) and delivery stats, distinguishing it from other list tools. However, it omits the 'push' channel present in the schema enum, making it slightly incomplete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are given, but the description implies usage for listing campaigns with delivery stats. Given it's a straightforward list tool, the context is adequate but lacks guidance on when not to use it, e.g., for detailed campaign analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesARead-onlyIdempotentInspect
List CMS post categories.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, signaling a safe read operation. The description adds no further behavioral context, but does not contradict annotations (annotation_contradiction=false).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (5 words), front-loaded with the verb and resource, and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, an output schema, and strong annotations, the description is sufficiently complete. It clearly states the output scope, though it could mention ordering or pagination as a minor improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and schema description coverage is 100% (trivially). The description adds no parameter info, but with no parameters, the baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List CMS post categories' uses a specific verb ('List') and resource ('CMS post categories'), clearly defining the tool's purpose and distinguishing it from other list tools like 'list_service_categories' 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.
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 context on prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_contactsARead-onlyIdempotentInspect
List contacts (people linked to CRM accounts), optionally filtered by account or search.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| search | No | Match name, email, or phone | |
| accountId | No | Filter by account |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true, and the description does not contradict them. It adds context about filtering but no hidden behaviors 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence, concise, and front-loaded with the core purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with full schema descriptions and an output schema, the description covers purpose and optional filters completely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. The description briefly mentions filtering but adds minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List', the resource 'contacts', and defines contacts as 'people linked to CRM accounts'. It distinguishes from siblings like 'get_contact' (single) and 'create_contact'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions optional filters by account or search, giving clear context for use. However, it does not explicitly state when not to use it or suggest alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_conversationsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| search | No | Search by contact name, phone, or email | |
| status | No | Filter by conversation status | |
| channel | No | Filter by channel |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by stating that the tool shows unread counts and last message time, and clarifies that Threads items are public conversations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and scope. No redundant or unnecessary information. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with an output schema and no required parameters, the description is fairly complete. It mentions unread counts and last message time, which covers key response details. Missing explicit pagination or ordering info, but adequate given simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter adequately described. The description does not add extra meaning beyond the schema, such as formatting details or parameter interactions, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action (List), resource (messaging conversations), and scope (across WhatsApp, Messenger, Instagram, Threads, SMS, email, etc.). It distinguishes from sibling list tools by focusing on conversations from specific channels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing conversations across channels but does not provide explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned, leaving the agent to infer context from the tool's name and scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_custom_fieldsARead-onlyIdempotentInspect
List custom field definitions for CRM entities such as account, contact, deal, or booking.
| Name | Required | Description | Default |
|---|---|---|---|
| entityType | Yes | Entity type the custom fields belong to |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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 no further behavioral details (e.g., pagination, ordering, or limits). With annotations present, a score of 3 is appropriate – the description does not contradict and provides minimal added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence with no unnecessary words. Every part adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and an output schema, the description is adequate. However, it does not mention pagination or sorting, which are common for list operations, but the tool's simplicity may not require it. Missing a bit of completeness for a fully self-contained description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'account, contact, deal, or booking' which covers most but not all enum values (schema includes ticket, product, post). It adds CRM context beyond the schema description, which is helpful. Schema coverage is 100%, so baseline 3; the extra context earns a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly specifies action (list), resource (custom field definitions), and scope (for CRM entities like account, contact, deal, booking). This distinguishes it from sibling tools like create_custom_field or 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.
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 vs alternatives such as get_custom_field or set_custom_field_values. The description implies usage for listing definitions per entity type but does not specify when not to use it or provide context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dealsARead-onlyIdempotentInspect
List CRM deals (sales pipeline) with optional filters.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| limit | No | Items per page (default 20) | |
| stage | No | Filter by stage | |
| search | No | Search by name or description | |
| dealType | No | Filter by deal type | |
| accountId | No | Filter by account |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds no behavioral context beyond 'list' and 'optional filters'. It does not disclose pagination behavior or data freshness, but this is partially covered by the schema. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with 8 words, front-loaded with the core purpose. Every word earns its place; no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 optional parameters, an output schema, and no enums, the description is adequate. It does not mention pagination or sorting, but the schema covers it. For a list tool, slightly more detail on default behavior could improve completeness, but it is still sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with all six parameters having descriptions. The description only says 'with optional filters', which adds no 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists CRM deals from the sales pipeline with optional filters. The verb 'list' and resource 'deals' are specific, and it distinguishes from sibling tools like 'get_deal' (single deal) and 'create_deal'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing deals with filtering, which is clear. However, it does not explicitly mention when not to use it (e.g., for a single deal use 'get_deal') or provide alternative tools. Thus, it is clear but 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_image_modelsARead-onlyIdempotentInspect
List AI image-generation models exposed to merchants (sanitized — provider/cost details hidden). Use to pick a modelCode for generate_post_cover.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idlempotent, non-destructive behavior. The description adds value by revealing that results are sanitized (provider/cost hidden), which is behavioral context beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Front-loaded with the verb and resource, immediately informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and an output schema (present), the description is complete: it states what is listed, the sanitization, and the usage tie to another tool. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage, the baseline is 4. The description adds meaning by specifying that the output should be used to pick a modelCode for generate_post_cover, adding practical context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists AI image-generation models, explicitly mentioning sanitization and that provider/cost details are hidden. It directly connects the output to selecting a modelCode for 'generate_post_cover', distinguishing its purpose from sibling tools like 'generate_image'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use the tool: to get a modelCode for generate_post_cover. It implies the tool is for discovery before generation, though it does not explicitly list when not to use or name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_invoicesARead-onlyIdempotentInspect
List invoices with optional filters. Use status "OVERDUE" to find unpaid invoices past due date.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort column | |
| limit | No | Max results (default 20) | |
| order | No | Sort order | |
| search | No | Search by invoice number, account name, email, or phone | |
| status | No | Filter by invoice status |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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 minimal extra behavioral context beyond the filter hint, which is already implied by schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose, no fluff. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description is complete for a list tool. It covers filtering, sorting, and a specific use case, without gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 5 parameters with descriptions. The description adds practical advice on using the status filter, which goes beyond the schema's enum documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'List' and resource 'invoices', with optional filters. Provides a specific usage hint for 'OVERDUE' status, distinguishing it from other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit advice on when to use the tool (e.g., 'Use status "OVERDUE" to find unpaid invoices'), but does not discuss when not to use it or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_knowledge_documentsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 100) | |
| updatedAfter | No | ISO timestamp — only return docs updated after this. Use for delta sync. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint and idempotentHint. Description adds context: includes both uploads and scraped URLs, delta sync usage, and content retrieval details. No contradictions, and adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose, usage guidance, and context for content retrieval. No fluff, front-loaded with key information. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with two optional parameters and an output schema (assumed present), the description is complete. It explains what is listed, how to filter for readiness, delta sync, and how to retrieve full content. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds semantic value by explaining 'updatedAfter' is for delta sync, which goes beyond the schema description. Limit is covered by schema. Overall, the description enhances understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists merchant knowledge base documents including uploads and scraped URLs. It distinguishes from sibling tools like get_knowledge_document (single doc) and delete_knowledge_document by specifying scope and use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: 'Use reviewStatus/syncable to see what is ready for agent retrieval' and 'Pass updatedAfter for delta sync.' Also references content retrieval endpoint, implying when to use list vs. get. Could be improved by mentioning alternatives like query_company_knowledge.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_my_companiesARead-onlyIdempotentInspect
List all companies/organisations the current user has access to. Use this to see available orgs before switching.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, which fully cover the behavioral safety profile. The description adds no new behavioral traits beyond confirming a read operation, so it does not significantly enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences that convey purpose and usage hint without any wasted words. It is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, output schema exists), the description fully covers what the agent needs to know: what it lists and when to use it. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so schema description coverage is 100%. With zero parameters, the baseline is 4. The description does not need to add parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies 'list all companies/organisations the current user has access to', providing a specific verb and resource. It distinguishes itself from sibling list tools (e.g., list_bookings, list_contacts) by focusing on the company context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'Use this to see available orgs before switching', giving a clear usage context and implicitly connecting to the sibling tool switch_company. It does not provide when-not-to-use or alternative tools explicitly, but the hint is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_notesBRead-onlyIdempotentInspect
List notes attached to a member/account, booking, or ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10) | |
| entityId | Yes | The entity ID | |
| entityType | Yes | Type of entity the notes are on |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. Description adds only the context of attachment to entities, which is purpose rather than behavioral traits beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence is concise and front-loaded. However, it is slightly incomplete by omitting 'invoice' from the list of entity types.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given schema and annotations, the description is adequate but lacks mention of invoice entity type. Output schema exists so return format details are not needed. Slightly incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with complete descriptions for each of the 3 parameters. Description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Verb 'List' and resource 'notes' are clear. Scope specified as attached to member/account, booking, or ticket, but enum includes 'invoice' which is omitted. Still distinguishes from sibling list_ tools by focusing on notes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use for fetching notes related to specific entities, but does not explicitly state when not to use or mention alternatives like create_note. Some guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_notification_logsARead-onlyIdempotentInspect
List notification delivery logs for the current company. Recipients are masked by default for incident-response safety.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 50, max 100) | |
| dateTo | No | ISO timestamp upper bound | |
| status | No | Status filter | |
| channel | No | Notification channel filter | |
| dateFrom | No | ISO timestamp lower bound | |
| entityId | No | Entity ID filter | |
| eventType | No | Event type filter | |
| recipient | No | Substring search on recipient |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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 useful behavioral context beyond annotations: recipients are masked by default for incident-response safety, which signals privacy handling. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence contains the core function and an important caveat. There is no filler or redundant restatement of the schema/annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a complete input schema, no required parameters, an output schema, and safety annotations, the description covers the tool's core scope and a key privacy behavior. It is sufficiently complete for a list operation, though it could optionally mention alternative audit-log tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 8 parameters have descriptions in the JSON schema, so the baseline is 3. The tool description itself adds no extra 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource: 'List notification delivery logs,' and scopes it to 'the current company,' making it distinct from sibling list/audit tools. The recipient-masking note adds a defining purpose/behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool's use case is clearly implied by the name and description ('list notification delivery logs' for the current company). It provides context (company scope, default masking) but does not explicitly state 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.
list_offer_rulesARead-onlyIdempotentInspect
List upsell/cross-sell offer rules with optional filters.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by rule type | |
| limit | No | Max results (default 20) | |
| status | No | Filter by status |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds 'optional filters' but no further behavioral details like pagination or defaults. Minimal added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence, no waste. Could front-load more structure (e.g., 'List offer rules (upsell/cross-sell) with optional filters'). Still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema coverage, output schema, and annotations, description is adequate. It mentions filters and domain. Missing default limit/sorting, but output schema likely covers return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so schema fully documents parameters. Description only reiterates 'optional filters' without adding new meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states action 'List', resource 'offer rules', and domain ('upsell/cross-sell') with optional filters. It distinguishes from sibling tools like 'get_offer_rule' (single) and 'create_offer_rule'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage context (list with filters) but does not explicitly state when not to use or mention alternatives. Given sibling context, it's clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ordersARead-onlyIdempotentInspect
List shop orders with optional status and search filters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| search | No | Search by order number or customer name/email | |
| status | No | Filter by order status |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety. The description adds minimal behavioral context beyond the filter options. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with 10 words, front-loaded with the main action and resource. No superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of output schema and annotations, the description is adequate for a simple list tool. It could mention pagination or default limit, but the limit parameter and schema cover that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all three parameters with descriptions (100% coverage). The description merely restates that filters are optional, adding no new semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'shop orders', and specifies optional filters. It distinguishes from sibling list tools like list_invoices or list_bookings by focusing on orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. It only states that filters are optional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_outletsBRead-onlyIdempotentInspect
List shop outlets/locations for the company.
| Name | Required | Description | Default |
|---|---|---|---|
| activeOnly | No | When true, only return active outlets (default false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly, idempotent, non-destructive hints. The description adds no further behavioral context, such as ordering 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no extraneous words. Efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional filter and an output schema, the description is minimally adequate but could clarify scope (e.g., all company outlets) or mention sorting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter 'activeOnly' is fully described in the schema. The description adds no additional parameter context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (List) and resource (shop outlets/locations), distinguishing it from other list tools by resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus other list tools or alternatives like create_outlet/update_outlet.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_plan_optionsARead-onlyIdempotentInspect
List active FavCRM plans with prices, quotas, included modules, and whether each is the current plan.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, indicating a safe read operation. The description does not add behavioral context beyond the annotations, so it meets but does not exceed the information already provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and efficiently communicates the output details without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and rich annotations, the description is complete for a list tool with no parameters. It clearly explains what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to provide parameter details. It is fully adequate in this dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: 'List active FavCRM plans' and specifies what information is returned (prices, quotas, included modules, current plan flag). It distinguishes itself from sibling tools by focusing on plan options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like list_subscriptions or get_plan_status. No context about when it's appropriate or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_postsARead-onlyIdempotentInspect
List CMS posts (blog posts and/or pages) with optional filters.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by post type slug (blog_post, page, or any custom type — see list_post_types). | |
| limit | No | Max results (default 20) | |
| search | No | Search by title | |
| status | No | Filter by status |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is clear. The description adds minimal behavioral context beyond stating the resource scope. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the verb and resource. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and adequate annotations, the description is sufficient for a simple list operation. It does not mention pagination or default ordering, but the input schema covers defaults.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter having a description. The tool description does not add additional meaning beyond the schema, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and resource 'CMS posts', and specifies that it includes both blog posts and pages. This distinguishes it from siblings like get_post, create_post, and list_post_types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for fetching posts with filters, but does not explicitly state when to use this over alternatives like get_post or list_post_types. No guidance on when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_post_type_fieldsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| postTypeId | Yes | Post type ID (from list_post_types) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds value by explaining the return schema context (keys and types), consistent with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states the action, second states use case. Front-loaded and concise with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, single parameter, and existence of output schema, the description adequately covers what the agent needs to know (purpose and parameter usage).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter postTypeId, which includes description. Description does not add new information beyond the schema, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List', the resource 'custom field schema for a post type', and the purpose of using it before creating posts to know keys and types for meta. It distinguishes from sibling tools like list_post_types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use this before creating posts to know which keys to pass in meta', providing clear usage context. Does not explicitly mention when not to use, but the guidance is sufficient 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_post_typesARead-onlyIdempotentInspect
List all post types defined for this company (built-in: blog_post, page; plus any custom types).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds context about built-in versus custom types but does not disclose any additional behavioral traits beyond what annotations provide. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that communicates the tool's purpose without any filler. Every part earns its place, including the examples in parentheses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with annotations, an output schema, and no parameters, the description is complete. It explains what is listed and gives examples, meeting all information needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema is complete (100% coverage). The description does not need to add parameter information; the baseline score for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('list all post types'), the scope ('defined for this company'), and provides specific examples of built-in types (blog_post, page) and mentions custom types. It distinguishes from sibling tools like create_post_type, delete_post_type, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (when needing to see all available post types) but does not explicitly exclude scenarios or name alternatives. However, given the simplicity of a list operation, this is adequate and clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_product_categoriesARead-onlyIdempotentInspect
List all product categories for the shop.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false. The description adds no extra behavioral context, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy, and front-loaded with the essential action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool with annotations and output schema, the description is nearly complete. It could optionally mention return format, but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100% trivially. Baseline 4 is justified as the description needs to add no parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'product categories', which is specific and distinguishes from sibling tools like 'list_categories' (likely broader) and 'list_products'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'list_categories' or 'list_products'. The description is purely declarative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_productsARead-onlyIdempotentInspect
List shop products with optional filters by name, status, or category.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| search | No | Search by product name | |
| status | No | Filter by status | |
| categoryId | No | Filter by category ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds no behavioral context beyond what annotations and schema provide, missing details like pagination behavior or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence with no wordiness, covering the essential purpose and filter capabilities.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and comprehensive annotations, the description sufficiently covers the tool's functionality without needing to explain return values or safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 4 parameters are fully described in the input schema (100% coverage), so the description does not need to add semantics. The description repeats the filter options, which is acceptable but not additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and resource (shop products) with specific filter options (name, status, category), distinguishing it from many sibling list tools that focus on other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing products with filters, but does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives like searching.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_promotionsARead-onlyIdempotentInspect
List promotion/coupon codes with optional status filter.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| search | No | Search by name | |
| status | No | Filter by status |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description adds minimal behavioral context beyond confirming the optional status filter. No mention of pagination, ordering, or other behaviors 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-constructed sentence. It front-loads the main action ('List promotion/coupon codes') and appends the optional filter, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with an output schema and comprehensive annotations, the description is mostly complete. It covers the core purpose and filtering capability, though it could mention implicit details like pagination or default limits for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds little beyond the schema. It notes the 'optional status filter' which corresponds to the status parameter, but does not elaborate on limit or search parameters. The baseline score of 3 is appropriate as the description does not significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists promotion/coupon codes, which distinguishes it from single-get, create, delete, or update operations on promotions. The optional status filter is also mentioned, making the purpose specific and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a list of promotions is needed with optional filtering by status, but no explicit when-to-use or when-not-to-use guidance is provided. It does not differentiate from sibling list tools for other entities, though the context of promotions is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_resourcesARead-onlyIdempotentInspect
List booking resources (rooms, equipment, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, and idempotent behavior. The description does not add additional behavioral context such as pagination details, rate limits, or data freshness. Given annotation coverage, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core purpose. It could include slightly more detail without becoming verbose, but it is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, simple parameters, and the presence of an output schema, the description is fairly complete. However, it omits any mention of scoping (e.g., which resources are listed) or default behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for the single parameter 'limit'. The tool description does not add any further meaning beyond what the schema provides, so baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'booking resources' with examples (rooms, equipment), making the purpose unmistakable. It distinguishes from sibling list tools by specifying the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternatives, no when-not-to-use information, and no context about prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_reward_schemesARead-onlyIdempotentInspect
List loyalty reward schemes (points/stamps programs) configured for this business.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| search | No | Search by name |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds minimal behavioral context beyond stating the scope (for this business), so no contradiction but no significant added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise, front-loaded with the action and resource, and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple list operation with an output schema and fully described parameters, the description is complete enough. However, it could briefly mention pagination or default limit to be more explicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description does not add additional meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists loyalty reward schemes (points/stamps programs) for the business. It uses a specific verb 'List' and resource, distinguishing it from sibling list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('configured for this business') but does not provide explicit when-to-use or when-not-to-use guidance compared to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_segmentsARead-onlyIdempotentInspect
List customer segments. Segments group members by criteria for targeted campaigns.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| search | No | Search by segment name |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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 minimal behavioral context beyond defining segments. It doesn't discuss pagination, performance, or other traits needed beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no extraneous information. It is front-loaded with the verb and resource, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with a clear name, annotations, and an output schema, the description provides sufficient context about what segments are. It could mention that it returns a list, but the output schema covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description does not add further meaning or context about the parameters, so it meets the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists customer segments and explains what segments are. The name 'list_segments' is self-explanatory, and the description distinguishes it from siblings like 'get_segment' by indicating it's a list operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool over alternatives like 'get_segment'. There is no guidance on context or exclusion, leaving the agent to infer usage 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.
list_service_categoriesARead-onlyIdempotentInspect
List service categories (groups for booking services like "Treatments", "Classes").
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, destructiveHint, idempotentHint, so description's addition of 'groups for booking services' adds minimal extra context. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with concise description and useful example, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, read-only list tool with output schema and annotations, the description fully covers the purpose and scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, schema coverage 100%, baseline 4. Description adds no parameter details because none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'List' and resource 'service categories', with parenthetical example ('Treatments', 'Classes') that distinguishes it from other list_* tools like list_services.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (listing category groups), but no explicit when/when-not or alternatives are mentioned. The sibling list_* tools are not differentiated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_service_packagesARead-onlyIdempotentInspect
List service packages/prepaid session bundles with optional search, status, sorting, and pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort column: name, price, or createdAt | |
| limit | No | Max results (default 20) | |
| order | No | Sort order | |
| search | No | Search package name | |
| status | No | Filter by package status |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds behavioral context by mentioning optional search, status filtering, sorting, and pagination, which goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently communicates the action and optional features. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values are documented. The description covers the main capabilities (list, search, status, sorting, pagination). It does not mention default limit or structure of results, but the ample schema and annotations provide sufficient completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter having a schema description. The description mentions 'search, status, sorting, and pagination' but does not add new meaning beyond what the schema already provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'service packages/prepaid session bundles'. It distinguishes from sibling tools by specifying the exact entity, and the optional features (search, status, sorting, pagination) are listed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as a listing tool for service packages but provides no explicit guidance on when to use it versus alternatives like get_service_package or other list_* tools. There is no mention of when not to use or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesARead-onlyIdempotentInspect
List booking services with name, price, duration, and status.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| search | No | Search by name | |
| status | No | Filter by status |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds minimal behavioral context beyond listing fields. No contradictions, but no extra transparency needed as the tool is simple and safe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with 10 words. It is front-loaded and contains no fluff, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the schema fully documents parameters and an output schema exists, the description is adequate. It covers the return fields and purpose. Could mention pagination or default limit, but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, meaning each parameter is already described in the schema. The description does not add meaning to parameters, but 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.
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). This distinguishes it from sibling tools like list_service_categories or get_service_detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as get_service_detail for a single service or list_service_packages for packages. Usage is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_service_schedulesBRead-onlyIdempotentInspect
List schedule windows for booking services.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| dateTo | No | YYYY-MM-DD | |
| staffId | No | Staff member ID | |
| dateFrom | No | YYYY-MM-DD | |
| serviceId | No | Service ID | |
| isOverride | No | Filter to override entries only | |
| resourceId | No | Resource ID (room/equipment) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, making the tool's safety clear. The description adds no new behavioral context beyond this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that efficiently conveys the tool's purpose. It is front-loaded but lacks additional structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with an output schema (present in context), the description provides adequate context. It mentions the resource and includes filter parameters, though pagination behavior is implied by the 'limit' parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters described. The description does not add extra meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists 'schedule windows for booking services', specifying the verb 'list' and the resource. However, it does not differentiate from siblings like 'get_available_slots' or other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., 'get_available_slots'). There is no mention of when not to use it or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_shipping_methodsARead-onlyIdempotentInspect
List all shipping methods configured for the shop.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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 minimal behavioral context beyond stating it lists 'configured' methods. There is no contradiction, and the description does not disclose additional traits like authentication or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence that efficiently communicates the tool's purpose. It is front-loaded and contains no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the zero parameters, strong annotations, and presence of an output schema, the description is complete. It provides sufficient context for an AI agent to understand what the tool does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and schema description coverage is 100%. The description does not need to add parameter details. An output schema exists but is not shown; the description does not need to cover return values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list), the resource (shipping methods), and the scope (all configured for the shop). It is specific and distinct from sibling tools, as no other tool lists shipping methods.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives, nor does it mention exclusions. However, the tool's purpose is self-evident, and the simplicity of the operation (zero parameters) reduces the need for such guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_staffARead-onlyIdempotentInspect
List staff/team members in the business.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, indicating a safe read operation. The description adds minimal value by stating 'in the business' but does not disclose any additional behavioral traits such as default pagination or result ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is appropriately sized and front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one optional parameter, simple read operation, and an output schema), the description is complete enough. The output schema provides return value details, so the description does not need to explain them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter (limit) already described in schema. The description does not add any extra meaning beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List staff/team members in the business', specifying the verb (list) and resource (staff/team members). However, it does not distinguish this tool from sibling list tools, such as list_contacts or list_bookings, which have similar formats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool instead of alternatives. It does not mention when not to use it or suggest other tools for related tasks. The context of 'in the business' is implicit but insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_subscriptionsBRead-onlyIdempotentInspect
List member subscriptions. Filter by status to find active, cancelled, or past-due subscriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| status | No | Filter by subscription status |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so a 3 is appropriate. The description adds filtering capability but does not disclose pagination behavior or other side effects. It is consistent with annotations and adds minor value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description uses two efficient sentences, front-loaded with the main purpose. No redundant information; every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with 2 parameters and a output schema, the description covers the core functionality and filtering. It could mention pagination (implied by limit) or ordering, but overall is sufficient given the annotations and schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters (limit and status). The description adds meaning to the status parameter by suggesting usage for active, cancelled, or past-due subscriptions, but it misses the 'trialing' option. Baseline 3 holds because the schema already well-documents the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists subscriptions and can filter by status. It distinguishes from siblings like get_subscription (single) and cancel_subscription (mutation). However, it omits one enum value ('trialing') from the list of example filters, slightly reducing completeness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives such as get_subscription (to retrieve a single subscription) or other subscription management tools. The description does not provide when-to-use or when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_survey_invitationsARead-onlyIdempotentInspect
List survey invitation history without exposing token hashes or old invitation tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max invitations (default 50) | |
| surveyId | Yes | Survey ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds useful context about filtering out sensitive token data, which helps the agent understand the tool's behavior beyond the safe read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 11 words, front-loaded with purpose and constraint. No redundant or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with 2 parameters and existing output schema, the description is adequate. It covers the purpose and a key security constraint, though it could mention the default limit or that it requires a surveyId (already in schema).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description does not add extra meaning to parameters, but baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'list', resource 'survey invitation history', and adds a specific constraint about not exposing token hashes or old tokens, distinguishing it from generic list tools and the sibling create_survey_invitation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like list_surveys. Does not mention prerequisites or scenarios where other tools 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_surveysBRead-onlyIdempotentInspect
List surveys with optional status/search filters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| search | No | Search survey title or description | |
| status | No | Filter by survey status |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, which cover the safety profile. The description adds no further behavioral context beyond the filtering capability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, efficient sentence that conveys the core functionality with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with an output schema, the description is adequate. It covers the filtering options and mentions limit default via schema. No missing critical information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions (limit default, search scope, status enum). The description's mention of 'optional status/search filters' adds no additional 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.
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 (surveys) and mentions optional filters. However, it does not differentiate from other list tools like list_campaigns or list_posts 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.
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 (e.g., get_survey for a single survey). No exclusions or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_survey_workflowsARead-onlyIdempotentInspect
List automation workflows attached to a survey.
| Name | Required | Description | Default |
|---|---|---|---|
| surveyId | Yes | Survey ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering safety and idempotency. The description adds behavioral context by specifying that it lists workflows attached to a survey, which is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the essential purpose without unnecessary words. Every word earns its place, and it is appropriately sized for a simple list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema (not shown but indicated), the description need not explain return values. It is mostly complete for a simple filtered list operation, though it could mention whether all workflows are returned or if pagination exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema for the surveyId parameter; it simply echoes that the workflows are attached to a survey. No additional semantic value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list', the resource 'automation workflows', and the relation 'attached to a survey'. It is specific and distinguishes from sibling tools like list_surveys (which lists surveys) and list_survey_invitations (which lists invitations).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing workflows of a specific survey but does not provide explicit guidance on when to use it versus alternatives like upsert_survey_workflow or other list tools. No when-not-to-use or alternative mentions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tagsARead-onlyIdempotentInspect
List all available tags for the merchant.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Search tags by name |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety profile is clear. The description adds 'for the merchant' context but does not disclose pagination, ordering, or any edge-case behaviors beyond what annotations provide. Given annotation coverage, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is efficient but slightly underspecified for a list tool (e.g., no mention of result format).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and an output schema, the description covers the core action. It does not mention sorting or limits, but these are not critical given the tool's simplicity and the presence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter 'search' already described as 'Search tags by name'. The description does not add any extra meaning, format details, or usage nuances. Baseline 3 applies since schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all available tags for the merchant' uses a specific verb ('list') and resource ('tags'), clearly indicating the scope. It distinguishes from sibling tools like `create_tag` or `delete_tag` by focusing on retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., `search_crm` or other list tools). There is no mention of prerequisites, limitations, or context for choosing this over similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksARead-onlyIdempotentInspect
List tasks with optional status, assignee, and account filters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| status | No | Filter by task status | |
| accountId | No | Filter by related CRM account | |
| assigneeId | No | Filter by assignee company_members.id |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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 description is not required to reiterate safety. The description adds context about optional filters, which is helpful but does not disclose any additional behavioral traits beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence that conveys the core purpose without any wasted words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of a list tool with an output schema present, the description provides enough context about the filtering capabilities. However, it does not mention pagination or default behavior beyond what is in the schema, but these are minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at 100%, each parameter already has a description in the schema. The tool description only restates the filters generically without adding extra meaning or usage details beyond what the schema provides, so baseline score 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and resource 'tasks', and specifies the optional filters (status, assignee, account). This distinguishes it from 'get_task' and other list tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as 'get_task' for a single task or other list tools. No when-not-to-use or prerequisite conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max templates to return (default 20) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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 it's a safe read. The description adds that it lists approval statuses (PENDING/APPROVED/REJECTED) and implies it reflects Meta's status. This is helpful but not deep behavioral context (e.g., no mention of caching or real-time data). With strong annotations, a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first sentence states the core functionality, and the second provides usage guidance. There is no unnecessary information, and key points are front-loaded. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a simple list with one optional parameter and an output schema exists, the description is largely complete. It names the resource, key return data, and a use case. Minor omissions like default sorting or company scope are acceptable for this simplicity and context from the tool's name. A 4 reflects minimal gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has only one parameter (limit) with complete description: 'Max templates to return (default 20)'. The tool description does not add any additional meaning about this parameter; it relies entirely on the schema. With 100% schema coverage, baseline score is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists WhatsApp message templates with their Meta approval status. It specifies the resource (templates) and the key data returned (approval status). The additional sentence about checking before campaign reference adds context, making the purpose unambiguous and distinct from other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use the tool: 'Check this to see which templates are approved before referencing one in a campaign.' This provides a clear use case. However, it does not mention alternatives or explicitly state when not to use it, though the unique resource makes differentiation straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ticketsBRead-onlyIdempotentInspect
List support tickets with optional filters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| search | No | Search by subject | |
| status | No | Filter by status | |
| category | No | Filter by category | |
| priority | No | Filter by priority | |
| accountId | No | Filter by CRM account ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds minimal behavioral context beyond stating optional filters, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence, front-loaded, no unnecessary words. Perfectly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present and high schema coverage, the description is adequate for a simple list tool. It doesn't mention pagination or ordering, but for a straightforward filtered-list tool, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well-documented. The description adds 'optional filters' but no additional meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List support tickets with optional filters', specifying the verb and resource. While it doesn't differentiate from other list_* tools, it is specific enough to convey 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_ticket_stats or search_tools. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tiersARead-onlyIdempotentInspect
List all membership tiers with member counts and stats.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, destructiveHint. Description adds that the output includes member counts and stats, providing useful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is concise and front-loads the resource ('membership tiers') and action ('list'). Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and presence of output schema (not shown), description adequately covers the tool's purpose and output contents. It is complete for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100%. Baseline score of 4 assigned as no parameter description is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'list', resource 'membership tiers', and includes 'member counts and stats', distinguishing it from sibling tools like get_membership_tier (single tier) and list_subscriptions (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies use for obtaining an overview of all tiers, but does not explicitly state when to use or not use alternatives, such as when detailed info on a specific tier is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_deal_lostBInspect
Mark a CRM deal as lost. Requires a lost reason.
| Name | Required | Description | Default |
|---|---|---|---|
| dealId | Yes | The deal ID | |
| reason | Yes | Why the deal was lost |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds minimal behavioral context beyond the annotations. It states 'Requires a lost reason' which is already in the required field. No mention of irreversibility, permissions, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: one sentence that is front-loaded and to the point. Every word serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with 2 required params and an output schema, the description is adequate but lacks details about the result or side effects. It covers the essential purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema for the parameters, only reinforcing that 'reason' is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's action ('Mark a CRM deal as lost') and the resource ('deal'). It clearly distinguishes from sibling tools like 'mark_deal_won' by specifying the lost state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives (e.g., 'mark_deal_won') or any exclusions. The context of use is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_deal_wonBInspect
Mark a CRM deal as won and set close date.
| Name | Required | Description | Default |
|---|---|---|---|
| dealId | Yes | The deal ID | |
| closingDate | No | Optional close date (YYYY-MM-DD) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond what annotations already provide (readOnlyHint: false indicates mutation). It omits side effects such as pipeline updates, notifications, or validation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is concise and front-loaded, containing no extraneous words. Every part of the sentence contributes to understanding the tool's core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description lacks details about return values, error conditions, or success confirmation. For a mutation tool, this is adequate but minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions cover both parameters (dealId and closingDate) with clear formats. The tool description adds no additional semantics, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'mark' and the resource 'deal' with the outcome 'as won', and also mentions setting the close date. It distinguishes from sibling tools like mark_deal_lost and update_deal_stage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like mark_deal_lost or update_deal_stage. It doesn't mention prerequisites or conditions for use, leaving the agent without clear selection criteria.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| invoiceId | Yes | Invoice ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims idempotence ('Idempotent.'), but the annotation idempotentHint is false, creating a contradiction. Additionally, it describes the state transition, which adds value, but the contradiction outweighs that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the state transition and usage context. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple action (state transition with one parameter) and the presence of an output schema, the description adequately covers purpose, usage, and behavior. Missing error conditions or prerequisites are minor given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the parameter description ('Invoice ID') is minimal. The tool description does not add further meaning to the parameter, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Mark an invoice as sent' and specifies the state transition 'DRAFT → OPEN'. It distinguishes from siblings like create_invoice, void_invoice, and record_invoice_payment by focusing on the 'sent' flag transition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use after delivering the invoice via email or share link,' providing clear context. It does not mention when not to use or alternatives, but the use case is well-defined.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| bookingId | Yes | The booking ID to mark as no-show |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-destructive mutation; description adds context (marking no-show), but lacks detail on side effects like notifications or state changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded with the action and condition, containing no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with output schema; description covers core purpose but omits potential follow-up actions or prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description for bookingId is present (100% coverage), and description adds no additional meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (mark) and resource (booking as no-show), distinguishing it from siblings like cancel_booking or complete_booking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear condition for use ('when the customer did not attend'), but does not explicitly exclude alternative tools or states 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.
pause_subscriptionAInspect
Pause an active subscription (status → past_due, no further auto-renew). Use resume_subscription to reactivate.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the change in status ('past_due') and billing behavior ('no further auto-renew'), adding context beyond annotations indicating it is a mutation but not destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no extra words. First sentence defines action and effect, second sentence provides sibling reference.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Single parameter, output schema exists. Description fully covers what happens and how to revert, making it complete for agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only parameter 'subscriptionId' is described in the schema with 'Subscription ID'. Description does not add extra meaning, but schema coverage is 100%, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Pause', resource 'subscription', and the specific effect: status becomes past_due and no auto-renew. Distinguishes from sibling 'resume_subscription'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Specifies prerequisite (active subscription) and mentions alternative 'resume_subscription' for reactivation. Could explicitly contrast with 'cancel_subscription', but not necessary.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | AI colleague ID that is a participant in the thread | |
| content | Yes | Message to show in Workroom. Markdown is allowed. | |
| metadata | No | Optional generic metadata, e.g. {sourceRefs:[{type:"inbox_conversation",id:"..."}]} | |
| threadId | Yes | Workroom thread ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate it's not read-only (readOnlyHint=false) and not destructive (destructiveHint=false). Description adds that it's internal and doesn't send to customers, which is useful beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. Every sentence adds value: one defines the action, the other provides usage guidance and exclusion.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be described. The tool has moderate complexity (4 params, nested metadata), and the description covers purpose, usage, and exclusions. Lacks error conditions or auth info, but context is solid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-documented. Description provides minimal added meaning (e.g., mentioning markdown in content), but doesn't enrich understanding significantly beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Post an internal message from an AI colleague into a Workroom thread,' specifying the action, resource, and scope. It distinguishes from sibling tools that might send external messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes when to use: 'report findings, ask the owner for approval, or share source links' and clarifies what it does not do ('does not send anything to customers'), providing clear context and exclusions.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | ||
| filename | No | Original filename for audit |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation `readOnlyHint: false` indicates this tool is not read-only, but the description says 'Preview' which inherently implies no modifications are made. This is a direct contradiction, requiring a score of 1 per the rules.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences. The first sentence captures the core purpose and constraint. The second sentence explains the outcome and next step. No unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown here but available to the agent), the description sufficiently covers the tool's behavior: it previews import, shows create/update actions, deltas, and returns a sessionId. The max rows constraint is stated. No missing information for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, and many parameters lack descriptions in the schema. The tool description adds context about matching by phone/email and output deltas, but does not elaborate on individual parameter meanings beyond what the schema provides. It provides moderate added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it previews a bulk customer import, specifies the maximum row count (2000), explains matching logic (by phone/email), and describes the output (create vs update actions plus deltas). It distinguishes itself from the sibling `commit_customer_import` which applies the import.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to use `commit_customer_import` with the returned sessionId to apply the import, providing a sequential use case. However, it does not explicitly mention when NOT to use this tool (e.g., if the agent wants to commit directly without preview).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_segment_countARead-onlyIdempotentInspect
Preview how many customers would match dynamic segment criteria before creating or updating a segment.
| Name | Required | Description | Default |
|---|---|---|---|
| criteria | No | Dynamic criteria to preview. Omit or null to count all active customers. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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 that it 'previews how many customers would match' and is used before creation/update, which aligns with annotations but adds little beyond their implications. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that immediately conveys the purpose and use case. No unnecessary words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and comprehensive annotations, the tool description is complete. It covers the essential function, use case, and non-destructive nature, requiring no additional explanation for a preview tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the input schema provides detailed descriptions for all properties of the criteria parameter. The tool description itself does not add additional parameter meaning, but the schema fully documents the parameter. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Preview' and resource 'dynamic segment criteria', and explicitly states the context 'before creating or updating a segment', clearly distinguishing from sibling tools like get_segment, list_segments, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use this tool (before creating or updating a segment), though it does not explicitly state when not to use it or provide direct alternatives. However, the context from sibling tools and the phrase 'before creating or updating' effectively guides usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_company_knowledgeARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum matching snippets (default 5) | |
| query | Yes | Question or keywords to search for in company knowledge | |
| maxSnippetChars | No | Maximum characters per snippet (default 600) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, destructiveHint. Description adds that it returns 'grounded snippets with source document IDs' and specifies it searches 'reviewed knowledge base', providing useful behavioral context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action and result, then use cases. Every sentence earns its place. Extremely concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool complexity, annotations, schema, and output schema, the description covers purpose, usage context, and return type well. Minor details like sorting are omitted but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter has a good description. The tool description adds minimal additional semantic meaning beyond what the schema provides (only implies query parameter usage). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool searches the knowledge base and returns grounded snippets with source IDs. It lists specific use cases (merchant policies, FAQs, pricing notes, brand guidance) and distinguishes from sibling tools like list_knowledge_documents and get_knowledge_document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explicitly says 'Use for merchant policies, FAQs, pricing notes, brand guidance, and other uploaded references', providing clear guidance on when to use. It does not explicitly state when not to use, but the context of sibling tools makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_favcrm_platformARead-onlyIdempotentInspect
Search FavCRM MCP tools, enabled skills, and feature areas for how to use the platform. Use before guessing tool names or JSON arguments.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | Restrict search area (default all) | |
| limit | No | Maximum results (default 8) | |
| query | Yes | Plain-language capability question, e.g. "create a booking" or "send a campaign safely" |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true, so the description's 'Search' verb is consistent. The description adds minimal behavioral context beyond the annotations, such as searching for 'how to use the platform,' which implies returning documentation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is just two sentences, front-loaded with the core purpose, and every word is meaningful. No redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the large set of sibling tools and the presence of an output schema, the description sufficiently covers when and how to use the tool. It could be slightly more detailed about the scope (e.g., that it returns tool definitions), but it remains complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already describes all parameters. The description says 'plain-language capability question,' which adds context to the 'query' parameter but does not provide additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Search FavCRM MCP tools, enabled skills, and feature areas for how to use the platform.' This is a specific verb-resource pair that differentiates it from sibling tools like search_crm or search_tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly advises agents to 'Use before guessing tool names or JSON arguments,' indicating when to invoke this tool. While it doesn't list alternatives, the context strongly implies it is a discovery aid.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Internal note about this payment | |
| amount | Yes | Payment amount as decimal string, e.g. "100.00" | |
| method | Yes | Payment method | |
| invoiceId | Yes | Invoice ID to record payment against | |
| reference | No | External reference (cheque number, bank transfer ID) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses that the tool updates invoice status based on running total, which is important behavioral information beyond annotations. This adds value as annotations only indicate non-read-only and non-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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no fluff: first sentence states the core action and examples, second sentence explains the effect. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description covers purpose, effect, and method types. It could mention prerequisites like invoice not fully paid, but overall is fairly complete for a payment recording tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions (100% coverage). The description does not add new meaning beyond what the schema already provides for parameters like note, reference, etc., so baseline is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (record a manual payment), the target (invoice), and specific payment types (cash, bank transfer, cheque, card terminal). It also notes the effect on invoice status (PARTIAL or PAID), distinguishing it from siblings like mark_invoice_sent 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage context for recording payments manually against invoices. It does not explicitly state when not to use or mention alternatives, but the purpose is clear enough to avoid confusion with other invoice-related tools.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Owner email — receives a 6-digit code (10 min TTL) | ||
| country | No | ISO 3166-1 alpha-2 country code (HK, US, GB, ...) | |
| industry | No | Vertical — drives default templates | |
| timezone | No | IANA timezone (e.g. Asia/Hong_Kong); falls back to country default | |
| organisationName | Yes | Business / brand name (used as the first company name too) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the side effect of sending an email and mentions the code's 10-minute TTL (from schema). It outlines the two-step process. No contradiction with annotations (readOnlyHint=false, destructiveHint=false). It adds behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with four sentences, each providing essential information: what the tool is, what it does, the next step, and when to use it. No redundant or extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-step registration tool with a well-documented schema and existing output schema, the description covers the purpose, flow, and usage context. It could mention return values or error scenarios, but output schema exists, and the description is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well-documented. The description does not add new semantics beyond the schema; it only provides high-level context. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Step 1 of agentic signup' and specifies the action: 'Sends a 6-digit verification code to the email.' It distinguishes the tool as the first step of a two-step process and explicitly names the next tool (register_organisation_verify). The resource and purpose are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this when a user wants to create a new FavCRM workspace from inside an MCP client.' It also outlines the subsequent step (call register_organisation_verify). It lacks explicit 'when not to use' but the context is clear enough for an agent.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 6-digit code from the verification email | |
| requestId | Yes | From register_organisation_request |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it creates a workspace (write operation) and returns an API key, along with how to set the Authorization header. Annotations (readOnlyHint=false, destructiveHint=false) are consistent, and the description adds useful behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words, critical information front-loaded. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the step's role, inputs, output (API key), and subsequent action (setting Authorization header). For a verification step with an output schema, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides 100% coverage with descriptions. The description adds cross-tool context: requestId 'From register_organisation_request' and code '6-digit code from the verification email', enhancing understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Step 2 of agentic signup', specifies the action 'confirms the 6-digit code and creates the workspace', and explicitly mentions returning an API key. This distinguishes it from sibling tools, especially register_organisation_request.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates it is step 2 following register_organisation_request, providing clear sequencing. It does not explicitly state when not to use or list alternatives, but the context is sufficient for this specialized tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_post_blockADestructiveInspect
Remove the block at the given index (0-based). All subsequent blocks shift up by one.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | 0-based index of the block to remove | |
| postId | Yes | The post ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true. The description adds the behavioral detail that subsequent blocks shift up, which is useful. However, it does not disclose potential side effects like irreversibility or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no unnecessary words. It front-loads the action and index concept, making it efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the output schema exists and parameters are clear, the description lacks guidance on error conditions (e.g., out-of-range index) and does not reference related block manipulation tools. It could be more complete for a destructive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters have clear descriptions. The description does not add extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'remove', the resource 'block', and the specific action using a 0-based index. It distinguishes from sibling tools like append_post_block and reorder_post_blocks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for removing a block at a specified index but does not explicitly state when to use it versus alternatives or mention prerequisites like post existence or block existence.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| postId | Yes | The post ID | |
| orderedBlockIds | Yes | Block IDs in the desired order; must match the existing set exactly |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide basic safety hints (readOnlyHint=false, destructiveHint=false). The description adds the constraint that the ID list must include every existing block exactly once. However, it does not mention side effects like immediate persistence or whether the operation is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundant information, and front-loaded with the main action. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential input constraints. Since an output schema exists, the lack of return value explanation is acceptable. However, some additional context about immediate effect or prerequisites would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are documented. The description restates the constraint from the schema ('must match the existing set exactly') without adding new 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'reorder blocks' and the resource 'post blocks', specifying that the ID list must contain every existing block exactly once, distinguishing it from sibling tools like remove_post_block and replace_post_block.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but does not explicitly state when to use it versus alternatives or when not to use it. It implicitly distinguishes from siblings but lacks direct 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.
| Name | Required | Description | Default |
|---|---|---|---|
| postTypeId | Yes | Post type ID | |
| orderedFieldIds | Yes | Field IDs in the desired order |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by explaining the exact effect: 'sortOrder is updated to match'. Annotations only indicate non-read-only and non-destructive; the description clarifies the mutation happens to sortOrder.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the purpose, and contains no extraneous information. Every word is necessary and earned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, simple types, no nested objects), good schema coverage, annotations, and output schema presence, the description is fully complete. No additional information is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good parameter descriptions. The description adds further meaning by explaining that orderedFieldIds should be passed 'in the desired display order' and that sortOrder will be updated accordingly, which clarifies the intent beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Reorder fields on a post type') and the resource ('fields on a post type'), with a specific verb and resource. It distinguishes from sibling tools like create_post_type_field or update_post_type_field by focusing on reordering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (to reorder fields) but does not explicitly state when not to use it or mention alternatives. It lacks explicit guidance to differentiate from similar tools like update_post_type_field, which could also modify field order implicitly.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| block | Yes | Replacement block | |
| index | Yes | 0-based index of the block to replace | |
| postId | Yes | The post ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint false) and non-destructive (destructiveHint false). The description adds little beyond that: it says 'replace' but does not disclose error handling, permissions, side effects, or return value. The output schema exists but is not shown; without it, behavior on index out of bounds or invalid block is unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the core action and index, the second provides a rationale for efficiency. No redundant or irrelevant information, perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complex block schema, the description sufficiently covers the basic operation and key parameter (index). However, it lacks mention of error cases (e.g., out-of-bound index) and does not explain that the block must match one of the defined types. The output schema likely covers return values, but its absence in the provided info leaves a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The description adds no new semantic information beyond what the schema already provides (e.g., '0-based index' is repeated). No additional detail on constructing the complex block parameter is given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Replace a single block at the given index (0-based)', specifying the exact action and resource (block). It distinguishes from the sibling update_post by highlighting efficiency, avoiding fetching the full post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions avoiding update_post, providing a reason to use this tool. However, it does not explicitly compare to other siblings like append_post_block, remove_post_block, or reorder_post_blocks, nor does it 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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| area | Yes | Issue area | |
| logs | No | Relevant error messages, command output, or stack traces | |
| title | Yes | Short issue title | |
| severity | Yes | Impact level | |
| toolCalls | No | Relevant MCP/CLI/SDK calls, arguments, and outcomes | |
| aiAnalysis | Yes | Agent analysis of likely root cause and impact | |
| references | No | Source links, file paths, docs, screenshots, or IDs that support the report | |
| stepsTried | Yes | Concrete steps the agent tried before reporting | |
| workaround | No | Temporary workaround used, if any | |
| environment | No | Runtime context such as MCP URL, CLI version, token type, client, sandbox, model, OS | |
| actualBehavior | Yes | What actually happened | |
| expectedBehavior | Yes | What the agent or user expected to happen | |
| clarificationQuestions | No | Questions the platform team should ask the agent/user to resolve ambiguity |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is not read-only, not open-world, not idempotent, and not destructive. The description adds behavioral context by detailing what to include (logs, AI analysis, references, clarification questions), which helps agents understand how to use it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first defines the tool and its trigger conditions, second lists recommended content. Front-loaded, no wasted words, and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 13 parameters, 7 required, and an output schema. The description covers the essential context and guidance for reporting issues. It could be more explicit about the agent being the user, but overall it is sufficiently complete for the tool's purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description mentions some parameter groups (logs, AI analysis, etc.) but does not add significant new meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: reporting FavCRM platform issues encountered by agents, listing specific issue types (missing MCP path, tool failure, confusing schema, etc.). It uniquely distinguishes from sibling tools, which are all CRUD or other operations, not reporting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit scenarios for when to use the tool (agent finds an issue). It does not explicitly state when not to use it or mention alternatives, but the context makes it clear, and no sibling tool serves the same purpose.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | AI colleague ID that is a participant in the thread | |
| payload | Yes | Exact tool payload to execute if the merchant approves | |
| summary | Yes | Human-readable draft/recipient/campaign summary shown above the approval buttons | |
| threadId | Yes | Workroom thread ID where the approval button should appear | |
| actionType | Yes | The customer-facing action to execute only after merchant approval |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutation (readOnlyHint=false) and not idempotent, so the description adds limited behavioral context beyond labeling it as a 'merchant-owned Workroom approval request'. No additional disclosure of side effects, failure modes, or post-approval behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences: the first defines the purpose, the second provides a critical usage constraint. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, nested objects, output schema exists), the description is adequate but could explicitly clarify that the actual send only occurs upon merchant approval. The output schema likely fills in details about return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters described. The description adds contextual value for the 'payload' parameter ('exact tool payload to execute if the merchant approves'), but otherwise does not significantly augment the schema definitions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a merchant-owned Workroom approval request for customer-facing sends. It uses a specific verb ('create') and resource ('approval request'), and explicitly distinguishes from sibling tools by prohibiting direct use of send_message, send_whatsapp_message, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a strong when-not rule by instructing the agent to avoid calling direct send tools. This implies this tool should be used instead for obtaining approval. However, it does not explicitly state when to use this tool versus alternatives when no approval is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_campaignCInspect
Restore a previously deleted campaign.
| Name | Required | Description | Default |
|---|---|---|---|
| campaignId | Yes | Campaign ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what the annotations already provide (readOnlyHint=false, destructiveHint=false, idempotentHint=false). It does not disclose whether restoration is reversible, what state the campaign transitions to, or potential error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of a single sentence that immediately conveys the core purpose. However, it could be slightly expanded without losing conciseness to include critical usage or behavioral hints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema exists), the description is minimally adequate but lacks completeness. It does not mention return values, side effects, or nuances like idempotency, which would be helpful for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (campaignId is described as 'Campaign ID' in the schema), so the description is not required to add parameter details. It does not provide any additional meaning beyond the schema, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('restore') and the resource ('previously deleted campaign'), making the tool's purpose unambiguous. It distinguishes from siblings like 'delete_campaign' and other restore tools, though it lacks additional context about the effect (e.g., making it active again).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor are any prerequisites mentioned (e.g., the campaign must be deleted). The description is too brief to inform the agent about appropriate usage context.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| categoryId | Yes | Category ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already show this is a mutation (readOnlyHint=false). Description adds only 'previously deleted' as context but no details on side effects, prerequisites, or error conditions. Does not explain what 'restore' entails (e.g., does it restore associated posts?).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (10 words), front-loaded with verb and resource. Every word serves a purpose. Ideal for a straightforward restoration tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one parameter and an output schema, the description covers the essential purpose. However, it lacks details on prerequisites (category must be deleted, not active) and potential side effects on associated posts. Still, for a simple restore action, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the single parameter with description 'Category ID'. Description adds no additional parameter semantics. With 100% schema coverage, baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Restore' and specific resource 'CMS post category'. The phrase 'previously deleted' clarifies the state. Distinguishes from sibling tools like create_category and other restore_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for restoring deleted categories but provides no explicit guidance on when to use versus alternatives like update_category, or any constraints such as time limits or permissions.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| invoiceId | Yes | Invoice ID to restore |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, destructiveHint=false. The description does not elaborate on the restore behavior (e.g., whether it reverts the invoice to draft, any side effects, or permissions required). It adds minimal value beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. Every word contributes to purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists and only one required parameter, the description is adequate but minimal. It does not clarify the invoice's state after restoration or any constraints, which would be helpful given the complexity of the domain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'invoiceId' is described in the schema as 'Invoice ID to restore'. The description provides no additional semantics beyond what the schema already offers. With 100% schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'restore' and the resource 'previously deleted DRAFT invoice', making the specific scope unambiguous. It distinguishes from siblings like 'create_invoice' and 'delete_invoice'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., when not to restore, prerequisites, or that only draft invoices can be restored). The description merely states its function without contextual usage cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_knowledge_documentBInspect
Restore a previously deleted knowledge document.
| Name | Required | Description | Default |
|---|---|---|---|
| documentId | Yes | Knowledge document ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, but the description does not add context about permissions, idempotency (idempotentHint=false), or what happens if the document is already active. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single clear sentence with no unnecessary words. Front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values are covered. However, lacks context about how to locate deleted documents (e.g., via list_knowledge_documents). Adequate for a simple tool but could be more helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with documentId described as 'Knowledge document ID'. The description does not add extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'restore' and the resource 'knowledge document', specifically mentioning 'previously deleted' which distinguishes it from other document tools like delete or list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool (e.g., document must be in trash) or when not to use it. No mention of prerequisites or alternatives, making it ambiguous for the agent.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| postId | Yes | The post ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a non-destructive write operation, and the description confirms it restores a post. However, no further behavioral details (e.g., idempotency, prerequisites, side effects) are provided beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys the essential information with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description is mostly complete. It could hint at the restored post's state (e.g., draft/published) but is adequate for the use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter (postId) has a schema description that fully covers its purpose. The tool description does not add extra semantic information, so it meets the baseline for 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Restore') and the resource ('a previously deleted CMS post'), making the purpose immediately clear. It distinguishes from sibling tools like delete_post (opposite) and other restore_* tools (different resource types).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a post is deleted and needs recovery. While it doesn't explicitly state when not to use or provide alternatives, the context is clear and sufficient for a simple operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_post_typeBInspect
Restore a previously deleted custom post type.
| Name | Required | Description | Default |
|---|---|---|---|
| postTypeId | Yes | Post type ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds little beyond annotations; it mentions 'restore previously deleted' but does not disclose what happens if the post type is not deleted or already restored, nor any permissions or side effects. Annotations show readOnlyHint=false and destructiveHint=false, providing some safety context but insufficient behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence of 6 words with no unnecessary information, making it highly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description still lacks important context such as prerequisites (e.g., post type must be deleted) or behavior on already restored items. It is incomplete for a restore operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter 'postTypeId' described as 'Post type ID' in the schema. The description does not add any additional meaning or context beyond what the schema already provides, so score is baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Restore' and the resource 'previously deleted custom post type', which is specific and distinguishes from sibling tools like restore_post_type_field and restore_post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool, such as prerequisites (e.g., post type must be deleted first) or alternatives (e.g., restore_post for posts). It lacks explicit context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_post_type_fieldBInspect
Restore a previously deleted field on a post type schema.
| Name | Required | Description | Default |
|---|---|---|---|
| fieldId | Yes | Field ID | |
| postTypeId | Yes | Post type ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description adds little beyond the verb 'restore'. It does not mention required state, permissions, or side effects, leaving gaps in behavioral understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words, efficiently conveying the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simple restore action and the presence of an output schema (as per context), the description covers the core functionality. However, it lacks details on error conditions (e.g., field not found, already active) and assumes the user knows the field must be deleted first.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds no extra meaning beyond the schema's terse 'Field ID' and 'Post type ID', so it neither improves nor harms parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: restoring a previously deleted field on a post type schema. The verb 'restore' and resource 'post type field' are specific, and it effectively distinguishes from sibling tools like 'create_post_type_field' and '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.
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 when the field is already active or when to use update instead. No when-not-to-use or alternative tools are mentioned.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| promotionId | Yes | Promotion ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, and the description adds context about restoration of deleted items. However, it lacks detail on side effects like whether restoration is idempotent or reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words, earning its place efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (single parameter, output schema present), the description is largely adequate. It could mention what happens if promotion is not deleted or already restored, but it's not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, promotionId, is fully described in the schema as 'Promotion ID'. The description adds no extra meaning, and with 100% schema coverage, baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'restore' and the resource 'previously deleted promotion', which distinguishes it from siblings like delete_promotion and create_promotion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for restoring deleted promotions but provides no explicit guidance on when to use this tool versus alternatives like validate_promotion or update_promotion.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| packageId | Yes | Service package ID to restore |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a non-read, non-destructive operation. The description adds that it restores a previously deleted item, but does not disclose side effects, prerequisites (e.g., the package must be in deleted state), or return behavior. With annotations present, the description provides minimal 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.
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.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter, output schema present), the description is largely complete. However, it lacks constraints like whether the package must be in a deleted state or if restoration is reversible, which would be helpful but not critical for a simple restoration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter already described as 'Service package ID to restore'. The description adds no extra meaning beyond the schema, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('restore'), the resource ('service package'), and the identification method ('by ID'). It is specific and distinguishes from sibling tools like delete_service_package and get_service_package.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after a deletion but does not explicitly state when to use this tool versus alternatives, nor does it mention when not to use it. No exclusions or context are provided.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutation (readOnlyHint false) and not destructive (destructiveHint false). The description adds minimal context beyond the action itself, missing details on side effects like billing triggers or permission requirements. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at 6 words, using a single sentence that efficiently conveys the core purpose without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description provides the basic purpose but lacks context about state prerequisites (subscription must be paused) and potential side effects. Adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter (subscriptionId) already described as 'Subscription ID'. The description does not add any additional meaning or context for this parameter, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (resume), the target (a paused subscription), and the result (back to active). It distinguishes itself 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.
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, nor does it mention prerequisites (e.g., the subscription must be paused) or contraindications (e.g., if already active). Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revert_audit_actionADestructiveInspect
Revert an audited action by restoring the captured before snapshot. Only works for allowlisted target tables with full before/after audit snapshots.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Reason for reverting this action | |
| auditLogId | Yes | Audit log ID to revert |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, so the description adds value by explaining the mechanism (restoring captured snapshot) and the prerequisite (allowlisting). This goes beyond annotations, though it could be more detailed about consequences such as irreversibility or state changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loading the core action and limitation. Every word contributes to understanding, and there is no redundancy or extraneous detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering safety, the description covers the essential behavioral constraints (allowlisting, snapshots). It is slightly less complete in detailing failure scenarios or error states, but it provides sufficient context for the agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes both parameters (auditLogId and reason). The description does not add any additional semantic information about parameters beyond what is in the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action is to revert an audited action by restoring a before snapshot, and specifies the limitation to allowlisted target tables. This distinguishes it from other audit tools like get_audit_log (read-only) and list_audit_logs (listing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by stating the tool only works for allowlisted tables with full snapshots, implying when it should be used. However, it does not explicitly mention when not to use it or suggest alternative tools (e.g., restore_* tools for specific entities), leaving some guidance implicit.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to fetch (must be https / http and publicly reachable) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the crawl, storage in R2, return of document ID, and failure handling (row with status='failed'). However, annotations are minimal (all false), and the description does not address authentication, rate limits, or potential side effects like overwriting existing documents. It adds some behavioral context but could be more thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences: action, process, use cases. Front-loaded with the core purpose, no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema, the description covers purpose, process, failure handling, and use cases. Minor omission: no mention of handling relative URLs, redirects, or content type limitations. Otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage and a well-described 'url' parameter (format, protocol requirement), the description adds little to parameter meaning beyond the schema. It reinforces the URL's role but does not introduce new semantic details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: fetching URL content into the knowledge base, storing the response body, and returning a document ID. It gives specific use cases (marketing pages, FAQ docs, external references) which distinguishes it from sibling tools like add_knowledge_text that add text directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes explicit usage examples ('Use for adding marketing pages...'), guiding the agent on appropriate scenarios. While it does not explicitly state when not to use it or list alternatives, the context is clear enough for a single-purpose tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_audit_logsARead-onlyIdempotentInspect
Search audit logs by free text across action, resource, resource ID, changes JSON, and metadata JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return | |
| query | Yes | Text to search for | |
| createdAfter | No | ISO timestamp lower bound | |
| createdBefore | No | ISO timestamp upper bound |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds value by specifying the fields searched (action, resource, resource ID, changes JSON, metadata JSON) beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 15 words, front-loaded with verb and resource. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and high schema coverage, the description is adequate. It covers the core functionality, though it could mention that search is across multiple JSON fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter descriptions in the schema already cover meaning (e.g., query, limit, timestamps). The description adds minimal value by mentioning the fields searched, but this is already implied by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches audit logs by free text across multiple fields, distinguishing it from list_audit_logs (likely filtered listing) and get_audit_log (single item). However, it does not explicitly differentiate from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus list_audit_logs or other audit tools. Lacks explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_crmARead-onlyIdempotentInspect
Search across CRM accounts and contacts by name, email, or phone.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max per entity (default 10) | |
| query | Yes | Search string |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, fully disclosing safety and idempotency. The description adds no behavioral contradictions and aligns with annotations, providing adequate transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that captures the essential function without any fluff, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown but indicated), the description is complete. It covers the search scope, criteria, and entities queried, leaving no gaps for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters documented. The description adds value by specifying that the query can be name, email, or phone, but does not provide additional semantics beyond what the schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches across CRM accounts and contacts by name, email, or phone. It distinguishes itself from sibling tools like list_contacts or list_accounts by specifying the search capability across multiple entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for searching CRM records, but does not explicitly state when to use this tool versus alternatives like list_contacts or search_members. However, the context is clear enough for an agent to infer appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_membersARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort column: name, email, or createdAt | |
| limit | No | Max results (default 20) | |
| order | No | Sort order | |
| search | No | Name, email, or phone to search | |
| source | No | Filter by account source | |
| tagIds | No | Filter by tag IDs | |
| tierId | No | Filter by membership tier ID | |
| lifeStage | No | Filter by life stage | |
| hasBooking | No | Filter to members with/without any booking | |
| createdAfter | No | ISO date — accounts created after this date | |
| inactiveDays | No | Members with no activity in the last N days | |
| createdBefore | No | ISO date — accounts created before this date | |
| hasMembership | No | Filter to members with active membership | |
| lastBookingAfter | No | ISO date — members who have a booking after this date | |
| membershipStatus | No | Filter by membership status | |
| lastActivityAfter | No | ISO date — members with activity after this date | |
| lastBookingBefore | No | ISO date — members whose last booking is before this date (or have no bookings) | |
| lastActivityBefore | No | ISO date — members with no activity since this date |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safe, read-only nature is clear. The description adds some behavioral context (supports various filters) but does not disclose pagination, result limits, or performance characteristics beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, then a concise list of capabilities, and a specific usage example. Every sentence adds value; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the parameter count (18) and presence of output schema, the description provides a useful high-level overview and a specific use case, but does not explain how filters combine (AND logic) or mention common patterns (e.g., combining search with lifeStage). It is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds semantic grouping by listing filter categories (text search, date ranges, booking/activity history, membership tier, tags) and highlighting specific parameters (lastBookingBefore, inactiveDays), which helps understand parameter usage beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search and filter members/accounts.' It specifies the resource (members/accounts) and the action (search and filter), distinguishing it from sibling search tools like search_audit_logs and search_crm.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a specific usage tip: 'Use lastBookingBefore/inactiveDays to find inactive members.' However, it does not explicitly state when not to use this tool versus alternatives like get_member_profile for single member details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_toolsARead-onlyIdempotentInspect
Search the available FavCRM tool catalog for relevant operations. Use this when the curated direct tool list does not contain the operation you need.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results (default 8, max 20) | |
| query | No | Plain-language tool search, e.g. "delete a segment" or "set custom field values" | |
| scope | No | Optional exact scope filter, e.g. contacts, customer_segments, invoices | |
| write | No | Filter to write tools (true) or read-only tools (false) | |
| includeInputSchema | No | Include full JSON input schemas for returned tools. Defaults to false to keep context small. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
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 that this is a search over the tool catalog, which is consistent. However, it does not go into further behavioral details, but given the annotations, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action, and every word serves a purpose. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (though not provided to us) and the simplicity of the tool, the description is complete enough. It explains the tool's function and its role relative to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented in the schema. The description does not add extra meaning beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: searching the tool catalog for relevant operations. It distinguishes itself from the many sibling tools by specifying it is for when the curated direct tool list does not contain the needed operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises when to use this tool: 'Use this when the curated direct tool list does not contain the operation you need.' This provides clear guidance on when to choose this tool over the specific operation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_custom_field_valuesAIdempotentInspect
Set or clear custom field values for a CRM entity. Values are stored as strings; pass null to clear a value.
| Name | Required | Description | Default |
|---|---|---|---|
| values | Yes | Values to upsert | |
| entityId | Yes | Entity ID | |
| entityType | Yes | Entity type |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false. The description adds value by noting that values are stored as strings and passing null clears a value, which aligns with and supplements the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the action. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present to explain return values, the description covers the purpose and key parameter behavior. It is complete for a simple mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds minimal extra meaning beyond the schema. It reinforces the null behavior and string storage, but this is already documented in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('set or clear') and the resource ('custom field values for a CRM entity'). It distinguishes from sibling tools like 'get_custom_field_values' (retrieval) and 'create_custom_field' (definition).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for upserting custom field values with the option to clear. It provides clear context but does not explicitly mention when not to use or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_primary_contactAIdempotentInspect
Set a contact as the primary contact for its CRM account and demote other contacts on that account.
| Name | Required | Description | Default |
|---|---|---|---|
| contactId | Yes | The contact ID to make primary |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by revealing that it demotes other contacts. Given annotations already indicate non-read-only and idempotent behavior, this disclosure of side effects is sufficient. It could mention access requirements or confirmation, but it's adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence of 15 words that efficiently conveys the tool's purpose and behavior without any redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple mutation with one parameter and an output schema, the description adequately covers the tool's behavior. It could mention that the contact must already belong to the account, but overall it's sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'contactId' is described in the input schema as 'The contact ID to make primary.' The description adds no further meaning beyond this, and schema coverage is 100%, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Set a contact as the primary contact for its CRM account and demote other contacts on that account.' This distinguishes it from sibling tools like create_contact or update_contact, as it uniquely handles the primary contact assignment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when there are multiple contacts on an account and one needs to be promoted. However, it does not provide explicit when-not-to-use guidance or compare with alternatives like update_contact or set_custom_field_values.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_resource_availabilityAIdempotentInspect
Add an availability window for a resource. Use day-of-week + recurring=true for weekly schedules, or a specific date for one-off blocks.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD for a specific date instead of dayOfWeek | |
| type | No | Default available | |
| endTime | Yes | HH:MM (24h) | |
| dayOfWeek | No | Day of week (0=Sun..6=Sat) | |
| startTime | Yes | HH:MM (24h) | |
| resourceId | Yes | Resource ID | |
| isRecurring | No | Default true |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true, so the description doesn't need to cover idempotency. However, it adds the usage patterns (recurring vs one-off) beyond annotations. It does not describe behavior on conflicts or other side effects, so marginal added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences total: first states purpose, second provides usage guidance. No fluff, front-loaded with key information. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters and output schema, the description covers the core distinction (recurring vs one-off) but lacks details on response, error handling, or prerequisites. Adequate for a create operation but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining how dayOfWeek, isRecurring, and date are used together (recurring vs one-off), going beyond the schema's property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Add' and resource 'availability window for a resource'. It distinguishes between recurring weekly schedules (day-of-week + recurring=true) and one-off blocks (specific date), making the tool's purpose specific 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to use recurring vs one-off, but does not explicitly state when NOT to use this tool or name alternatives (e.g., set_staff_availability). This is clear context but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_segment_membersAIdempotentInspect
Replace the members of a STATIC customer segment with the given account IDs. The segment is converted to STATIC.
| Name | Required | Description | Default |
|---|---|---|---|
| segmentId | Yes | The segment ID | |
| accountIds | Yes | CRM account IDs to set as segment members |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by disclosing that the segment is converted to static. Annotations already provide idempotentHint and non-destructive hints, but the description clarifies the overwrite behavior and conversion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. Every word adds value: it states the action, target (static segment), and side effect (conversion). Front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core operation and side effect. Given that the schema and annotations provide parameter details and idempotency, the description is adequate. However, it could mention prerequisites like segment existence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the description adds the 'replace' semantic and clarifies that the operation overwrites existing members, which is not explicit in the parameter descriptions alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: replace members of a static customer segment with specified account IDs, and it distinguishes from siblings like get_segment_members and create_segment by focusing on the replacement operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (to set members), but it does not explicitly mention alternatives or when not to use it. The purpose is clear, but guidance could be stronger by referencing siblings like get_segment_members for reading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_staff_availabilityAIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD for a specific date instead of dayOfWeek | |
| type | No | Default available | |
| endTime | Yes | HH:MM (24h) | |
| memberId | Yes | companyMembers.id of the staff | |
| dayOfWeek | No | Day of week (0=Sun..6=Sat) | |
| startTime | Yes | HH:MM (24h) | |
| isRecurring | No | Default true |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and destructiveHint=false, but the description does not explain whether setting availability overwrites existing windows or appends. The merge behavior when combining recurring and date entries is not disclosed, which is a gap despite annotations providing a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loading the core purpose and resource identifier, then providing usage strategy with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters and complex interactions, the description is adequate but lacks explanation of mutual exclusivity between dayOfWeek and date, and the default value of isRecurring. Output schema exists, so returned values need not be detailed, but edge cases are underexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds semantic value by explaining the mental model of using dayOfWeek+isRecurring versus date. It hints at mutual exclusivity, though it could be more explicit about the behavior when both are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Add an availability window for a staff member', specifying the verb, resource, and target (companyMembers.id). It distinguishes between recurring weekly schedules (dayOfWeek + recurring) and one-off changes (specific date), differentiating it from sibling tool 'set_resource_availability'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use dayOfWeek+recurring for weekly schedules and a specific date for one-off changes, providing clear context. However, it does not mention when not to use this tool or alternative tools for removing 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.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | The company ID to switch to (use list_my_companies to find available IDs) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds important behavioral context beyond annotations: the tool returns a new access token and changes the scope of subsequent calls. Annotations already indicate not read-only, not destructive, not idempotent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words, front-loaded with the core action and effect. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple switch tool with one parameter and an output schema, the description covers the return value, effect on future calls, and prerequisite tool. Completely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter companyId has a helpful description in the schema (references list_my_companies). The tool description does not need to add further parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (switch), resource (company), and effects (returns new access token, subsequent calls operate on new company). No ambiguity with sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies when to use (switching to different company) and references list_my_companies as a prerequisite. Missing explicit when-not-to-use but sufficient for common tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_accountAIdempotentInspect
Update CRM account/customer profile fields such as name, phone, email, life stage, owner, notes, or member code.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Account/customer display name | |
| type | No | Account type | |
| No | Email address | ||
| notes | No | Internal notes | |
| phone | No | Phone number | |
| gender | No | Gender | |
| source | No | Acquisition source | |
| lastName | No | Last name for individual accounts | |
| accountId | Yes | The account ID to update | |
| firstName | No | First name for individual accounts | |
| lifeStage | No | CRM life stage | |
| assignedTo | No | Assigned team member user ID, or null to clear | |
| memberCode | No | Merchant member code, or null to clear | |
| dateOfBirth | No | YYYY-MM-DD date of birth, or null to clear | |
| referredByAccountId | No | Referrer account ID, or null to clear |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=true) already indicate safe mutation. The description adds no additional behavioral context like partial update behavior, auth needs, or response specifics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence with no wasted words. Efficiently communicates the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 15 parameters and an output schema, the description is minimal. It doesn't clarify partial update semantics or other behavioral details, but the schema and annotations partially compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% so the schema already documents all parameters. The description merely lists some fields without adding new semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'CRM account/customer profile fields', listing specific examples. It distinctively separates from sibling tools like create_account and delete_account.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as create_account. The description implies usage for existing accounts but lacks prerequisites, exclusions, or contextual scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_booking_settingsAIdempotentInspect
Update global booking settings. Pass only the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| showCoupon | No | Show coupon field in booking flow | |
| calendarStyle | No | Booking flow calendar presentation | |
| showAccessPass | No | Show access pass/package options in booking flow | |
| cooldownMessage | No | Optional message shown when cooldown blocks a booking | |
| blockUntilFinished | No | Block customers from booking again while they have active bookings | |
| globalCooldownDays | No | Minimum days between customer bookings, or null to disable | |
| bookingReminderEnabled | No | Send the default pre-booking reminder | |
| memberReschedulingMode | No | Choose whether rescheduling is disabled, merchant-only, or available to members | |
| sameDayReminderEnabled | No | Send an additional same-day reminder before booking start | |
| allowMemberCancellation | No | Allow members to cancel bookings from the customer portal | |
| bookingReminderLeadHours | No | Hours before booking start for the default reminder | |
| hideUnavailableTimeslots | No | Hide unavailable timeslots instead of showing them as full | |
| sameDayReminderLeadHours | No | Hours before booking start for the same-day reminder | |
| requireBookingConfirmation | No | Require merchant confirmation before bookings are confirmed | |
| minimumAdvanceBookingMinutes | No | Minutes before slot start when customer booking closes. null/0 = no cutoff; set > 0 to require advance notice | |
| memberCancellationCutoffHours | No | Hours before booking start when member cancellation closes, or null for no cutoff |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover idempotency, read-only, and destructive hints. The description adds the behavioral trait that omitted fields remain unchanged, which is useful for understanding partial updates. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the action and no redundant words. It effectively communicates the core usage pattern.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema with per-field descriptions, the output schema, and annotations, the description sufficiently covers the partial-update behavior. It could mention the read sibling, but that is not essential for an update action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for all 16 optional parameters. The description adds the semantic that any subset of fields can be sent, reinforcing the partial-update pattern beyond individual field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'update global booking settings'. This distinguishes it from read-only sibling get_booking_settings and other update tools, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage guidance: 'Pass only the fields you want to change,' indicating a partial-update pattern. It does not explicitly mention alternatives, but the context is sufficient for an update tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_campaignAIdempotentInspect
Update an existing campaign. Channel cannot be changed after creation. Pass only fields to change.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name | |
| status | No | Status filter | |
| segmentId | No | Segment ID | |
| campaignId | Yes | Campaign ID | |
| scheduledAt | No | Scheduled timestamp (ISO 8601) | |
| recipientIds | No | Explicit recipient user IDs | |
| channelConfig | No | For email, use subject + htmlBody + optional plainTextBody. Legacy html is normalized to htmlBody. | |
| recipientSource | No | Recipient source: segment | tier | manual |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and non-destructive. Description adds behavioral context: this is an update operation (implies mutation but safe), with channel immutability. No side effects mentioned, but sufficient for typical update.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences pack all necessary information: purpose, constraint, and usage instruction. No redundant words. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, nested objects, and output schema presence, the description covers essential update semantics and an important constraint. Could mention that status transitions are allowed (enum hints at this) but not critical. Good balance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds value by explaining channelConfig structure ('For email, use subject + htmlBody...') and that only changed fields should be provided. However, recipientSource description ('segment | tier | manual') conflicts slightly with schema enum, reducing clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Update an existing campaign' with specific verb and resource. Also adds constraint about channel immutability and instruction to pass only changed fields, which distinguishes from create/delete siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Pass only fields to change', guiding optimal usage. Mentions channel cannot be changed, which is a when-not-to-use rule. No explicit alternatives, but sibling context provides options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_categoryBIdempotentInspect
Update a CMS post category.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name | |
| slug | No | URL slug | |
| sortOrder | No | Sort order (lower = earlier) | |
| categoryId | Yes | Category ID | |
| description | No | Description |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true, destructiveHint=false, and readOnlyHint=false. The description adds no behavioral context beyond these annotations, such as what fields can be updated, required permissions, or potential side effects. It 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the key action. It is efficient but could benefit from slightly more context without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update operation with full schema coverage and supporting annotations, the description is minimally adequate. However, it lacks any indication of partial updates, required fields, or return value details, leaving gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with detailed descriptions for all five parameters. The description itself does not add any additional meaning beyond what the schema already provides, hence a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Update a CMS post category', which includes a specific verb ('update') and resource ('CMS post category'). This clearly distinguishes it from sibling tools like create_category, delete_category, and restore_category.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for modifying an existing category but provides no explicit guidance on when to use this tool versus alternatives, nor any conditions or exclusions. Sibling tools include create, delete, and restore for categories, but the description does not contrast them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_contactCIdempotentInspect
Update fields on an existing contact.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name | |
| No | Email address | ||
| phone | No | Phone number | |
| jobTitle | No | Job title | |
| contactId | Yes | The contact ID | |
| isPrimary | No | Mark as the primary contact |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotent and non-destructive behavior, but the description adds no behavioral context beyond the basic action. It does not clarify partial vs. full update, validation, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words, earning its place efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the output schema existing, the description lacks details on update behavior (e.g., whether it's partial), error conditions, or what the response contains. It feels incomplete for a typical update operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter descriptions already define each field (e.g., 'Email address'). The description does not add extra meaning or constraints, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update fields on an existing contact,' specifying the verb (update) and resource (contact). It distinguishes from create_contact, delete_contact, and get_contact, though it could be more specific to avoid overlap with set_primary_contact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use or not use this tool, nor are alternatives or prerequisites mentioned. The description is too generic without contextual help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_custom_fieldAIdempotentInspect
Update a custom field definition label, type, options, required flag, or sort order.
| Name | Required | Description | Default |
|---|---|---|---|
| options | No | Allowed values for select/multiselect fields | |
| fieldType | No | Field type | |
| sortOrder | No | Display order | |
| fieldLabel | No | Human-readable label | |
| isRequired | No | Whether this field is required | |
| definitionId | Yes | Custom field definition ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true, not destructive, not read-only. The description adds no further behavioral context (e.g., whether changing field type clears options, validation rules, or side effects). It is adequate but does not enrich 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the tool's purpose and the range of updatable fields. No extraneous words or information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward update tool with 6 well-documented parameters and an output schema available, the description covers the essential functionality. It lacks some advanced context (e.g., implications of changing type) but is largely complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description lists the attributes that can be updated but does not add meaning beyond the schema. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'custom field definition', and lists specific attributes that can be updated (label, type, options, required flag, sort order). This distinguishes it from sibling tools like create_custom_field and delete_custom_field.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives, nor does it mention prerequisites (e.g., needing the definitionId) or considerations like how updating field type may affect existing data. Usage context is entirely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_dealAIdempotentInspect
Update a CRM deal. Pass only fields to change; use null for nullable links/fields to clear them.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Deal name | |
| stage | No | Pipeline stage, or null to clear | |
| amount | No | Deal amount, or null to clear | |
| dealId | Yes | The deal ID | |
| ownerId | No | Owner user/team member ID, or null to clear | |
| dealType | No | Deal type/category, or null to clear | |
| accountId | No | Linked CRM account ID, or null to clear | |
| contactId | No | Linked contact ID, or null to clear | |
| closingDate | No | Expected closing date, or null to clear | |
| description | No | Deal notes or description, or null to clear | |
| probability | No | Win probability, or null to clear |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and destructiveHint=false. The description adds behavioral context about partial updates and null clearing, which aligns with annotations and goes beyond what they provide. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the verb and resource. Every sentence is informative and concise, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, return values need not be explained. The description covers the key aspects of usage (partial updates, null clearing). It lacks explicit prerequisites or permissions, but the annotations and context (readOnlyHint=false, idempotentHint=true) provide sufficient cues.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 11 parameters. The description adds value by explaining the semantics of partial updates and null clearing, which is not captured in the schema parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates a CRM deal, using a specific verb ('update') and resource ('CRM deal'). This distinguishes it from sibling tools like create_deal, delete_deal, and get_deal, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Pass only fields to change; use null for nullable links/fields to clear them.' This tells the agent how to use the tool for partial updates and field clearing, though it does not explicitly mention when not to use it or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_deal_stageAIdempotentInspect
Move a deal to a different pipeline stage.
| Name | Required | Description | Default |
|---|---|---|---|
| stage | Yes | New pipeline stage | |
| dealId | Yes | The deal ID | |
| lostReason | No | Required when moving to lost | |
| probability | No | Optional win probability (percent string) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description does not disclose behavioral traits beyond the basic action. Annotations provide idempotentHint and destructiveHint, but the description adds no further context (e.g., whether permissions are needed, if workflows are triggered, or what happens to lostReason when moving to 'lost').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence of 8 words, concise and front-loaded. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description is minimal for a tool with 4 parameters and conditional requirements (e.g., lostReason required when stage is 'lost'). It does not explain the overall effect on the deal, prerequisites, or output structure (output schema exists but not leveraged).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents parameters. The description adds no additional meaning beyond the tool's purpose, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Move a deal') and the resource ('to a different pipeline stage'). It distinguishes this tool from siblings like 'update_deal' (general field updates) and 'mark_deal_lost/won' (specific outcomes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like 'mark_deal_lost' or 'mark_deal_won'. Usage is implied by the name and description, but an agent might not know to use specialized tools for specific stages.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_order_statusAIdempotentInspect
Update the status of a shop order (e.g. confirm, ship, cancel).
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | New order status | |
| orderId | Yes | The order UUID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true, readOnlyHint=false, and destructiveHint=false. The description adds no additional behavioral context (e.g., side effects, transition rules, permissions). With annotations present, the description adds minimal value beyond stating 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence front-loaded with the action and examples. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple mutation and presence of output schema, the description is mostly complete. However, it lacks context about valid status transitions or any constraints, but this is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter having a basic description. The tool description does not add new semantics beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it updates the status of a shop order, with explicit examples (confirm, ship, cancel). This is specific and distinguishes it from sibling tools like update_account or update_booking_settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., other update tools or order-related tools). Does not specify prerequisites or conditions when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_outletBIdempotentInspect
Update an existing shop outlet/location by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Outlet ID (UUID) | |
| name | No | Outlet name | |
| phone | No | Contact phone | |
| address | No | Street address | |
| logoUrl | No | Logo URL | |
| isActive | No | Whether outlet is active | |
| latitude | No | Latitude | |
| longitude | No | Longitude | |
| sortOrder | No | Display sort order | |
| acceptsOrders | No | Whether outlet accepts online orders |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotency and non-destructive behavior, but description adds no further behavioral context such as partial update semantics, authorization 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words. Front-loaded with key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 10 parameters and an output schema, description omits important details: is it a partial update? What happens on invalid ID? What fields are mandatory? Return value not mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with individual descriptions, so description adds little beyond baseline. No extra usage hints or constraints beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Update' and resource 'existing shop outlet/location by ID', distinguishing from create_outlet and other similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. other update tools (e.g., update_service, update_contact). Missing context on prerequisites or edge cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_postBIdempotentInspect
Update an existing CMS post (any post type). Only provided fields are changed.
| Name | Required | Description | Default |
|---|---|---|---|
| meta | No | Custom field values; merged shallowly with existing meta. Use this for structured data, not excerpt. | |
| slug | No | URL slug (must be unique per company+type). | |
| type | No | Change post type (e.g. blog_post → treatment). Slug is re-checked for uniqueness under the new type. | |
| title | No | Post title | |
| blocks | No | Replaces 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. | |
| postId | Yes | The post ID | |
| status | No | Post status | |
| tagIds | No | Tag IDs to sync (replaces existing tags) | |
| excerpt | No | Plain-text summary only — never JSON. Omit to leave unchanged. | |
| parentId | No | Parent post ID for nested types. | |
| seoTitle | No | SEO title override | |
| sortOrder | No | Sort order (lower = earlier) | |
| visibility | No | Visibility | |
| categoryIds | No | Category IDs | |
| publishedAt | No | Publish timestamp (ISO 8601) | |
| featuredImage | No | Cover image URL | |
| seoDescription | No | SEO description override |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=true. The description adds the partial-update behavior ('Only provided fields are changed'), which is useful. However, it does not disclose potential side effects (e.g., status changes triggering actions) or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, extremely concise. It front-loads the key purpose and partial-update behavior. However, it could be longer to include usage guidance without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's complexity (17 parameters, nested blocks, many siblings), the description is minimal. It does not mention authentication requirements, rate limits, or implications of changing fields like status. The schema descriptions are thorough, but the tool description should provide high-level completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with detailed descriptions for all 17 parameters, including nested block definitions. The tool description adds no additional parameter meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'existing CMS post (any post type)', and adds the critical partial-update behavior with 'Only provided fields are changed.' This distinguishes it from create_post and block-specific editing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., per-block editing tools like append_post_block). It does not mention when not to use it or any prerequisites. The schema notes on blocks reference sibling tools, but the main description lacks this context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_post_typeAIdempotentInspect
Update a custom post type. Built-in types (blog_post, page) cannot be modified.
| Name | Required | Description | Default |
|---|---|---|---|
| icon | No | Icon name or URL | |
| label | No | Display label | |
| sortOrder | No | Sort order (lower = earlier) | |
| postTypeId | Yes | Post type ID | |
| labelPlural | No | Plural display label | |
| supportsBlocks | No | Allow content blocks (rich body) | |
| supportsExcerpt | No | Allow an excerpt field | |
| supportsNesting | No | Allow parent/child nesting | |
| supportsCategories | No | Allow categories on this post type | |
| supportsFeaturedImage | No | Allow a featured image |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds the critical behavioral constraint that built-in types are immutable, which annotations do not capture. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, direct sentences with no unnecessary words. It front-loads the core action and adds the key constraint efficiently. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of a detailed output schema and full parameter descriptions, the description adequately covers the tool's purpose and primary constraint. It is sufficient for an agent to understand what to expect, though it could briefly mention that updates persist immediately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 10 parameters. The description does not add extra meaning beyond the schema, so baseline 3 is appropriate. The context of custom vs built-in types indirectly informs parameter usage but is not parameter-specific.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates a custom post type and distinguishes it by noting that built-in types cannot be modified. It uses a specific verb ('update') and identifies the resource ('custom post type'), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear when-not condition (built-in types cannot be modified), which guides usage. However, it does not explicitly mention when to use this tool over siblings like create_post_type or update_post_type_field, so it lacks full alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_post_type_fieldAIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Override safety guards. Required to change fieldType or flip required=true on a field that already has data in posts. | |
| label | No | Display label | |
| fields | No | Child fields for fieldType="repeater". | |
| fieldId | Yes | Field ID | |
| options | No | For URL fields, { uploadable: true } enables file upload while preserving a URL string in meta. | |
| helpText | No | Help text shown next to the input | |
| required | No | Whether the field is required | |
| fieldType | No | Field type | |
| sortOrder | No | Sort order (lower = earlier) | |
| postTypeId | Yes | Post type ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and destructiveHint=false, but the description adds critical context: changing fieldType or required=true is blocked for fields with existing posts unless force=true. This goes beyond annotations and aids safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, no redundant information. Every sentence provides essential guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers the key constraint, it does not specify that other fields (e.g., label, options) can be updated freely. However, given the output schema and good annotations, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and all parameters have descriptions. The description adds value by explaining the blocking condition for fieldType and required changes, which is not evident from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update a field on a post type schema' with a specific verb and resource. It distinguishes from sibling tools like create_post_type_field and delete_post_type_field by mentioning blocked changes and force requirement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the force parameter (to override blocked changes) and implies safe updates without force. However, it does not explicitly mention when to avoid this tool in favor of siblings (e.g., use create for new fields).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_productAIdempotentInspect
Update an existing product. Only provided fields are changed.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | SKU code | |
| name | No | Product name | |
| price | No | Price as decimal string | |
| status | No | Product status | |
| productId | Yes | The product ID | |
| categoryIds | No | Category IDs (first is primary). Replaces all existing categories. | |
| description | No | Product description | |
| memberPrice | No | Members-only price | |
| discountPrice | No | Discounted price |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and destructiveHint=false. The description adds the behavioral detail that only provided fields are changed (partial update), which is valuable context beyond the annotations. However, it does not disclose error handling, required permissions, or what happens if the product does not exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences, no redundant words, and immediately front-loads the purpose. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown but indicated) and the simplicity of an update operation, the description covers the core behavior. It could mention that the product must exist or that the operation is idempotent (the latter is covered by annotations). Overall, it is adequately complete for a straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all 9 parameters, so the schema already documents each parameter. The description's general statement about partial update provides context but does not add per-parameter 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update an existing product' with a specific verb and resource. It distinguishes itself from siblings like create_product (create) and other update_ tools, and adds the nuance 'Only provided fields are changed' to indicate a partial update, which differentiates it from a full replacement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for modifying an existing product, but does not explicitly state when to use this tool versus alternatives (e.g., create_product for new products, get_product for reading). No 'when-not' or alternative suggestions are provided, which is a gap for an AI agent deciding between sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_promotionAIdempotentInspect
Update an existing promotion. Pass only the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | Promotion code | |
| name | No | Name | |
| type | No | Type | |
| value | No | Discount value (numeric or decimal string) | |
| endsAt | No | End timestamp (ISO 8601) | |
| status | No | Status filter | |
| startsAt | No | Start timestamp (ISO 8601) | |
| promotionId | Yes | Promotion ID | |
| usageLimitTotal | No | Total usage limit across all customers | |
| usageLimitPerCustomer | No | Usage limit per customer |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, destructiveHint=false, and readOnlyHint=false. The description adds the partial update behavior ('only the fields you want to change'), which is useful beyond annotations. However, it does not elaborate on authorization needs, response behavior, or side effects, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no fluff. All information is front-loaded and necessary. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high schema coverage and presence of an output schema, the description is mostly complete. It explains the core usage pattern. However, it could be enhanced by noting that the promotion must exist (implied by 'update existing'), or referencing idempotency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by clarifying that only changed fields need to be passed, which goes beyond the schema's per-parameter descriptions. This explicitly supports the partial update paradigm.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Update an existing promotion' with a clear verb and resource. This distinguishes it from sibling tools like create_promotion, get_promotion, and delete_promotion, leaving 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a concrete usage hint: 'Pass only the fields you want to change,' which communicates the partial update pattern. However, it does not explicitly specify when to use this tool over alternatives (e.g., validate_promotion or create_promotion), nor does it mention prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_segmentAIdempotentInspect
Update an existing customer segment by id. Pass only the fields to change; criteria replaces the existing rules.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New segment name | |
| criteria | No | Replace dynamic criteria, or null to clear criteria | |
| segmentId | Yes | The segment ID to update | |
| description | No | New segment description | |
| segmentType | No | Change segment type |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavioral traits beyond the annotations: 'criteria replaces the existing rules' indicates a full replacement rather than merge. It aligns with the idempotentHint annotation ('Pass only the fields to change'). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise with two well-structured sentences. The first sentence states the core purpose, and the second adds critical usage context. No extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and that an output schema exists, the description covers essential behavioral aspects (partial update, criteria replacement). It does not mention required permissions or prerequisites, but for a standard update tool, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema fully documents each parameter. The tool description adds semantic value by explaining the partial update pattern and the replacement behavior for criteria, which goes beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('update'), the resource ('existing customer segment'), and the method ('by id. Pass only the fields to change'). It effectively distinguishes from sibling tools like create_segment or delete_segment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on partial updates ('Pass only the fields to change') and specifies that 'criteria replaces the existing rules'. It does not explicitly state when to use this tool versus alternatives, but the sibling context offers some implicit differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_serviceAIdempotentInspect
Update an existing booking service. Pass only the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name | |
| price | No | Decimal string, e.g. "80.00" | |
| status | No | Status filter | |
| capacity | No | Participants per slot | |
| serviceId | Yes | Service ID to update | |
| categoryId | No | Category ID | |
| visibility | No | Visibility: public | members_only | hidden | |
| description | No | Description | |
| requireLogin | No | If true, guests cannot book without an account | |
| requiresStaff | No | Whether the service requires staff assignment | |
| commissionType | No | Commission type: "fixed" or "percentage" | |
| commissionValue | No | Commission amount as decimal string | |
| cooldownMinutes | No | Cooldown minutes between bookings | |
| durationMinutes | No | Duration of one booking in minutes | |
| requiresResource | No | Whether the service requires a resource (room/equipment) | |
| commissionCurrency | No | Commission currency (ISO code) | |
| requiresConfirmation | No | If true, bookings start pending and need explicit confirmation |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds the partial update behavior ('pass only the fields you want to change'), which is consistent and provides slight extra transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that immediately conveys the tool's purpose and usage pattern. No redundant or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high parameter count (17) and full schema coverage plus an output schema, the description is complete enough for an update operation. It could hint at the required serviceId, but that is in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description's advice to 'pass only the fields you want to change' is general and adds minimal meaning beyond the schema's per-field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update an existing booking service' uses a specific verb ('update') and resource ('service'), clearly distinguishing it from sibling tools like create_service, get_service_detail, and delete_service.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The instruction 'Pass only the fields you want to change' gives clear usage guidance for partial updates, implying that other fields will remain unchanged. However, it does not explicitly mention when not to use this tool or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_service_packageAIdempotentInspect
Update an existing service package. Pass only the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name | |
| price | No | Decimal string, e.g. "80.00" | |
| status | No | Status filter | |
| packageId | Yes | Service package ID to update | |
| validDays | No | Validity period in days | |
| description | No | Description | |
| sessionCount | No | Number of sessions in the package | |
| applicableType | No | What this package applies to: services | products | both | |
| applicableItems | No | Item IDs the package can be redeemed against |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and destructiveHint=false. The description adds the specific behavioral trait of partial update (only pass fields to change), which is valuable beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no unnecessary words. Front-loaded with verb and resource, second sentence explains usage. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 9 parameters, 100% schema coverage, and presence of output schema, the description adequately covers the core action. Could mention return value but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 9 parameters, so baseline is 3. The description adds no per-parameter information beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Update an existing service package' and the partial update behavior 'Pass only the fields you want to change.' It unambiguously distinguishes this tool from create, delete, list, and get siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions partial update but does not explicitly compare with create or other update tools like restore_service_package. It lacks guidance on when not to use this tool or when alternatives are better.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_service_scheduleAIdempotentInspect
Update a service schedule window. Pass only fields to change.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date (YYYY-MM-DD) | |
| notes | No | Free-form notes | |
| endTime | No | End time (HH:mm) | |
| staffId | No | Staff member ID | |
| byWeekday | No | Weekdays (0=Mon..6=Sun) for weekly recurrence | |
| startTime | No | Start time (HH:mm) | |
| recurrence | No | Recurrence rule: none | daily | weekly | monthly | |
| resourceId | No | Resource ID (room/equipment) | |
| scheduleId | Yes | Schedule ID | |
| maxCapacity | No | Maximum capacity for this slot | |
| recurrenceEndDate | No | Recurrence end date (YYYY-MM-DD) | |
| recurrenceInterval | No | Recurrence interval (e.g. every N weeks) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent and non-destructive behavior. Description adds valuable context that this is a partial update (PATCH-like), which goes beyond annotations. No mention of side effects or prerequisites, but overall good.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero wasted words. Front-loaded with the action verb and resource. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 12 parameters, full schema coverage, and an output schema, the description adequately covers the tool's purpose and key behavior. It could mention the required scheduleId, but that is in the schema. Sufficient for an update tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description offers a general guideline ('Pass only fields to change') but adds no parameter-specific 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'Update a service schedule window', clearly indicating the verb and resource. It distinguishes from create_service_schedule by noting 'Pass only fields to change', implying partial update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides useful guidance on passing only changed fields, but does not explicitly specify when to use versus alternatives like create_service_schedule or when not to use. Context from sibling names helps infer, but description lacks direct exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_surveyAIdempotentInspect
Update a survey draft or publishing configuration. Use questionBlocks to replace the ordered form block list.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | URL slug | |
| title | No | Survey title | |
| openAt | No | Optional ISO datetime when the survey opens | |
| status | No | Survey status | |
| closeAt | No | Optional ISO datetime when the survey closes | |
| settings | No | Survey settings such as allowMultipleResponses, collectEmail, collectIpAddress, requireAuthentication, showProgress, successMessage | |
| surveyId | Yes | Survey ID | |
| visibility | No | Survey access mode | |
| description | No | Survey description | |
| questionBlocks | No | Ordered survey question blocks |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and destructiveHint=false. Description adds minimal beyond stating it's an update operation. No mention of side effects or additional behavioral traits beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second provides a key usage hint. No wasted words, easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 params, nested objects, output schema), the description is adequate but does not clarify that it's a partial update (unchanged fields remain). Output schema exists, so return values are covered elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds value by explaining that questionBlocks replaces the ordered block list, which is a semantic nuance not fully captured in the schema description. No additional info for other parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it updates survey drafts or publishing configuration, and mentions the key parameter questionBlocks. It distinguishes from siblings like create_survey and archive_survey by specifying it is for updating an existing survey.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies use for modifying existing surveys but does not explicitly state when to use vs alternatives (e.g., create_survey, archive_survey). No exclusions or context about 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.
update_tagAIdempotentInspect
Rename or recolor an existing CRM tag.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New tag name | |
| color | No | New color, or null to clear | |
| tagId | Yes | The tag ID to update |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, idempotentHint=true. The description adds that the tool updates an existing tag, which is consistent. However, it does not disclose additional behavioral traits beyond what annotations provide, so it 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is front-loaded and efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (3 parameters, no nested objects) and the presence of an output schema (not shown, but indicated), the description is sufficient. It covers the core action without needing to explain return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for each parameter. The description mentions 'rename or recolor', which aligns with 'name' and 'color' params, but does not add 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates an existing CRM tag by renaming or recoloring. It uses a specific verb ('Rename or recolor') and resource ('existing CRM tag'), and implicitly distinguishes from sibling tools like create_tag, delete_tag.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when wanting to modify a tag's name or color, but provides no explicit guidance on when to use this versus alternatives (e.g., create_tag for new tags) or any prerequisites. No exclusions or when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_taskAIdempotentInspect
Update a task (status, priority, assignee, due date, completion).
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Title | |
| status | No | Status filter | |
| taskId | Yes | The task ID | |
| dueDate | No | Due date (ISO 8601) | |
| priority | No | Priority | |
| assigneeId | No | Assignee user ID | |
| description | No | Description |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate write capability (readOnlyHint=false), non-destructive (destructiveHint=false), and idempotent (idempotentHint=true). The description adds no behavioral context beyond 'update'. It does not provide extra detail like auth requirements, error handling, or concurrency behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that lists key updatable fields in parentheses. It is front-loaded with the action and resource. No wasted words, but could add a brief note about required taskId.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters with full schema coverage, annotations covering safety, and an output schema present, the description is minimally adequate. It does not mention the required taskId, error conditions, or response behavior. Complete enough for a straightforward update but not exceptional.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with clear descriptions for all 7 parameters. The description reiterates some fields (status, priority, etc.) but adds no new meaning. Baseline is 3 as schema already documents parameters adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update a task' with specific fields (status, priority, assignee, due date, completion). This verb+resource combination distinguishes it from sibling tools like create_task, delete_task, and get_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for updating existing tasks, but does not explicitly state when to use it versus alternatives (e.g., create_task for new tasks). No exclusions or prerequisites are provided. Usage is implied but not guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_ticket_statusBIdempotentInspect
Update the status of an existing support ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | New status | |
| ticketId | Yes | The ticket ID to update |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds 'existing' to imply the ticket must exist, but no further behavioral traits like permissions or side effects are disclosed. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with 9 words, concise and directly to the point. However, it could benefit from a brief usage hint without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, return value explanation is not needed. The description covers the basic purpose and parameters but lacks usage guidelines and behavioral details beyond annotations. It is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds minimal value beyond the schema, just restating 'status' and 'existing'. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'status of an existing support ticket'. It distinguishes from sibling tools like create_ticket and list_tickets by specifying the action on an existing 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.
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. It does not mention any prerequisites, when not to use it, or compare to other update tools. The description lacks explicit usage context.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| postId | Yes | The post ID | |
| sourceUrl | Yes | Public http(s) URL to fetch the image from. Must respond with an image/* content-type. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond annotations, such as content-type validation, size limit (20 MB), and that no AI credits are charged. This informs the agent about constraints and cost implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences, each providing essential information: the action, the benefit over alternatives, and the validation/cost details. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main aspects: what it does, validation, cost, and benefit. Given the output schema exists, return values are not needed. It could mention that the post must exist, but overall it is sufficiently complete for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the description still adds value by explicitly stating the content-type and size validation rules, which are not fully captured in the parameter descriptions. This helps the agent understand the constraints on the sourceUrl parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it downloads an external image and attaches it as the post's featuredImage. It distinguishes the tool from the manual flow of pasting URLs but does not explicitly differentiate from sibling tools like 'generate_post_cover' or 'attach_post_cover_from_job'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains it replaces the manual flow for external URLs, implying when to use it. However, it does not mention when not to use it or provide explicit alternatives from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upsert_survey_workflowAIdempotentInspect
Create or update a survey automation workflow, usually triggered by survey_response_submitted.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Workflow name | |
| graph | Yes | Workflow graph definition | |
| status | No | Workflow status | |
| trigger | No | Trigger name, default from graph.trigger | |
| surveyId | Yes | Survey ID | |
| workflowId | No | Existing workflow ID when updating |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds the behavioral context that the workflow is triggered by 'survey_response_submitted', which is beyond the annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the key action 'Create or update'. No wasted words; every part serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having output schema and full parameter descriptions, the description lacks details on upsert semantics (e.g., what determines create vs update), the graph structure, or any prerequisites. For a tool with 6 parameters and nested objects, more completion is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all parameters have descriptions). The description does not add additional parameter meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create or update a survey automation workflow', which is a specific verb+resource. It is not a tautology and distinguishes the tool from siblings like 'list_survey_workflows'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'usually triggered by survey_response_submitted', which provides contextual usage but does not explicitly state when to use this tool versus alternatives or when not to use it. No exclusions or sibling differentiation are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_campaignARead-onlyIdempotentInspect
Validate a campaign before sending. Resolves contactable recipient count and previews the final email subject/body without sending.
| Name | Required | Description | Default |
|---|---|---|---|
| campaignId | Yes | Campaign ID to validate |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavioral context beyond annotations: describes it resolves a count and previews content without sending. Annotations already indicate readOnlyHint=true and no destruction, so description reinforces safety without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with key verb and action, no redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (1 param), rich annotations, and presence of output schema, the description fully explains the tool's purpose and behavior without needing to detail return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (campaignId) with description already in schema. Schema coverage is 100%, so baseline of 3 applies; description adds no additional meaning beyond 'Campaign ID to validate'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'validate' and the resource 'campaign', with specific actions (resolving contactable recipient count, previewing subject/body) that distinguish it from sibling tools like create_campaign or send_campaign.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States 'before sending', providing clear context for when to use. However, no explicit when-not-to-use or alternatives among siblings (e.g., vs. update_campaign or list_campaigns) are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_promotionARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Order subtotal in major units (dollars, not cents) | |
| channel | Yes | Where the promo is being applied | |
| accountId | No | Customer account ID — used for per-customer usage limits | |
| promotionCode | Yes | The code customer entered |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior. Description adds clear explanation that it returns validation results (isValid, discount, error) and implies no side effects. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no wasted words. First sentence covers purpose and output, second gives usage advice. Excellent conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations and output schema present, the description is adequate. Mentions return fields. Could briefly explain what constitutes an invalid code (e.g., expired), but the error code/message handles that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 4 parameters are fully described in the schema (100% coverage). Description adds no additional parameter meaning beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Check if a promotion code is valid' and specifies the resource ('for a given order'). Returns listed. Lacks explicit differentiation from sibling 'validate_campaign', but the context of promotions vs campaigns is implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage direction ('Use before applying to a checkout') but does not mention when not to use or alternatives. Minimal guidance on context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
void_invoiceADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| invoiceId | Yes | Invoice ID to void |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Tool result payload — shape varies per tool, see the tool description |
| summary | Yes | One-line human-readable summary of the action |
| renderType | Yes | UI rendering hint for the result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, but description adds valuable behavioral detail: 'invoice can no longer be paid or edited; existing payments are preserved as history.' This goes beyond the annotation by explaining what destruction entails. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: first states action, second explains consequences, third lists restriction. No redundant words. Front-loaded with the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple (one parameter, no nesting). Description covers behavior, consequences, and constraint. Output schema exists (though not shown), so no need to explain return values. Fully adequate for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter 'invoiceId' with schema description 'Invoice ID to void.' Schema coverage is 100%, so the description adds no additional meaning beyond what the schema already provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Void an invoice'), identifies the resource, and explains the consequences (no longer paid/edited, payments preserved). It implicitly distinguishes from siblings like 'delete_invoice' by noting preservation of payments. The verb+resource+scope is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes explicit precondition ('Cannot void invoices that are already PAID or VOIDED'), guiding when not to use. Does not directly compare to alternatives like 'delete_invoice' or 'mark_invoice_sent', but the destructive nature and constraint provide clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityAmaintenanceGTM signal intelligence suite for AI agents. Six tools: hiring signals, tech stack detection, company-to-LinkedIn resolution, ICP scoring, job board scanning, and a combined signals aggregator. Built for outbound sales workflows.117371MIT

industrylens-mcpofficial
Flicense-qualityCmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
Sociality MCPofficial
Alicense-qualityDmaintenanceSocial media analytics, post insights, and competitor benchmarking for AI agents.6MIT- AlicenseAqualityAmaintenanceDetects hiring intent signals by scanning job boards for specific companies. Returns structured role data for outbound sales targeting.1761MIT