Famulor
Server Details
AI voice agents: assistants, calls, campaigns, leads, knowledge bases, WhatsApp, SMS & SIP trunks.
- 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.6/5 across 75 of 75 tools scored. Lowest: 2.4/5.
Each tool targets a distinct resource or action, with clear boundaries between assistant management, campaigns, conversations, documents, phone numbers, etc. Descriptions further clarify their unique purposes.
All tools follow a consistent snake_case verb_noun pattern (e.g., create_assistant, list_calls). Retrieval uses get_ for single items and list_ for collections, and enable/disable prefixes are used uniformly for webhooks and AI toggles.
With 75 tools, the set is very large. While each tool serves a specific need in a comprehensive telephony AI platform, the quantity exceeds the recommended range and risks overwhelming agents.
The tool surface covers most CRUD operations and lifecycle management for the domain's core entities. Minor gaps exist, such as missing update_campaign (only status update available), but overall the set is thorough.
Available Tools
75 toolscreate_assistantAInspect
Create a new AI assistant. Required: name, voice_id, language_id, type, mode, timezone, initial_message, system_prompt, and either llm_model_id (pipeline) or multimodal_model_id (multimodal/dualplex). For multimodal/dualplex, knowledgebase_mode must be "function_call" when a knowledgebase is attached.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| name | Yes | Display name of the assistant (max 255 chars) | |
| type | Yes | Assistant call direction | |
| tools | No | ||
| record | No | ||
| fillers | No | ||
| timezone | Yes | IANA timezone, e.g. "Europe/Berlin" | |
| tool_ids | No | ||
| voice_id | Yes | Voice ID from get_voices | |
| folder_id | No | Folder to place the assistant in (one folder per assistant). See list_folders. Send null to remove. | |
| label_ids | No | Label IDs to tag the assistant with (an assistant can carry multiple labels). See list_labels. | |
| variables | No | ||
| language_id | Yes | Primary language ID from get_languages | |
| webhook_url | No | ||
| llm_model_id | No | Required for mode=pipeline | |
| max_duration | No | ||
| ringing_time | No | ||
| speech_speed | No | ||
| ambient_sound | No | ||
| endpoint_type | No | ||
| filler_config | No | ||
| system_prompt | Yes | System prompt defining behavior | |
| initial_message | Yes | First message spoken at call start (max 200 chars) | |
| llm_temperature | No | ||
| phone_number_id | No | ||
| voice_stability | No | ||
| knowledgebase_id | No | ||
| post_call_schema | No | ||
| voice_similarity | No | ||
| is_webhook_active | No | ||
| wait_for_customer | No | ||
| knowledgebase_mode | No | ||
| voice_mail_message | No | ||
| allow_interruptions | No | ||
| min_interrupt_words | No | ||
| multimodal_model_id | No | Required for mode=multimodal/dualplex | |
| reengagement_prompt | No | ||
| tts_emotion_enabled | No | ||
| ambient_sound_volume | No | ||
| chat_llm_fallback_id | No | ||
| endpoint_sensitivity | No | ||
| max_silence_duration | No | ||
| post_call_evaluation | No | ||
| end_call_on_voicemail | No | ||
| interrupt_sensitivity | No | ||
| reengagement_interval | No | ||
| secondary_language_ids | No | Additional language IDs the assistant can speak | |
| synthesizer_provider_id | No | ||
| transcriber_provider_id | No | ||
| turn_detection_threshold | No | ||
| enable_noise_cancellation | No | ||
| conversation_ended_retrigger | No | ||
| include_recording_in_webhook | No | ||
| max_initial_silence_duration | No | ||
| conversation_ended_webhook_url | No | ||
| send_webhook_only_on_completed | No | ||
| conversation_inactivity_timeout | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the creation behavior and important constraints (e.g., knowledgebase_mode requirement). While annotations are minimal, the description adds value beyond schema by explaining conditional logic. 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 extremely concise, consisting of two sentences with no wasted words. It front-loads the purpose and then adds a conditional second sentence. 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?
Given the tool's complexity (57 parameters, nested objects) and the existence of an output schema, the description is adequate for the minimum viable use case but omits many optional parameters and deeper behavioral details. It covers core requirements but lacks completeness for advanced 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 description coverage is low (21%), and the description adds meaning by listing required fields and conditional dependencies. However, with 57 parameters, it only covers a subset, leaving many undocumented. The description compensates partially but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a new AI assistant) and the resource (assistant). It distinguishes from sibling tools like update_assistant and delete_assistant by explicitly focusing on 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 provides explicit conditions for when to use the tool, listing required fields and conditional requirements based on mode. It does not explicitly state when not to use it or offer alternatives, but the conditional logic guides correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_campaignBInspect
Create a new outbound campaign tied to an outbound-capable assistant.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Campaign name (max 255 chars) | |
| timezone | No | ||
| max_retries | No | ||
| allowed_days | No | ||
| assistant_id | Yes | ||
| retry_interval | No | ||
| retry_on_voicemail | No | ||
| max_calls_in_parallel | No | ||
| allowed_hours_end_time | No | H:i, e.g. "17:00" | |
| allowed_hours_start_time | No | H:i, e.g. "09:00" | |
| goal_completion_variable | No | ||
| retry_on_goal_incomplete | No | ||
| mark_complete_when_no_leads | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
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 the prerequisite of an outbound-capable assistant, which is useful but does not disclose other behaviors like default campaign status 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 concise sentence that front-loads the primary action. However, given the tool's complexity (13 parameters), it could benefit from slightly more detail without sacrificing 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?
The description is too brief for a tool with many parameters and a documented output schema. It omits important context such as default values, status upon creation, and the fact that the assistant must already 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?
With schema description coverage at only 23%, the description should compensate by explaining parameters, but it does not. The description mentions no parameters, leaving the agent to infer from the schema which is largely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('outbound campaign'), and a key condition ('tied to an outbound-capable assistant'). This distinguishes it from other create tools like create_assistant or create_conversation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 there any exclusions or prerequisites mentioned. The description implies usage when creating an outbound campaign, but lacks explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_conversationAInspect
Start a new chat session with an assistant (widget=paid, test=free).
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| variables | No | ||
| assistant_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
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 open world. The description adds a cost implication (widget=paid, test=free) but does not disclose other side effects or behaviors beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler words, conveying the essential action and key distinction 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 3 parameters, 0% schema coverage, and an output schema present, the description explains the type distinction but lacks detail on variables and assistant_id. It is minimally adequate for a creation tool given the 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 description coverage is 0%, so description must add meaning. It adds value for the 'type' parameter (widget=paid, test=free), but provides no additional info for 'variables' or 'assistant_id', which remain undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Start' and resource 'a new chat session with an assistant', and distinguishes between widget (paid) and test (free) types, which differentiates it from sibling creation tools like create_assistant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 hint about when to use widget vs test based on paid/free, but does not explicitly state when to use this tool versus alternatives, nor does it mention 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_documentAInspect
Add a website (URL-scraped) document to a knowledge base. File uploads (pdf/txt/docx) must use the Famulor dashboard or a direct multipart/form-data call.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Main URL to scrape (required if links is not set) | |
| name | Yes | Max 255 chars | |
| type | Yes | Only website is supported via MCP | |
| links | No | ||
| description | No | Optional, max 255 chars | |
| knowledgebase_id | Yes | ||
| relative_links_limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond annotations (e.g., only website type supported, file uploads excluded), but does not disclose potential side effects like scraping delays, error handling, or immediate vs. async creation. Annotations already indicate non-readonly and open-world, so 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?
The description is two concise sentences with no extraneous information. It front-loads the core function and immediately clarifies limitations, making it easy for an agent 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) and sibling tools for update/delete, the description provides sufficient context for this creation tool. It covers the main use case and limitations, though it could mention behavior after creation (e.g., confirmation or document object).
Complex tools with many parameters or behaviors need more documentation. 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 explain individual parameters; it only reiterates that 'type' is limited to 'website'. With schema description coverage at 57% (several parameters lack descriptions in schema), the description fails to compensate for these gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Add a website (URL-scraped) document to a knowledge base', specifying the verb (Add) and resource (document to knowledge base), and distinguishes from file uploads which must use the dashboard.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indicates when to use this tool (for website documents) and when not (file uploads require the dashboard). It provides clear context for usage, though it does not list alternative tools for file uploads beyond mentioning the dashboard.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_folderAInspect
Create a folder to group assistants. Assign assistants via the folder_id field on create_assistant / update_assistant.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Folder name (max 255 chars, unique per account) | |
| color | No | Badge color |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
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 or idempotent. The description adds no new behavioral details beyond the schema constraints. For a creation tool, it could mention whether duplicate names are handled or what the response includes, but output schema exists.
Agents need to know what a tool does to the 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 main purpose, no superfluous 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 simplicity of the tool and presence of output schema, the description fully covers what agents need: purpose, usage pattern, and relationship to related 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%, providing complete parameter info. The tool description does not add additional parameter-level context beyond what the schema already 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 action (create), the resource (folder), and its purpose (to group assistants). It distinguishes from sibling tools like create_assistant by explaining that assistants are assigned later via folder_id fields on create_assistant/update_assistant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 that after creating a folder, assistants can be assigned via folder_id on create_assistant/update_assistant. This provides guidance on how to use the tool within the broader workflow, though it does not explicitly list alternatives for grouping other resources.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_knowledgebaseAInspect
Create a new knowledge base.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Max 255 chars | |
| description | No | Optional, max 255 chars |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, openWorldHint=true, etc., and the description doesn't contradict them. However, it doesn't add details like idempotency behavior or duplicate handling, which would be useful.
Agents need to know what a tool does to the 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 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?
For a simple creation tool with an output schema, the description is adequate but could mention that it returns the created knowledge base 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 schema already documents the parameters. The description adds no extra meaning, baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new knowledge base' clearly states the verb (create) and resource (knowledge base), distinguishing it from sibling tools like create_document or create_folder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, or any prerequisites. The description only states the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_labelAInspect
Create a label to tag assistants (e.g. "inbound", "outbound"). Assign via the label_ids field on create_assistant / update_assistant.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Label name (max 255 chars, unique per account) | |
| color | No | Badge color |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
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 provide additional behavioral context beyond creation. It could mention uniqueness constraints or potential errors (e.g., duplicate name). 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 with no extraneous information. The tool's purpose and usage are front-loaded. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With two parameters, annotations, and an output schema, the description adequately covers the tool's purpose and usage. Missing some behavioral details but sufficient 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% with descriptions for both parameters. The description adds minimal value beyond the schema (e.g., 'max 255 chars' is already in 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 'Create a label' and its purpose 'to tag assistants'. It provides examples ('inbound', 'outbound') and distinguishes from sibling tools like create_assistant by focusing on label 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 explains when to use the tool (to create labels for tagging) and hints at how to assign labels via other tools. However, it does not explicitly contrast with update_label or mention 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_leadAInspect
Create a new lead in a campaign. IMPORTANT: variable names come from the associated assistant configuration and are fixed; only their values can be supplied here.
| Name | Required | Description | Default |
|---|---|---|---|
| variables | No | Either an object (key/value pairs matching assistant variables) or an array of such objects. | |
| campaign_id | Yes | ||
| phone_number | Yes | E.164 format, e.g. +491234567890 | |
| allow_dupplicate | No | ||
| secondary_contacts | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-read-only, non-idempotent, non-destructive, and open-world. The description adds crucial context: variable names are fixed by the assistant configuration and only values can be supplied, which 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 focused sentences, front-loaded with purpose, and the IMPORTANT note efficiently conveys a critical constraint without extra verbiage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, the description omits guidance on required parameters (campaign_id, phone_number) and important constraints (e.g., phone_number format, duplicate handling) that are not fully covered by the schema. The tool's complexity demands more thorough 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 40%, and the description adds value by constraining the 'variables' parameter (names fixed, values only). However, other parameters like phone_number, campaign_id, allow_duplicate, and secondary_contacts are not elaborated in the 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 'Create a new lead in a campaign,' specifying the verb ('create') and resource ('lead in a campaign'), distinguishing it from other sibling 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?
No explicit guidance on when to use this tool versus alternatives (e.g., create_conversation or update_lead). Usage is implied by the tool name and resource, but no when-not or alternative references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_mid_call_toolAInspect
Create a new mid-call HTTP tool.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Tool identifier: lowercase letters and underscores, starts with a letter | |
| method | Yes | ||
| schema | No | ||
| headers | No | ||
| timeout | No | Seconds, 1-30 | |
| endpoint | Yes | HTTPS URL to call | |
| description | Yes | When the AI should use it (max 255 chars) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds no behavioral context beyond annotations; annotations already provide readOnlyHint, destructiveHint, idempotentHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, front-loaded with 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?
Output schema exists so return values are covered; but description lacks usage guidelines and behavioral traits for a moderately complex 7-param 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 57%, baseline 3; description adds no parameter explanations beyond what schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Create' and resource 'mid-call HTTP tool', distinguishing it from other create tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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; lacks context on 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_sip_trunkBInspect
Provision a new SIP trunk (extension or DID number).
| Name | Required | Description | Default |
|---|---|---|---|
| sip_address | Yes | SIP server without port | |
| country_code | Yes | ISO 3166-2, e.g. US/GB/DE | |
| phone_number | Yes | Extension (1-15 chars) or E.164 number | |
| sip_password | Yes | Min 3 chars | |
| sip_username | Yes | 3-128 chars | |
| outbound_proxy | No | ||
| sip_trunk_type | Yes | ||
| sip_calling_format | Yes | ||
| allowed_inbound_ips | No | ||
| inbound_authorization_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Descriptions adds minimal behavior beyond stating it creates a SIP trunk. Annotations indicate it's not read-only or idempotent, but no details on side effects, permissions, or rate limits. The description does not contradict annotations but provides little extra 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?
Single, front-loaded sentence with no wasted words. Clearly communicates the tool's 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?
Despite having an output schema, the description doesn't mention return values or success/failure behavior. For a creation tool with 10 parameters and no usage guidance, this is insufficient for complete 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?
Description only hints at sip_trunk_type via 'extension or DID number'. With 50% schema coverage, the description fails to compensate for undocumented parameters. No additional meaning beyond what's in the schema 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 it provisions a new SIP trunk, specifying extension or DID number. The verb 'Provision' and resource 'SIP trunk' are specific, and the tool is well-differentiated from siblings like create_assistant or purchase_phone_number.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 purchase_phone_number. The description only implies usage for SIP trunk creation, but lacks context for exclusion or sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_assistantADestructiveIdempotentInspect
Permanently delete an assistant. Cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'Cannot be undone,' confirming the destructive nature, but this is already indicated by destructiveHint=true. Annotations also include idempotentHint=true, which the description does not reinforce. No additional behavioral context (e.g., cascading effects, authentication needs) 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 only two sentences with no extraneous information. It is front-loaded with the action and its irreversibility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (delete by ID, single required param, output schema exists), the description is nearly complete. It could mention what the output schema returns (e.g., success confirmation), but the lack 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?
The schema has 0% description coverage, so the description carries full burden. However, the single parameter (id) is self-explanatory from the tool name and context. The description does not add any detail (e.g., how to find the id, format), but for a simple integer ID it is minimally adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 resource (assistant), and uses the word 'permanently' to emphasize finality. It is distinct from sibling delete tools targeting other resources like calls, campaigns, 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 guidance is provided on when to use this tool versus alternatives (e.g., other delete tools). There is no mention of prerequisites or conditions, such as requiring the assistant to exist or not to be in use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_callBDestructiveIdempotentInspect
Delete a call record. Cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| call_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'Cannot be undone', reinforcing the already-annotated destructiveHint=true. However, it does not provide additional behavioral details such as required permissions, side effects on related data, or rate limits. The annotations already cover the key safety hint, so the description's contribution is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences, front-loading the action for immediate understanding. Every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 one parameter and annotations present, the description is minimally adequate but lacks details like prerequisites, output behavior, or what happens after deletion. The presence of an output schema could mitigate this, but it is not referenced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should compensate by explaining the 'call_id' parameter. It does not, offering no meaning beyond the schema's type and requirement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('a call record'), differentiating it from other delete tools like 'delete_assistant' or 'delete_campaign' which target different objects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'get_call' for inspection or other delete tools. There is no mention of prerequisites or context for deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_campaignBDestructiveIdempotentInspect
Delete a campaign. Cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true and idempotentHint=true. The description adds 'Cannot be undone,' which echoes the destructive nature but adds little new behavioral context 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 sentence, making it very concise. However, it is arguably too terse, leaving out necessary parameter details. Still, 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 single parameter and existing output schema, the description lacks context on parameter semantics and usage scenarios. While it conveys the basic purpose and irreversibility, it is insufficient for reliable tool 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 description coverage is 0%. The description does not explain the sole parameter 'id' – its format, source, or meaning. For a deletion tool, this is a critical omission.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Delete a campaign.' It is a specific verb-resource combination that distinguishes it from other tools like delete_assistant or delete_call. The addition 'Cannot be undone' reinforces the action's finality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 only when deletion is irreversible, but provides no guidance on when to choose this tool over siblings like delete_assistant or delete_folder. There is no explicit context about prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_documentBDestructiveIdempotentInspect
Delete a document from a knowledge base.
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | ||
| knowledgebase_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and idempotentHint=true, but the description adds no extra behavioral context (e.g., permanence, effect on knowledge base). 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?
Single, concise sentence with no wasted words. Front-loaded with the 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 destructive operation, the description is too terse. It omits side effects, irreversibility, permissions, or confirmation requirements. The presence of an output schema may compensate, but the description itself is 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?
With 0% schema description coverage, the description should have explained the parameters. It only implies their relationship ('from a knowledge base') but fails to define what document_id or knowledgebase_id represent or how to obtain 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 identifies the action ('Delete a document from a knowledge base') with a specific verb and resource, distinguishing it from sibling delete tools for 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?
No guidance provided on when to use this tool versus alternatives (e.g., delete_knowledgebase) or prerequisites. The description lacks contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_folderADestructiveIdempotentInspect
Delete a folder. Assistants inside are NOT deleted — they just become uncategorized.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true. The description adds valuable behavioral context: assistants become uncategorized rather than deleted. This 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?
Two sentences, perfectly concise. The key information is front-loaded. 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 simplicity and the presence of an output schema (not shown), the description covers the core behavior. However, it lacks info on output/return value and doesn't mention any prerequisites beyond the required id.
Complex tools with many parameters or behaviors need more documentation. 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 has one required parameter 'id' (integer) with 0% description coverage. The description does not explain what 'id' represents (e.g., folder ID). The agent must infer its 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 action ('Delete a folder') and distinguishes it from deleting other entities by noting the behavior of assistants inside. This is a specific verb+resource with a clarifying nuance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 deleting folders but does not explicitly guide when to choose this tool over alternatives (e.g., other delete tools). No when-not-to-use or context about prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_knowledgebaseCDestructiveIdempotentInspect
Delete a knowledge base permanently.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
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 'permanently' but does not provide additional behavioral context beyond what annotations offer, such as whether deletion cascades or if there are recovery options.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence, which is efficient. However, it lacks essential details needed for proper tool usage, so it is under-specified rather than optimally 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?
Given the tool has one parameter and an output schema exists, the description should at least explain the parameter's meaning and any return value. It does neither, making it incomplete for an agent to use correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. 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 a required 'id' parameter with no description, and the tool description provides no explanation of what this id represents or how to obtain it. With 0% schema description coverage, the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'delete' and the resource 'knowledge base', adding 'permanently' to emphasize the irreversible nature. This clearly differentiates it from sibling tools like create_knowledgebase or update_knowledgebase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There is no mention of prerequisites, consequences, or conditions that would affect usage, despite several sibling delete tools existing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_labelADestructiveIdempotentInspect
Delete a label. It is removed from all assistants it was assigned to — the assistants themselves are NOT affected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds key behavioral detail beyond annotations: label removed from all assistants but assistants not affected. No contradiction with annotations (destructiveHint, etc.).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with main 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?
Output schema exists so return values not needed. Explains effect on assistants. Lacks details on permissions or error cases, but for a simple delete tool it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only parameter is 'id' (integer). No schema description coverage (0%), but parameter is self-explanatory. Description does not add extra meaning, but given simplicity, minimal expectation met.
Input schemas describe structure but not intent. Descriptions should explain 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: 'Delete a label'. Explains side effect: removed from assistants but assistants unaffected. Distinguishes from sibling delete tools like delete_assistant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: to delete a label. Not explicit about when not to use, but context with sibling tools provides differentiation. Could state alternatives but adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_leadCDestructiveIdempotentInspect
Delete a lead.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and idempotentHint=true, but the description does not add behavioral details beyond 'delete'. It does not contradict annotations but adds minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence, five words) and front-loaded. However, it is too minimal, sacrificing helpful context for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with output schema, the description lacks essential context such as side effects, prerequisites (e.g., lead must exist), or confirmation of deletion. It feels 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?
With 0% schema description coverage, the description fails to explain the meaning of the 'id' parameter. It only states the action, leaving the parameter semantics entirely to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 lead.' clearly states the verb and resource. It is straightforward but does not distinguish from sibling tools like delete_assistant; however, the resource name differentiates it sufficiently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as update_lead or list_leads. There are no contextual cues for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_mid_call_toolBDestructiveIdempotentInspect
Delete a mid-call tool.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and idempotentHint=true. Description adds no behavioral context beyond 'Delete', which is already implied by the name and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is very concise (5 words) and front-loaded. However, it could include a brief explanation of the 'id' parameter to improve 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?
Tool is simple with one parameter and output schema exists, but description does not mention return behavior or effects beyond deletion. Adequate but not 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 0%, but description does not explain the 'id' parameter's semantics or format, leaving the agent without necessary 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?
Description clearly states 'Delete a mid-call tool.' with specific verb and resource, distinguishing it from siblings like create_mid_call_tool and update_mid_call_tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives; no mention of prerequisites, context, 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.
delete_sip_trunkADestructiveIdempotentInspect
Delete a SIP trunk by phone-number ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond the annotations. While destructiveHint and idempotentHint are provided, the description does not elaborate on consequences, irreversibility, or edge cases.
Agents need to know what a tool does to the 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 fluff, directly conveys the tool's purpose and key parameter. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete-by-id operation, the description covers the essential information. The existence of an output schema relieves the description from explaining return values, so it is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to the single parameter by indicating it is a 'phone-number ID', which is not present in the schema (where the parameter is just 'id' integer). This helps the agent understand what value to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'SIP trunk', and specifies the identifier ('by phone-number ID'), distinguishing it from sibling tools like create_sip_trunk, get_sip_trunk, and update_sip_trunk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 or prerequisites. The description simply states the action without any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disable_assistant_conversation_ended_webhookBIdempotentInspect
Disable conversation-ended (chat) webhook.
| Name | Required | Description | Default |
|---|---|---|---|
| assistant_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
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 that it targets the 'conversation-ended (chat)' webhook, providing specific context. However, it does not disclose potential side effects, auth requirements, or error states, leaving gaps 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 sentence, very concise with no filler. It efficiently communicates the core action and resource, earning its place 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?
For a simple one-parameter tool with annotations and an output schema, the description is minimally adequate. It does not explain what a 'conversation-ended webhook' is or what happens upon disabling, but the tool's simplicity reduces the need for extensive 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 0% (no parameter descriptions). The description does not explain the 'assistant_id' parameter, its format, or examples. The only hint is the tool name implying it relates to an assistant, which is insufficient for an agent to correctly invoke with the 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 action: 'Disable conversation-ended (chat) webhook.' It uses a specific verb and resource, and the tool name aligns with sibling tools like 'enable_assistant_conversation_ended_webhook', making its purpose distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention prerequisites, scenarios, or exclusions. The sibling set includes many enable/disable webhook tools, but the description provides no context to differentiate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disable_assistant_inbound_webhookBIdempotentInspect
Disable inbound-call webhook notifications.
| Name | Required | Description | Default |
|---|---|---|---|
| assistant_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, destructiveHint, openWorldHint. Description adds minimal behavioral context beyond stating the action. 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, zero waste. Front-loaded with essential action and object. 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?
For a simple toggle tool with one required param and annotations, the description is adequate but incomplete. Lacks info on output, error conditions, or distinction from similar 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?
Only one parameter (assistant_id) with no schema description. Description implies the parameter identifies the assistant whose webhook is disabled, but does not explicitly explain it. Baseline 3 due to simple parameter count.
Input schemas describe structure but not intent. Descriptions should explain 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 'Disable inbound-call webhook notifications', which is a specific verb-resource combination. It distinguishes from siblings like 'enable_assistant_inbound_webhook' and 'disable_assistant_webhook'. However, it could be more precise by specifying 'for an assistant'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 usage guidelines provided. Does not mention when to use this vs alternatives (e.g., enable_assistant_inbound_webhook, disable_assistant_webhook), nor any prerequisites or consequences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disable_assistant_webhookAIdempotentInspect
Disable the post-call webhook for an assistant.
| Name | Required | Description | Default |
|---|---|---|---|
| assistant_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false, idempotentHint=true, destructiveHint=false. Description adds specificity about which webhook (post-call) and implies an update operation. No contradictions. 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?
Single sentence, directly to the point, no superfluous words. 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?
Given the tool's simplicity (one parameter, annotations present, output schema exists), the description adequately covers the basic purpose and differentiates from siblings. Minor gap: no mention of assistant existence prerequisite, but generally acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%; the only parameter 'assistant_id' is not explained in the description. The name is self-explanatory, but the description does not compensate for the lack of schema 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 the action (disable) and specific resource (post-call webhook for an assistant). Distinguishes from sibling tools disable_assistant_conversation_ended_webhook and disable_assistant_inbound_webhook by explicitly naming 'post-call' webhook.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 the other webhook disable tools. Does not mention prerequisites or context, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disable_conversation_aiAIdempotentInspect
Disable AI replies for a conversation so a human can take over.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
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 'so a human can take over' adds context about the purpose but does not disclose further behavioral traits such as reversibility or impact on future messages. Since annotations cover safety profile, the description adds marginal 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 conveys the core function without any unnecessary words or fluff. 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 simplicity (one required parameter, no enums, output schema exists), the description is adequate. It covers the essential purpose and context for human takeover, though it could briefly mention the parameter role.
Complex tools with many parameters or behaviors need more documentation. 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 (uuid) is required, but schema coverage is 0%. The description does not explain that uuid refers to a conversation UUID, which is implied by context and parameter name. For a single parameter, baseline is 3; more explicit guidance would be better.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool disables AI replies for a conversation, with the specific purpose of allowing a human to take over. It uses a specific verb and resource, and naturally distinguishes itself from the sibling tool enable_conversation_ai.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (when a human needs to take over) but does not explicitly state when not to use or mention alternatives. The sibling tool enable_conversation_ai provides implicit guidance, but the description lacks explicit exclusionary language.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_assistant_conversation_ended_webhookBIdempotentInspect
Enable conversation-ended (chat) webhook for an assistant.
| Name | Required | Description | Default |
|---|---|---|---|
| webhook_url | Yes | ||
| assistant_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotent and not destructive. The description adds that it is for chat conversations, but does not disclose potential side effects, authentication needs, or error handling. Annotations carry most of 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?
The description is a single concise sentence that directly conveys the purpose without extraneous 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 simplicity of the tool and the presence of an output schema, the description is minimally adequate but omits important context such as prerequisites (e.g., assistant must exist) and the relationship to other webhook 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 0% and the description does not explain the meaning or format of the two required parameters (assistant_id and webhook_url), leaving the agent with no additional semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Enable', the specific resource 'conversation-ended webhook', and the scope 'for an assistant', distinguishing it from sibling webhook tools like 'enable_assistant_inbound_webhook'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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., inbound webhook), nor are there any prerequisites or conditions for usage mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_assistant_inbound_webhookBIdempotentInspect
Enable inbound-call webhook notifications for an assistant.
| Name | Required | Description | Default |
|---|---|---|---|
| webhook_url | Yes | HTTPS URL that receives the webhook payload | |
| assistant_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint and destructiveHint. The description adds no new behavioral context (e.g., authentication needs, effects on existing webhooks, 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?
Single, efficient sentence that is front-loaded 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?
Despite an output schema existing, the description lacks prerequisites (e.g., assistant must exist), error conditions, and explanation of what 'enable' entails. It is too sparse for a complete 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?
With only 50% schema description coverage, the description does not add meaning for the 'assistant_id' parameter (undocumented in schema and description). The 'webhook_url' parameter is already 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 action ('enable') and the resource ('inbound-call webhook notifications for an assistant'), distinguishing it from sibling tools like enable_assistant_conversation_ended_webhook.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 webhook enable/disable tools. Sibling tools include similar webhook toggles, but the description does not clarify the specific scenario for this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_conversation_aiAIdempotentInspect
Re-enable AI replies for a conversation after a human takeover.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context about human takeover but does not disclose additional behavioral traits beyond the annotations (idempotentHint=true, destructiveHint=false). With annotations already present, the description 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 a single, concise sentence that is front-loaded and free of unnecessary words. It efficiently conveys 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 the tool's simplicity (one parameter, output schema exists), the description is largely adequate. However, it could mention behavior when the conversation is not in human-takeover state or if AI replies are already enabled.
Complex tools with many parameters or behaviors need more documentation. 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 'uuid' is required but has no description in the schema (0% coverage). The tool description does not explain what 'uuid' represents, assuming context from the tool name. The description fails to compensate for the missing schema 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 the verb 're-enable' and the resource 'AI replies for a conversation', specifying the context 'after a human takeover'. It distinguishes from the sibling 'disable_conversation_ai' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 ('after a human takeover') but does not provide explicit guidance on when not to use or suggest alternatives. There is no mention of 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.
generate_ai_replyBInspect
Generate a context-aware AI reply for a customer message. The system keeps conversation state per customer_identifier (e.g. phone, email, CRM ID).
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | ||
| variables | No | ||
| assistant_id | Yes | ||
| customer_identifier | Yes | Stable per-customer ID; max 255 chars |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
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, idempotent, or destructive. The description adds that the system keeps state per customer_identifier, which is behavioral context beyond annotations. However, it does not disclose whether the reply is stored or side effects occur, so transparency is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence provides the core purpose, and the second adds important context. It is appropriately sized but could be slightly more structured (e.g., bullet points).
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 4 parameters and an output schema, the description is somewhat complete: it covers the main action and state context but misses describing assistant_id and variables. Given the presence of output schema for return values, the description need not cover that, but it still lacks guidance on the purpose of all 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 only 25% (customer_identifier only). The description adds context for customer_identifier by explaining its role in state management, but it does not clarify assistant_id or the variables object. Given the low coverage, the description should compensate more but falls short.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a context-aware AI reply for a customer message, with a specific verb and resource. It also mentions state per customer_identifier. However, it does not explicitly contrast with sibling tools like send_message, so it loses one point for 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 implies usage by stating that conversation state is kept per customer_identifier, which guides the agent to use the same identifier for conversation continuity. However, it does not provide explicit when-to-use or when-not-to-use guidance nor mention alternative tools, so it is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assistantsARead-onlyIdempotentInspect
List all AI assistants on the Famulor account (paginated). Returns the assistant configurations including their fixed variable names.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| per_page | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| data | No | |
| from | No | |
| total | No | |
| per_page | No | |
| last_page | No | |
| current_page | No | |
| next_page_url | No | |
| prev_page_url | No |
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 disclosing pagination and return of 'fixed variable names', 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?
Single sentence that front-loads the primary purpose verb and resource, 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 an output schema exists, the description covers return content (configurations, variable names) and pagination. Minor gaps like ordering or limits are acceptable for a list 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 0%, yet the description only mentions 'paginated' without explaining page/per_page semantics, defaults, or behavior. This is insufficient compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'all AI assistants on the Famulor account' with pagination, and distinguishes from siblings like get_outbound_assistants by specifying 'all'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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., get_outbound_assistants). The description implies usage for listing all assistants, but lacks when-not scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_callARead-onlyIdempotentInspect
Retrieve a single call by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| call_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description does not contradict these and adds minimal context beyond the structured data. It could mention that it is a simple lookup with no side effects, but the annotations already convey safety.
Agents need to know what a tool does to the 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 extraneous words. It earns its place by being maximally 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?
For a simple one-parameter retrieval tool with an output schema, the description is mostly adequate. It lacks details about the return format, but the presence of an output schema partially compensates. Could mention that it requires a valid call ID.
Complex tools with many parameters or behaviors need more documentation. 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 has 0% description coverage for the only parameter ('call_id'). The description fails to explain the format, example, or purpose of the parameter beyond what is implied by 'by ID'. Given low schema coverage, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Retrieve' and clearly identifies the resource as 'a single call by ID'. It is concise and distinguishes itself from sibling tools like 'list_calls' or 'get_conversation'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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., list_calls for multiple calls or get_conversation for conversation objects). No when-not-to-use or prerequisite information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conversationBRead-onlyIdempotentInspect
Get the full message history of a chat conversation by UUID.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, indicating a safe, read-only operation. The description adds 'full message history' but no additional behavioral traits (e.g., rate limits, auth requirements, or side effects). Since annotations cover the safety profile, the description meets a baseline but adds little value 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?
The description is a single sentence with no wasted words. It is front-loaded with the verb and resource, making it immediately actionable. 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?
Given the tool's simplicity (one parameter, read-only, no destructive actions) and the presence of an output schema (which describes the return value), the description is mostly complete. It could mention that the UUID must correspond to an existing conversation, but that is implicit. For a basic retrieval tool, this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for the uuid parameter. The description only mentions 'by UUID', which essentially restates the parameter name and provides no additional meaning (e.g., format, source, or constraints). With zero schema coverage, the description fails to compensate and offers negligible value for 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 retrieves the full message history of a chat conversation by UUID. The verb 'Get' is specific, and the resource 'conversation' is identified, with 'full message history' adding detail. This distinguishes it from sibling tools like list_conversations (which lists summaries) and other 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 provides no explicit guidance on when to use this tool versus alternatives like list_conversations or other get tools. It implicitly requires a UUID (from the schema), but there is no mention of use cases, prerequisites, or when not to use it. This lack of context reduces usability for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_documentBRead-onlyIdempotentInspect
Get a single document by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | ||
| knowledgebase_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds no new behavioral context beyond 'by ID', which is already inferable from the schema. 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?
The description is extremely concise at five words, front-loaded with key information, and every word is necessary. No redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, return values need not be described. However, the description omits how the two IDs relate and any error cases, leaving some gaps despite the tool's low complexity. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'ID' but does not clarify which of the two required parameters (document_id, knowledgebase_id) that refers to, nor their meanings. With 0% schema description coverage, the description should compensate but fails to add meaningful detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a single document by ID,' specifying the verb 'get' and the resource 'document' with the method 'by ID'. It distinguishes from sibling tools like list_documents and create_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?
The description implies usage for retrieving a single document, contrasting with list_documents for multiple documents, but it does not explicitly state when to use or not use this tool, nor mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_knowledgebaseARead-onlyIdempotentInspect
Get a knowledge base by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds no additional behavioral context beyond 'get by ID', and 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 unnecessary words. Could be slightly expanded for clarity without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return value details are not required. However, the description lacks any contextual details such as prerequisites or success conditions, but is adequate for a simple retrieval operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description only mentions 'by ID' without elaborating on the `id` parameter's meaning (e.g., it's a unique numeric identifier). Fails to compensate for lack of 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?
Description clearly states 'Get a knowledge base by ID', specifying the action and resource, and implicitly distinguishes from siblings like create, delete, update, and 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 explicit guidelines on when to use this tool versus alternatives, but the simple retrieval nature makes usage context obvious when an ID is known.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_languagesARead-onlyIdempotentInspect
List all supported assistant languages.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not add behavioral traits beyond what annotations already provide. Annotations indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description's 'list all' aligns with read-only behavior. No contradiction, but no 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 concise sentence that is front-loaded with the key information. Every word is necessary and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and is a simple read operation, the description adequately specifies the output scope (all supported assistant languages). An output schema exists, so return values do not need to be described. Complete 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?
There are no parameters, so the schema coverage is 100% by default. The description does not need to add parameter information. Baseline for zero parameters is 4, and the description fulfills the requirement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (supported assistant languages). It is a specific verb+resource combination that distinguishes it from all sibling tools, none of which list languages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 usage guidance is provided. The description does not indicate when to use this tool versus alternatives, nor does it specify any prerequisites or context. For a simple list operation, minimal guidance is acceptable but still lacking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_meARead-onlyIdempotentInspect
Get the authenticated Famulor user profile, including total balance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| No | ||
| total_balance | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, openWorldHint, idempotentHint, destructiveHint. The description adds the detail 'including total balance', which gives additional behavioral context about what the tool returns 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?
A single concise sentence that includes the essential action and key output detail 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?
The tool is simple with no parameters and an output schema exists. The description gives enough information (profile and balance) for the agent to understand the tool's purpose fully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema coverage is trivially 100%. The description does not need to explain parameters, and 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 clearly states the verb 'get' and the resource 'authenticated Famulor user profile', and adds the specific detail 'including total balance'. This distinguishes it from any sibling tools, as there is no other profile-related tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Although no explicit when-to-use or exclusions are given, the tool has zero parameters and no similar siblings, making its use case implicit. The description is sufficiently clear for the agent to understand when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mid_call_toolBRead-onlyIdempotentInspect
Get a single mid-call tool by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true. The description does not contradict these but adds no extra 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 a single sentence with no unnecessary words. However, it could be slightly expanded to include more details without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema and annotations, the description is minimally complete for a simple get-by-ID tool. However, the lack of parameter semantics and usage guidance reduces 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 parameter 'id' has no description in schema (0% coverage) and the description does not explain its meaning or usage. The agent must infer from 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 tool retrieves a single mid-call tool by ID, using specific verb 'Get' and resource 'mid-call tool'. It effectively distinguishes from siblings like list_mid_call_tools, create_mid_call_tool, 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 guidance is provided on when to use this tool versus alternatives (e.g., list_mid_call_tool for multiple tools). No prerequisites or context are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_modelsARead-onlyIdempotentInspect
List available LLM / multimodal / dualplex model IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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's burden is lower. The description adds transparency by specifying that the tool lists model IDs and enumerates the categories (LLM, multimodal, dualplex), which provides valuable 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, clear sentence with no wasted words. It is appropriately sized and front-loaded with the verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter with enum, output schema exists), the description covers the essential purpose and the types of models. It does not mention the optionality of the parameter, but that is evident from the schema. The description is complete enough for an agent to understand the tool's scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must add parameter meaning. It mentions the three types (LLM, multimodal, dualplex) which match the enum values, giving the user context. However, it does not explain the semantics of each type or that the parameter is optional, which the schema indicates. The addition is moderate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' and clearly identifies the resource as 'available LLM / multimodal / dualplex model IDs.' This distinguishes the tool from sibling tools that list other resources (e.g., calls, campaigns, documents).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 available model IDs, but does not explicitly state when to use it versus alternatives, nor does it provide any when-not-to-use guidance. The context of sibling tools provides implicit differentiation, but the description itself offers no explicit usage guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_outbound_assistantsARead-onlyIdempotentInspect
List all outbound-capable assistants.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. Description adds no further behavioral details beyond stating 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?
Single sentence with no extraneous words, 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?
Given no parameters and presence of output schema, the description is adequate. However, it could briefly clarify what 'outbound-capable' means (e.g., enabled for outbound calls), 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?
No parameters; baseline is 4 per rule for 0-parameter tools. 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?
Description uses specific verb 'list' and resource 'outbound-capable assistants', clearly distinguishing from sibling 'get_assistants' which likely lists all assistants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly for listing outbound-capable assistants, but no explicit when-not or alternatives provided. However, context from sibling tools makes the usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_phone_numbersARead-onlyIdempotentInspect
List phone numbers eligible to be attached to an assistant (filter by inbound/outbound).
| Name | Required | Description | Default |
|---|---|---|---|
| type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. Description adds the eligibility context and filter 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?
Single sentence, front-loaded with verb 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?
Simple read-only list tool with output schema available; description covers purpose and filter. Annotations handle safety profiles. Could mention pagination but not critical 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 has one enum parameter with 0% description coverage. Description explains the filter by inbound/outbound, adding meaning to the 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?
Description clearly states 'List phone numbers eligible to be attached to an assistant' with a specific verb and resource. It distinguishes from siblings like 'list_all_phone_numbers' by adding the eligibility condition and filter capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States when to use (eligible numbers for assistants) and mentions filter option. Does not explicitly exclude alternatives like 'list_all_phone_numbers' or 'search_phone_numbers', but the context of eligibility implies scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sip_trunkCRead-onlyIdempotentInspect
Get a SIP trunk by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is read-only (readOnlyHint=true) and idempotent (idempotentHint=true), but the description adds no behavioral details such as error responses for invalid IDs or the structure of the returned object. It fails to leverage the opportunity to provide 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, well-formed sentence of six words. It is concise and front-loaded, with no 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?
Given the tool's simplicity (single required ID, read-only operation) and the presence of an output schema and comprehensive annotations, the description is minimally adequate. However, it could mention that it returns the full trunk object or that the ID must correspond to an existing trunk, which 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?
With 0% schema description coverage, the description carries the full burden for clarifying the 'id' parameter. It only implies the parameter is the trunk identifier via 'by ID,' but does not specify format, required status (though schema marks it required), or constraints. The schema already defines it as a required integer, so the description adds minimal 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 that the tool retrieves a SIP trunk by ID, using the specific verb 'Get' and the resource 'SIP trunk.' It distinguishes from sibling tools like 'list_sip_trunks' (which retrieves multiple) and 'create_sip_trunk' (which creates), though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 offers no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., requiring an existing ID) or contrast with 'list_sip_trunks' for bulk retrieval. The agent must infer usage context 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.
get_synthesizer_providersARead-onlyIdempotentInspect
List custom TTS providers selectable on an assistant.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 that these are 'custom' providers selectable on an assistant, clarifying scope. No behavioral contradictions or missing disclosures.
Agents need to know what a tool does to the 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 redundant words. Every word is necessary and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, comprehensive annotations, and an existing output schema, the description is complete. It tells the agent exactly what the tool does with 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?
The tool has zero parameters, so the schema provides full coverage. The description adds no param-specific info, but the baseline is 4 for zero-param tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'custom TTS providers', with the specific context 'selectable on an assistant'. It distinguishes from sibling tools like get_voices or get_models by specifying TTS providers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 that this tool lists TTS providers available for selection on an assistant, implying usage when configuring an assistant's TTS settings. No exclusions or alternatives are needed given the tool's simplicity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transcriber_providersARead-onlyIdempotentInspect
List custom STT providers selectable on a pipeline assistant.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, ensuring the agent knows it is safe. The description adds context about providers being 'selectable on a pipeline assistant', which is useful, but does not disclose additional behaviors like pagination or filtering limitations.
Agents need to know what a tool does to the 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 9 words, highly concise and front-loaded. It contains no fluff but could potentially add more value 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 zero parameters, comprehensive annotations, and an existing output schema, the description is sufficiently complete for a simple list tool. It covers the basic 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?
There are zero parameters, so the schema coverage is 100% by default. The description adds no parameter information, but none is needed. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list', the resource 'custom STT providers', and the context 'selectable on a pipeline assistant'. It is specific and distinguishes from sibling mutation tools, though it does not explicitly contrast with 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 implied use case is retrieving available STT providers for pipeline assistant configuration, but no explicit guidance on when to use this vs alternatives or when not to use it is provided. The simple nature reduces the need, but guidance is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_voicesBRead-onlyIdempotentInspect
List voices compatible with a given engine mode and optional language.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| language_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, etc. The description adds minimal behavioral context beyond repeating the input schema. It does not explain edge cases or result 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?
Extremely concise, one sentence, no unnecessary words. Front-loaded with the action and key parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 list tool with output schema present, but does not clarify parameter requirements or result format. Could mention that mode is needed or that voices are for TTS.
Complex tools with many parameters or behaviors need more documentation. 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% description coverage. The description provides minimal but helpful context (mode is 'engine mode', language is optional), but does not explain what language_id represents or that mode is implied 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 clearly states the verb 'List' and the resource 'voices', with specific filtering by engine mode and optional language. This distinguishes it from sibling tools like get_languages, get_models, 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 guidance on when to use this tool versus alternatives like get_models or synthesizer-related tools. The description offers no 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_whatsapp_sendersARead-onlyIdempotentInspect
List WhatsApp Business senders. status defaults to "online" — pass "all" to see all.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate read-only, idempotent, non-destructive behavior. The description adds transparency about the default status filtering, which goes beyond annotations and helps the agent understand the tool's default 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?
The description is extremely concise: two short sentences with no fluff. Every word adds value, specifying the default and the override.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations cover safety, the description is adequate but minimal. It does not explain what a sender object contains or any other operational details, relying heavily on the 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?
With 0% schema description coverage, the description provides necessary meaning for the 'status' parameter, noting defaults and the 'all' option. However, it does not enumerate all possible values or behavior for other inputs, leaving ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('WhatsApp Business senders'), and provides specific default behavior for the status parameter. The tool name and title reinforce this clarity, making it 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 explains the default 'online' filter and how to get all senders, which is helpful for parameter usage. However, it does not provide guidance on when to use this tool versus alternative list tools or other WhatsApp-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_whatsapp_session_statusARead-onlyIdempotentInspect
Check whether a 24h messaging window is open for a recipient.
| Name | Required | Description | Default |
|---|---|---|---|
| sender_id | Yes | ||
| recipient_phone | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which tell the agent it is a safe, idempotent read operation. The description adds that it checks a 24-hour window, which provides useful context beyond annotations. However, it does not mention the openWorldHint nature or any potential dynamic 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, clear sentence with no unnecessary words. It is front-loaded with the core purpose and efficiently conveys the tool's 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's simplicity, the description covers the essential purpose. It has an output schema, so return values need not be described. However, it could mention prerequisites like being part of the WhatsApp Business API or requiring a valid sender, but these are implied by the tool's 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 description coverage is 0%, and the description does not explain the parameters (sender_id and recipient_phone). While the parameter names are somewhat self-explanatory, the description fails to add semantic meaning or clarify expected formats (e.g., phone number format). This is a significant gap for a tool with only two parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool checks whether a 24-hour messaging window is open for a recipient, using a specific verb and resource. It distinguishes itself from siblings like send_whatsapp_freeform and send_whatsapp_template, which are for sending messages rather than checking session 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?
Usage is implied (e.g., before sending a WhatsApp message), but the description does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or prerequisites. The context of siblings suggests it's a prerequisite check, but no direct 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_whatsapp_templatesARead-onlyIdempotentInspect
List approved templates for a WhatsApp sender (status defaults to "approved").
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| sender_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by specifying that the default status filter is 'approved', which is not present in the input schema. Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering safety and idempotency. The description complements these with a concrete default 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, front-loaded sentence that conveys the essential action and default filter. Every word adds value, with 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 presence of an output schema (which documents return structure), the description adequately covers the main purpose and default filter. However, it omits details like pagination behavior or whether all templates are returned, which are useful for a list 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?
The input schema has 0% description coverage, placing full burden on the description. The description only mentions the default for 'status' but does not explain the purpose of 'sender_id' or list acceptable values for 'status'. This is insufficient for a tool with two parameters and no 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 verb 'List' and the resource 'approved templates for a WhatsApp sender', which directly matches the tool name. It also provides a key detail about the default status filter, which distinguishes this from related tools like get_whatsapp_senders or send_whatsapp_template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 through the default status filter, but does not explicitly state when to use this tool versus alternatives like send_whatsapp_template or get_whatsapp_senders. 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_all_phone_numbersARead-onlyIdempotentInspect
List every phone number on the account (regardless of SMS or subscription status).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, not destructive. The description adds the detail that results include all numbers regardless of status, which is extra 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, no filler, clearly front-loads the action and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 robust annotations and output schema, the description provides sufficient context: exhaustive listing with no hidden 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?
With no parameters, the description must add meaning. It successfully indicates the scope ('every phone number', 'regardless of status'), compensating for the empty 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 lists every phone number on the account, emphasizing comprehensiveness regardless of SMS or subscription status. This distinguishes it from siblings like get_phone_numbers or search_phone_numbers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 for full inventory listing when no filtering is needed. It does not explicitly name alternatives, but the scope is clear. For filtered results, other tools exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_callsBRead-onlyIdempotentInspect
List calls with pagination and optional assistant filter.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| per_page | No | ||
| assistant_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| data | No | |
| from | No | |
| total | No | |
| per_page | No | |
| last_page | No | |
| current_page | No | |
| next_page_url | No | |
| prev_page_url | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds no additional behavioral context beyond what the parameters imply (pagination, filtering). No side effects, rate limits, or response format details are mentioned.
Agents need to know what a tool does to the 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 short and front-loaded with the action. However, it could be slightly more informative without becoming verbose, such as specifying pagination defaults.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (list with pagination and one filter), the description is adequate but minimal. Output schema exists, so return values aren't needed. Missing details on pagination limits, ordering, or filtering 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 description coverage is 0%. The description only mentions 'pagination' and 'optional assistant filter' without specifying default values, formats, or behavior for page/per_page/assistant_id. This does not compensate for the lack of 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 'List calls' with specific features: pagination and optional assistant filter. This distinguishes it from sibling tools like get_call (single call) and other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through its name and mention of pagination/filter, but it does not explicitly state when to use vs alternatives like get_call or other list tools. 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.
list_campaignsARead-onlyIdempotentInspect
List all outbound calling campaigns.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 the scope 'outbound calling' but does not disclose additional behavioral traits like pagination, sorting, or limits, which are not covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 5 words, conveying the tool's purpose without waste. It is front-loaded and 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 no parameters and an existing output schema, the description is adequate. However, it could mention that it returns a list of campaign objects to 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?
There are no parameters, and schema description coverage is 100%, so the description does not need to add parameter information. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'List all outbound calling campaigns,' which is a specific verb+resource combination. It clearly distinguishes from create, delete, update, and other campaign-related tools 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 guidance is provided on when to use this tool vs alternatives such as list_calls or other list operations. The description does not mention use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_conversationsCRead-onlyIdempotentInspect
List conversations across your assistants with cursor pagination and filters.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| cursor | No | ||
| per_page | No | ||
| assistant_id | No | ||
| customer_phone | No | ||
| external_identifier | No | ||
| whatsapp_sender_phone | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| data | No | |
| from | No | |
| total | No | |
| per_page | No | |
| last_page | No | |
| current_page | No | |
| next_page_url | No | |
| prev_page_url | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the tool's safety profile is clear. The description adds that it uses 'cursor pagination and filters', which is useful but does not disclose specific behaviors like default ordering, rate limits, or response structure. With annotations covering the core behavioral traits, 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 a single clear sentence with no redundancy. It efficiently conveys the core action and key features. Could potentially be more informative without becoming verbose, but it is not overly terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 return values are documented elsewhere. However, the description does not explain default behavior when parameters are omitted, how filters combine, or whether pagination is mandatory. For a tool with 7 optional parameters and moderate complexity, the description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no parameter descriptions in the schema). The description mentions 'filters' generically but does not explain individual parameters like cursor, per_page, assistant_id, customer_phone, etc. With 7 parameters and no schema descriptions, the description should compensate but largely fails to add 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 'List conversations' with a specific verb and resource, and mentions cursor pagination and filters. It distinguishes from sibling tools by focusing on conversations, though it doesn't explicitly differentiate from other list tools like list_calls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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_calls or get_conversation. It only states what it does, leaving the agent to infer usage context without explicit boundaries or recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_documentsCRead-onlyIdempotentInspect
List documents in a knowledge base.
| Name | Required | Description | Default |
|---|---|---|---|
| knowledgebase_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes |
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 should add extra behavioral context (e.g., permissions, error handling, or whether the result is mutable). The description simply reiterates the basic purpose without any additional 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 a single sentence, which is concise. However, it lacks structure and essential details, making it under-specified. It could be expanded without sacrificing 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 tool has one parameter, has annotations, and an output schema (not shown), the description should at least mention what the output contains or any limitations (e.g., pagination). The description is too brief to be considered complete for an AI agent to use correctly without additional 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?
The schema has 0% description coverage for the only parameter 'knowledgebase_id'. The description does not explain that this parameter identifies which knowledge base to list documents from, nor does it provide any format or constraints. With such low schema coverage, the description must compensate but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'documents', and scopes it to 'in a knowledge base'. This distinguishes it from sibling tools like 'get_document' (single document) and 'create_document' (create). However, it does not specify whether pagination or ordering is applied, which would add further clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 contrast with 'get_document' for retrieving a single document, nor does it mention prerequisites like the knowledge base must exist. 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.
list_foldersARead-onlyIdempotentInspect
List assistant folders (paginated), each with its assistants_count. Folders group assistants, e.g. per customer or brand; an assistant belongs to at most one folder.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| per_page | No | 1-100, default 15 |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| data | No | |
| from | No | |
| total | No | |
| per_page | No | |
| last_page | No | |
| current_page | No | |
| next_page_url | No | |
| prev_page_url | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, etc. Description adds pagination behavior and that it returns assistants_count, which is beyond annotation. 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 purpose and pagination. Every sentence adds value. 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?
With output schema present, description covers key points: what it returns (folders with assistants_count), pagination, and folder concept. Could mention default values for page/per_page, but overall complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (per_page has description, page does not). Description mentions paginated but adds no detail on page or per_page semantics beyond schema. Could be improved.
Input schemas describe structure but not intent. Descriptions should explain 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 lists assistant folders, is paginated, and returns assistants_count. Explains folder grouping and constraint (assistant belongs to at most one folder). Distinguishes from sibling tools like create_folder, delete_folder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. Pagination and return fields are described, but no guidance on when to prefer over get_folder or other list tools. Implicit from context 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_knowledgebasesARead-onlyIdempotentInspect
List all knowledge bases on the account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, which fully cover the behavioral profile. The description adds minimal value by stating 'on the account' but does not disclose any additional traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is front-loaded with the verb 'List' and immediately identifies the 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 the simple nature of the tool (list all, no params) and the presence of an output schema (not shown but signaled), the description is sufficient. However, it could mention pagination or ordering if relevant.
Complex tools with many parameters or behaviors need more documentation. 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 schema covers everything. The description adds no parameter-specific meaning, which is acceptable per guidelines (0 parameters = baseline 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 tools action (list) and resource (knowledge bases) and scope (on the account). It effectively distinguishes from siblings like get_knowledgebase (single) and create/delete/update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing all knowledge bases but does not explicitly mention when to use alternatives (e.g., get_knowledgebase for a specific one). No when-not 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.
list_labelsARead-onlyIdempotentInspect
List assistant labels (paginated), each with its assistants_count. Labels are tags; an assistant can carry multiple labels across folders.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| per_page | No | 1-100, default 15 |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| data | No | |
| from | No | |
| total | No | |
| per_page | No | |
| last_page | No | |
| current_page | No | |
| next_page_url | No | |
| prev_page_url | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, openWorld, idempotent, and non-destructive. The description adds useful context: pagination, assistants_count, and the tag concept with multi-label across folders. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the purpose and add meaningful context without waste. 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?
With an output schema present, return values are not required in description. However, missing details like default pagination, sorting, and lack of any filtering options leave the description adequate but not complete for a list 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 50% (per_page has a description, page does not). The description adds no parameter meaning beyond the schema, failing to compensate for the missing schema 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 lists assistant labels with their assistants_count, and defines labels as tags that can be carried across folders. This distinguishes it from sibling tools like create_label or update_label.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 all labels but lacks explicit guidance on when to use this tool versus alternatives like search or filter. No when-not 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.
list_leadsBRead-onlyIdempotentInspect
List leads with pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| per_page | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| data | No | |
| from | No | |
| total | No | |
| per_page | No | |
| last_page | No | |
| current_page | No | |
| next_page_url | No | |
| prev_page_url | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds pagination detail, but does not disclose additional behavioral traits like sorting or filtering.
Agents need to know what a tool does to the 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 waste. However, it could be expanded slightly to improve clarity without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists and annotations are rich, the description is minimally adequate. Lacks details on filtering or sorting, but output schema may 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?
With 0% schema description coverage, the description should compensate. It only implies page and per_page are for pagination, but does not explain their meaning, defaults, 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 verb 'List' and resource 'leads', and mentions pagination. It distinguishes from sibling CRUD tools like create_lead, delete_lead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 list tools). No mention of pagination best practices or common usage patterns.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_mid_call_toolsARead-onlyIdempotentInspect
List mid-call tools (HTTP integrations callable by an assistant during a call).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint, idempotentHint, and destructiveHint. The description adds context that mid-call tools are HTTP integrations usable during calls, but does not disclose any additional behavioral traits like pagination, ordering, or limits. Given the strong annotation coverage, the marginal gain is moderate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 14-word sentence that is front-loaded and free of extraneous information. Every word contributes to 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 the tool's simplicity (no parameters, robust annotations, and an output schema), the description adequately covers the essential context. It lacks mention of any filtering or sorting options, but for a list-all tool, this is minor and likely filled by the 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?
With 0 parameters and 100% schema description coverage, the schema already fully documents the input. The description adds no parameter-specific meaning, but none is needed. 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 'List' and the resource 'mid-call tools', with a concise parenthetical explaining they are 'HTTP integrations callable by an assistant during a call'. It distinguishes from sibling tools like get_mid_call_tool (single tool) and create/update/delete variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 over siblings. For example, it does not contrast with get_mid_call_tool or list other resources, leaving the agent to infer usage context without explicit when-to-use or when-not-to-use information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sip_trunksARead-onlyIdempotentInspect
List all SIP trunks on the account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes |
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 no additional behavioral context such as pagination, rate limits, or response shape.
Agents need to know what a tool does to the 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 fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with safe annotations and an output schema, the description covers the essential purpose. It could optionally mention the return type, but completeness is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With no parameters and 100% schema coverage, the baseline is 4. The description adds no parameter-level detail, which is acceptable given the trivial 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 all' and the resource 'SIP trunks' with scope 'on the account.' It is specific and distinguishes from 'get_sip_trunk' which retrieves a single trunk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the purpose is clear, the description does not explicitly state when to prefer this tool over siblings like 'get_sip_trunk.' The guidance is implied but not articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_callBInspect
Initiate an outbound AI phone call with a configured assistant.
| Name | Required | Description | Default |
|---|---|---|---|
| variables | No | ||
| assistant_id | Yes | Assistant UUID or ID | |
| phone_number | Yes | E.164-formatted destination number |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are sparse (no destructiveHint, readOnlyHint false). Description only says 'initiate a call' without detailing behavioral traits like cost, duration, or that the call creates a conversation. 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, no waste. Front-loaded with action. Could be more detailed but remains 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?
Output schema exists but not referenced. No mention of return value, errors, or required permissions. For a complex action with nested object and side effects, description lacks 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 covers 67% of parameters with descriptions. Description does not add extra meaning beyond schema. The 'variables' parameter lacks schema description and is not explained in tool 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?
Description states 'Initiate an outbound AI phone call with a configured assistant.' Verb 'initiate' and resource 'outbound AI phone call' are specific. Distinct from siblings like 'create_conversation' or 'send_message'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 send_message or create_conversation. No mention of prerequisites (e.g., assistant must be configured, phone number valid).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
purchase_phone_numberAInspect
Purchase a phone number returned by search_phone_numbers (monthly subscription).
| Name | Required | Description | Default |
|---|---|---|---|
| phone_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read, non-destructive mutation. The description adds 'monthly subscription' implying recurring cost, but lacks details on authentication, confirmation, or error states.
Agents need to know what a tool does to the 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 concise sentence that front-loads the verb and resource. Every word is meaningful with no wasted 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?
Tool has output schema, so return values are covered. Complexity is low with one parameter, but the description lacks parameter format details and behavioral depth (e.g., prerequisites like having an account balance). Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It only mentions 'phone number' without specifying format (e.g., E.164) or that it must be exactly as returned by search_phone_numbers. Minimal guidance beyond the parameter name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'purchase' and the resource 'phone number', and specifies it is for numbers returned by a sibling tool. It distinguishes from other tools like 'search_phone_numbers' and 'release_phone_number'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 implicitly indicates when to use (after searching), but does not explicitly state when not to use or provide alternatives. However, the context is clear enough for appropriate selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
release_phone_numberBDestructiveIdempotentInspect
Release (cancel) a purchased phone number.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
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 reinforces the destructive nature with 'cancel,' but adds minimal behavioral context, such as whether the number becomes available for repurchase or if there are any side effects. 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 extremely concise—a single sentence that is front-loaded with the action and resource. Every word serves a purpose, with 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?
Given the tool's simplicity (one param) and the presence of an output schema, the description is fairly complete. However, it omits critical context such as prerequisites (e.g., number must not be in use) and the effect of idempotency (releasing an already released number). Still, it suffices for a straightforward release 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?
The input schema has one parameter 'id' (integer) with 0% schema description coverage. The description does not clarify what the 'id' refers to (e.g., the phone number's identifier). This is a significant gap; the description should specify that 'id' is the ID of the phone number to release.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Release (cancel)') and the resource ('a purchased phone number'). It effectively distinguishes from sibling tools like 'purchase_phone_number' (opposite action) and 'update_phone_number' (modification).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (e.g., unassigning the number from campaigns) or conditions under which the release is appropriate. The destructiveHint annotation hints at its irreversible nature, but the description itself lacks usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_phone_numbersARead-onlyIdempotentInspect
Search for purchasable phone numbers via the Famulor provider.
| Name | Required | Description | Default |
|---|---|---|---|
| contains | No | Digits the number should contain (numeric only, max 10) | |
| country_code | No | ISO 3166-1 alpha-2, default DE |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 safety is clear. Description adds 'via the Famulor provider' but no further behavioral context (e.g., pagination, rate limits). Consistent with annotations, no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with purpose. Efficient but could add a bit more context without being overly 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?
With output schema present and good annotations, description adequately states the tool's purpose and provider. No need to explain return values. Missing minor details like behavior of 'contains' search, but overall 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%, with clear descriptions for 'contains' and 'country_code'. Description does not add extra meaning beyond what schema provides (e.g., does not clarify search matching behavior). Baseline 3 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 verb 'search' and the resource 'phone numbers', with scope 'purchasable' and provider 'Famulor'. It distinguishes from sibling tools like get_phone_numbers, list_all_phone_numbers, and purchase_phone_number.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 get_phone_numbers, list_all_phone_numbers, or purchase_phone_number. Usage is implied but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_messageAInspect
Send a user message in an existing chat conversation and get the assistant reply.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | ||
| message | Yes | User message (max 2000 chars) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds that it returns the assistant reply, which is beyond annotations that already indicate non-read-only and non-destructive. However, no disclosure of side effects, rate limits, 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?
One sentence, front-loaded with verb 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 two-param tool with output schema present, description covers core action but lacks details on error cases, conversation existence requirement, or 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 coverage is 50% (only message has description). Description adds no additional parameter info, so baseline 3 for moderate 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 the verb 'Send' and resource 'user message in an existing chat conversation', and distinguishes from siblings like send_sms or send_whatsapp_freeform by specifying chat 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?
Implies usage in existing chat conversations but provides no explicit guidance on when to use vs alternatives like generate_ai_reply, nor prerequisites for the conversation existence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_smsAInspect
Send an SMS from one of your Famulor phone numbers (must be SMS-capable). Costs are deducted from your balance.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient in E.164 format | |
| body | Yes | Message body (max 300 chars) | |
| from | Yes | Phone number ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation (readOnlyHint=false) and non-destructive. Description adds cost implication and SMS-capability requirement, but no additional details on idempotency or side effects like message logs.
Agents need to know what a tool does to the 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, no redundant information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool with output schema present, the description covers cost, number requirement, and parameter constraints sufficiently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; description adds value by specifying 'from' must be a Famulor phone number and 'body' max 300 chars, enhancing the schema's 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 'Send an SMS' with verb and resource, and distinguishes from sibling tools like send_whatsapp_template by specifying 'SMS' and 'Famulor phone number'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (must be SMS-capable number, costs deducted) but does not explicitly compare with alternatives like send_whatsapp_* or mention when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_whatsapp_freeformAInspect
Send a freeform WhatsApp message. Requires an open 24h session (use get_whatsapp_session_status to check).
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Max 4096 chars | |
| sender_id | Yes | ||
| recipient_phone | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the session requirement beyond annotations, which already indicate the tool modifies state (readOnlyHint=false) but is not destructive. No further behavioral details are 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 extremely concise with two short sentences, front-loading the action and key prerequisite.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple parameters, the description adequately covers purpose and precondition, though it lacks parameter explanations or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (message has max chars). The tool description does not explain sender_id or recipient_phone, leaving their semantics to the agent to infer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action 'Send a freeform WhatsApp message' with a specific verb and resource, distinguishing it from siblings like send_whatsapp_template and send_sms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the precondition for use ('Requires an open 24h session') and points to get_whatsapp_session_status for checking, providing clear context for when the tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_whatsapp_templateAInspect
Send a WhatsApp template message (required when initiating or outside the 24h window).
| Name | Required | Description | Default |
|---|---|---|---|
| sender_id | Yes | ||
| variables | No | ||
| template_id | Yes | ||
| recipient_name | No | ||
| recipient_phone | Yes | E.164 |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-readonly, non-idempotent, non-destructive. The description adds a key behavioral rule (window constraints) but does not detail side effects or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no unnecessary words; all information is essential 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?
Despite having an output schema, the description is too minimal; it omits the relationship between required parameters, the nature of the variables object, and prerequisite validations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 20% schema coverage, the description fails to explain any parameter meanings, leaving most parameters (sender_id, template_id, variables, recipient_name) undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 sends a WhatsApp template message and adds critical context about when it is required (initiating or outside 24h window), distinguishing it from siblings like send_whatsapp_freeform.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 the condition for use (initiating or outside 24h window) and implicitly tells when not to use (inside the window), with sibling tools providing alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_assistantAIdempotentInspect
Update an existing assistant (partial). Only the fields you send are changed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Assistant ID to update | |
| mode | No | ||
| name | No | Display name of the assistant (max 255 chars) | |
| type | No | Assistant call direction | |
| tools | No | ||
| record | No | ||
| fillers | No | ||
| timezone | No | IANA timezone, e.g. "Europe/Berlin" | |
| tool_ids | No | ||
| voice_id | No | Voice ID from get_voices | |
| folder_id | No | Folder to place the assistant in (one folder per assistant). See list_folders. Send null to remove. | |
| label_ids | No | Label IDs to tag the assistant with (an assistant can carry multiple labels). See list_labels. | |
| variables | No | ||
| language_id | No | Primary language ID from get_languages | |
| webhook_url | No | ||
| llm_model_id | No | Required for mode=pipeline | |
| max_duration | No | ||
| ringing_time | No | ||
| speech_speed | No | ||
| ambient_sound | No | ||
| endpoint_type | No | ||
| filler_config | No | ||
| system_prompt | No | System prompt defining behavior | |
| initial_message | No | First message spoken at call start (max 200 chars) | |
| llm_temperature | No | ||
| phone_number_id | No | ||
| voice_stability | No | ||
| knowledgebase_id | No | ||
| post_call_schema | No | ||
| voice_similarity | No | ||
| is_webhook_active | No | ||
| wait_for_customer | No | ||
| knowledgebase_mode | No | ||
| voice_mail_message | No | ||
| allow_interruptions | No | ||
| min_interrupt_words | No | ||
| multimodal_model_id | No | Required for mode=multimodal/dualplex | |
| reengagement_prompt | No | ||
| tts_emotion_enabled | No | ||
| ambient_sound_volume | No | ||
| chat_llm_fallback_id | No | ||
| endpoint_sensitivity | No | ||
| max_silence_duration | No | ||
| post_call_evaluation | No | ||
| end_call_on_voicemail | No | ||
| interrupt_sensitivity | No | ||
| reengagement_interval | No | ||
| secondary_language_ids | No | Additional language IDs the assistant can speak | |
| synthesizer_provider_id | No | ||
| transcriber_provider_id | No | ||
| turn_detection_threshold | No | ||
| enable_noise_cancellation | No | ||
| conversation_ended_retrigger | No | ||
| include_recording_in_webhook | No | ||
| max_initial_silence_duration | No | ||
| conversation_ended_webhook_url | No | ||
| send_webhook_only_on_completed | No | ||
| conversation_inactivity_timeout | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false and idempotentHint=true. Description adds 'partial' and 'only fields you send are changed', which clarifies the idempotent nature. No contradiction, and the description 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?
Single sentence that is maximally concise and front-loaded with the key 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 tool's complexity (58 parameters, nested objects, output schema exists but not described), the description is too minimal. It doesn't explain return values, common usage patterns, or constraints like required fields beyond 'id'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (22%), and the description adds no parameter-specific meaning beyond the global 'partial update' behavior. Many parameters lack descriptions in both schema 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?
Description clearly states it updates an existing assistant with partial changes. The verb 'Update' and the specificity of 'partial' and 'existing' distinguish it from create_assistant and other 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 vs create_assistant or other update tools. The description does not mention prerequisites or scenarios where partial update is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_campaign_statusAIdempotentInspect
Start or stop a campaign.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| campaign_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and destructiveHint=false, which the description does not contradict. However, the description adds no additional behavioral context beyond the annotations, such as side effects on ongoing campaigns or required permissions. With 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 sentence with no extraneous information. It conveys the core functionality efficiently, earning a top score for conciseness and structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema (not shown), the description provides sufficient context for basic usage. However, it lacks details about prerequisites (e.g., campaign existence) or state transition boundaries. Overall, it is nearly complete for a straightforward toggle 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 0%, meaning parameters have no descriptions in the schema. The tool description does not explain the meaning or constraints of 'campaign_id' or how the 'action' enum values affect the campaign. Although parameter names are somewhat self-explanatory, the description fails to add value beyond the schema, resulting in a low score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 action ('Start or stop') on a specific resource ('a campaign'), clearly distinguishing it from sibling tools like create_campaign, delete_campaign, and list_campaigns. The verb and resource are precise 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?
While there is no explicit 'when to use' or 'when not to use' guidance, the tool's purpose is obvious from its name and description. The lack of alternatives for this specific action among siblings implies its correct usage context, earning a score of 4 for clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_documentAIdempotentInspect
Update a document name or description. Content cannot be changed.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| description | No | ||
| document_id | Yes | ||
| knowledgebase_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate that the tool is not read-only, not destructive, and idempotent. The description adds important behavioral context by explicitly stating that 'content cannot be changed', which is a key constraint not conveyed by the annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately states the primary purpose ('update a document name or description') followed by a crucial restriction. 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?
Given the tool's simplicity, the description covers the core purpose and a key restriction. It does not explain the return value, but the presence of an output schema likely covers that. The description is complete enough for an agent to use the tool correctly, though additional parameter details 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?
The schema has 0% parameter description coverage. The description mentions 'name or description' but does not explain the meaning or constraints of the required parameters (document_id, knowledgebase_id) or the optional ones. For a tool with low schema coverage, the description should provide more semantic explanation but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'document', explicitly lists the updatable fields (name, description), and mentions what cannot be changed (content). This effectively distinguishes it from siblings like create_document, delete_document, get_document, and list_documents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 implicitly guides usage by stating that only name and description can be updated, and that content cannot be changed. It does not explicitly provide alternatives or when-not-to-use, but the restriction is clear enough for the agent to decide when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_folderAIdempotentInspect
Rename a folder or change its color (partial — only sent fields change).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Folder ID | |
| name | No | New name (max 255 chars, unique per account) | |
| color | No | New badge color, or null to remove |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by specifying that only sent fields change (partial update). Annotations indicate idempotentHint=true and destructiveHint=false, which align with the description. No mention of permissions or other side effects, but the partial update detail is helpful.
Agents need to know what a tool does to the 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, tightly written sentence that front-loads the action and includes a key behavioral note. Every word is useful, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and full parameter documentation, the description covers the essential behavior. It does not explain return values (handled by output schema) but could be slightly more explicit about what happens if no fields are sent (though 'partial' implies nothing changes).
Complex tools with many parameters or behaviors need more documentation. 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 adds the important semantic detail that the update is partial (only sent fields change), which is not fully captured by 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 the tool updates a folder by renaming or changing its color. The phrase 'partial — only sent fields change' distinguishes it from a full update, and sibling tools like create_folder and delete_folder provide context for its specific 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 when to use the tool (to rename or recolor a folder) but does not explicitly state when not to use it or mention alternatives. However, the sibling tool list and context make the usage fairly clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_knowledgebaseBIdempotentInspect
Rename or describe an existing knowledge base.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| name | No | ||
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutation (readOnlyHint=false) and idempotency. The description adds minimal behavioral context beyond what is inferred from parameter names.
Agents need to know what a tool does to the 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. It is efficiently short but could benefit from slightly more 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 schema's simplicity and existing annotations, the description is minimally adequate. However, it lacks explanation of output or any constraints on 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?
With 0% schema description coverage, the description must explain parameters. It only hints at 'name' and 'description' but omits the required 'id' parameter and their 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 updates an existing knowledge base by renaming or describing it, which aligns with the schema (name, description). It distinguishes from sibling create/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 guidance is provided on when to use this tool versus alternatives like update_document or update_folder. The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_labelBIdempotentInspect
Rename a label or change its color (partial — only sent fields change).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Label ID | |
| name | No | New name (max 255 chars, unique per account) | |
| color | No | New badge color, or null to remove |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds the 'partial update' behavior, which is consistent but does not disclose additional traits like permissions or side effects 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 concise and front-loaded, effectively communicating the core 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 simple nature of the tool and the richness of the input schema, the description is adequate. It covers the main use cases (rename, color change) and partial update behavior, though it does not mention return values (output schema exists but is not required to be described).
Complex tools with many parameters or behaviors need more documentation. 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 each parameter is already well-documented in the input schema. The description merely summarizes the main actions without adding 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 tool renames a label or changes its color, with a note about partial updates. This is specific and informative, but does not explicitly differentiate from sibling tools like create_label or delete_label, which is evident from 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?
No explicit guidance on when to use this tool versus alternatives. The description implies it's for updating existing labels, but does not clarify 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_leadBIdempotentInspect
Update a lead. Variables are merged with existing ones.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| status | No | ||
| variables | No | ||
| campaign_id | No | ||
| phone_number | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-destructive, idempotent write operation. The description adds that variables are merged, which is valuable context beyond annotations, but does not disclose behavior for other parameters or error cases.
Agents need to know what a tool does to the 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 are concise and front-loaded, with no unnecessary words. However, could be slightly more informative without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 5 parameters including a nested object and no schema descriptions, the description is insufficient. It does not cover the purpose of each parameter or potential side effects, relying heavily on the output schema 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?
With 0% schema description coverage, the description must compensate but only adds meaning for the 'variables' parameter (merge behavior). Other parameters (id, status, campaign_id, phone_number) are not explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update a lead', a specific verb and resource, and adds the important detail that variables are merged with existing ones, distinguishing it from a simple replacement 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?
No guidance is provided on when to use this tool versus alternatives (e.g., create_lead, delete_lead) or any prerequisites (e.g., lead must exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_mid_call_toolAIdempotentInspect
Update a mid-call tool. headers/schema fully replace existing values when provided.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| name | No | ||
| method | No | ||
| schema | No | ||
| headers | No | ||
| timeout | No | ||
| endpoint | No | ||
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already show non-readOnly, non-destructive, idempotent. The description adds that headers/schema fully replace existing values, which is critical behavioral information not captured by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff. The first states purpose, the second adds key behavioral detail. 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?
Output schema exists so return values are covered. However, with 8 parameters and 0% schema coverage, the description should explain more parameters or usage context. The provided info on headers/schema is useful but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description explains that headers and schema parameters trigger full replacement. This adds meaning for 2 of 8 parameters; the rest (e.g., name, method) lack any semantic explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a mid-call tool, with a specific verb 'Update' and resource. It is distinguishable from siblings like create_mid_call_tool or get_mid_call_tool, though not explicitly contrasted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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., create_mid_call_tool for new tools, or other update tools). No prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_phone_numberAIdempotentInspect
Update a phone number you own. Currently sets the nickname — a short human-readable label (max 50 chars) shown next to the number. Send null/empty to clear it. Granted (shared) numbers cannot be updated.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Phone number ID to update | |
| nickname | No | Short label, max 50 chars. null clears it. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is non-destructive and idempotent. The description adds value by specifying that it currently sets the nickname, can clear it with null/empty, and that granted numbers are excluded. 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?
The description is concise with four short, front-loaded sentences. Each sentence adds unique information: purpose, current capability, clearing behavior, and access restriction. No redundant or 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?
Given the presence of an output schema (not shown), the description does not need to explain return values. It covers purpose, usage conditions, parameter details, and constraints, making it fully informative for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes both parameters fully (100% coverage). The description adds important context: the nickname is shown next to the number, max 50 chars, and can be cleared. It also implies the 'id' must be owned, which is not in the schema. This extra context justifies a 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 the tool updates a phone number owned by the user, specifically setting the nickname. It distinguishes from other phone number operations like purchase or release by specifying the action and ownership condition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 condition: numbers must be owned, and granted (shared) numbers cannot be updated. However, it does not explicitly contrast with alternatives like release or purchase, leaving some ambiguity about when to use 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.
update_sip_trunkCIdempotentInspect
Update a SIP trunk (partial).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| sip_address | No | ||
| country_code | No | ||
| phone_number | No | ||
| sip_password | No | ||
| sip_username | No | ||
| outbound_proxy | No | ||
| sip_calling_format | No | ||
| allowed_inbound_ips | No | ||
| inbound_authorization_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| message | No |
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 the 'partial' behavior, which is useful context and consistent with annotations. No further behavioral traits (e.g., error handling, auth requirements) are disclosed, but the description 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 extremely concise at 5 words, which is front-loaded but perhaps too sparse. It wastes no words but lacks necessary information. Although concise, it is under-specified for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 10 parameters, 0% schema description coverage, and an output schema (not shown), the description is highly incomplete. It does not cover parameter explanations, return values (though output schema exists), or common usage patterns. The minimal description is insufficient for an AI agent to use this tool 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?
The schema has 10 parameters with 0% description coverage in the schema. The tool description does not explain any parameter meanings. Critical parameters like sip_address, allowed_inbound_ips, inbound_authorization_type, and the enum fields are left entirely to the agent to infer. This provides no added value beyond the schema's bare structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Update a SIP trunk (partial)', which clearly states the verb (update) and resource (SIP trunk), and adds 'partial' to indicate it is a PATCH-like operation. This distinguishes it from create_sip_trunk (full creation) and delete_sip_trunk. However, it does not explicitly differentiate from other update tools or describe the scope of partial updates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 create_sip_trunk or delete_sip_trunk. No prerequisites, context, or recommended use cases are provided. The description does not help the agent decide between update and create for a SIP trunk.
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!