Famulor
Server Details
AI voice agents: assistants, calls, campaigns, leads, knowledge bases, WhatsApp, SMS & SIP trunks.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- bekservice/Famulor-MCP
- GitHub Stars
- 1
- Server Listing
- Famulor MCP
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.3/5.
Most tools target distinct resources and actions clearly (e.g., create_assistant vs create_campaign). However, there is some overlap like get_outbound_assistants vs get_assistants and list_all_phone_numbers vs get_phone_numbers, causing minor ambiguity.
Tools follow a consistent verb_noun pattern with underscores (e.g., create_document, delete_label, get_voices). Only minor deviations exist, such as generate_ai_reply and list_all_phone_numbers, but overall the pattern is maintained.
With 75 tools, the server is excessively large. Although the domain is broad (assistants, calls, messaging, etc.), the number of tools makes it difficult for agents to navigate and select the correct one, reducing coherence.
The tool set covers CRUD operations for most resources, plus webhooks, AI replies, and reference data fetching. Minor gaps exist (e.g., no delete_conversation, no attach phone number to assistant), but the surface is largely comprehensive for the platform's purpose.
Available Tools
76 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?
Annotations already declare readOnlyHint=false and destructiveHint=false, indicating a mutating action. The description adds conditional requirements but does not disclose side effects, authorization needs, or limits. With annotations present, the description provides marginal added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two focused sentences. No filler or redundancy; 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 complexity (57 parameters, nested objects) and low schema coverage, the description is far from complete. It omits many important parameters and only hints at mode-dependent fields. The output schema exists but 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?
Schema description coverage is only 21%, and the description only covers a handful of the 57 parameters. It explains the condition for llm_model_id vs multimodal_model_id and knowledgebase_mode, but leaves most parameters undocumented. This is insufficient to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new AI assistant' with specific required parameters and conditional requirements. It distinguishes from sibling 'update_assistant' by focusing on creation, and the purpose is precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context by listing required fields and conditional rules (e.g., which model ID is required per mode). It does not explicitly state when not to use it or compare with siblings, but the guidance is clear enough for most cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_campaignAInspect
Create a draft call, WhatsApp, or SMS campaign. Starts in draft — add leads, then start with update_campaign_status. For channel=call require assistant_id; for whatsapp require whatsapp_sender_id + whatsapp_template_id; for sms require sms_from_phone_number_id + sms_body.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Campaign name (max 255 chars) | |
| channel | No | Defaults to call | |
| sms_body | No | Required for channel=sms. Max 1600 chars. Supports {{variable}}. | |
| timezone | No | IANA timezone, e.g. Europe/Berlin | |
| max_retries | No | 1–5 | |
| allowed_days | No | ||
| assistant_id | No | Required for channel=call. OUTBOUND assistant you own. | |
| retry_interval | No | Minutes between retries (10–4320) | |
| fallback_channel | No | Optional call→text follow-up after max call retries | |
| phone_number_ids | No | Outbound from-number IDs | |
| schedule_windows | No | Daily windows [{start:"HH:MM", end:"HH:MM"}]. Overnight when end < start. | |
| fallback_sms_body | No | ||
| retry_on_voicemail | No | ||
| scheduled_start_at | No | Optional ISO datetime for auto-start | |
| whatsapp_sender_id | No | Required for channel=whatsapp | |
| messages_per_minute | No | Per-campaign send rate 1–10 (WhatsApp/SMS) | |
| whatsapp_template_id | No | Required for channel=whatsapp. Approved template on that sender. | |
| max_calls_in_parallel | No | Concurrent calls (max 10) | |
| text_variable_mapping | No | Template placeholder → lead variable | |
| allowed_hours_end_time | No | Legacy single-window end HH:MM | |
| allowed_hours_start_time | No | Legacy single-window start HH:MM if schedule_windows omitted | |
| goal_completion_variable | No | ||
| retry_on_goal_incomplete | No | ||
| sms_from_phone_number_id | No | Required for channel=sms. SMS-capable number. | |
| fallback_variable_mapping | No | WhatsApp template placeholder → lead variable for fallback | |
| fallback_whatsapp_sender_id | No | ||
| mark_complete_when_no_leads | No | ||
| fallback_whatsapp_template_id | No | ||
| fallback_sms_from_phone_number_id | 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's a non-read-only, non-destructive creation. The description adds that it starts in draft and requires leads to be added separately, which provides useful behavioral context beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. The first sentence clearly states the tool's purpose and scope. The second adds workflow and conditional requirements. No extraneous information, front-loaded 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 complex input schema (29 parameters) and presence of an output schema, the description provides a sufficient overview: it explains the tool's purpose, the draft state, the workflow, and channel-specific requirements. It does not detail every parameter but covers the essential context for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 69%, baseline 3. The description adds meaning by specifying which parameters are required per channel (e.g., assistant_id for call, whatsapp_sender_id for WhatsApp), helping the agent understand conditional requirements beyond the schema's individual 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 it creates a draft campaign for call, WhatsApp, or SMS. It specifies the resource (campaign) and the allowed channels, effectively distinguishing 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?
The description gives a brief workflow: create draft, add leads, then use update_campaign_status. It also lists required parameters for each channel. However, it does not explicitly state when not to use this tool or provide alternatives beyond the workflow hint.
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 non-readonly and non-destructive behavior. The description adds minimal behavioral context beyond the type parameter (widget=paid, test=free). It does not disclose side effects, return behavior, or prerequisites, relying on the annotations for safety context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is extremely concise, front-loading the main purpose and adding the key parameter distinction without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential purpose and one parameter, but lacks details on the 'variables' parameter and the output schema (though output schema exists). For a tool with nested objects and additional properties, more completeness would be beneficial.
Complex tools with many parameters or behaviors need more documentation. 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 the description only adds meaning for the 'type' parameter via the hint. The required 'assistant_id' and optional 'variables' are not described, leaving a significant gap despite the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Start a new chat session with an assistant', specifying the action and resource. The parenthetical '(widget=paid, test=free)' distinguishes the tool from sibling create_* tools by hinting at the type parameter differentiating paid vs free 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?
The description implies the tool is for starting a new conversation, but does not explicitly state when to use it versus alternatives like 'generate_ai_reply' or 'send_message' for existing conversations. No exclusions or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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?
Annotations already convey mutability (readOnlyHint=false) and non-idempotence. The description adds that only 'website' type is supported via MCP and mentions file upload restriction, but does not elaborate on side effects (openWorldHint=true) or other behavioral traits like rate limits or auth.
Agents need to know what a tool does to the 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 wasted words. Essential purpose is front-loaded, and the exclusion note is concise. 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?
The description covers core purpose and key constraint (no file uploads), but given 7 parameters and nested arrays, it omits guidance on using 'links' vs 'url' and the meaning of 'relative_links_limit'. Output schema exists but isn't referenced. Adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 57%. The description clarifies the 'type' enum (only website) and implies url is primary, but doesn't explain 'links', 'description', or 'relative_links_limit'. It adds some value over the schema but not enough to compensate fully for uncovered parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Add a website (URL-scraped) document to a knowledge base' with a specific verb and resource, clearly distinguishing from file upload tools. Sibling tools like create_knowledgebase or update_document are 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?
Explicitly says when to use (URL-scraped documents) and when not to (file uploads must use dashboard or multipart call). Provides clear context and alternative channels, helping the agent avoid misusing this tool for file uploads.
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 indicate a standard create action. The description adds context such as naming constraints (max 255 chars, unique per account) and the workflow for assigning assistants, going beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, front-loading the core purpose and essential workflow guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete given the tool's simplicity, the presence of an output schema, and full schema coverage for parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds no new meaning beyond the schema's descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a folder to group assistants') and distinguishes from sibling tools by explaining how assistants are assigned via folder_id in other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (to create a folder) and provides guidance on assigning assistants, but does not explicitly list scenarios 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_knowledgebaseCInspect
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 indicate it is not read-only and not destructive, but the description adds no further behavioral context (e.g., uniqueness constraints, side effects, authentication needs). The description is too minimal to enhance transparency beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It gets to the point, though it lacks structured front-loading of key details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema and annotations, but the description does not explain what a knowledge base is or how it relates to other entities. Given the simplicity of the parameters, it is minimally complete but leaves the agent without broader 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 100% with parameter descriptions like 'Max 255 chars' and 'Optional, max 255 chars'. The tool description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'knowledge base', making the purpose specific. It distinguishes from sibling create tools (create_assistant, create_campaign, etc.) by naming a different resource. However, it lacks elaboration on what a knowledge base is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or conditions. The description gives no context for selection among the many create tools.
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 already indicate a write operation, and the description adds valuable behavioral context such as uniqueness constraint ('max 255 chars, unique per account') and the intended lifecycle (create then assign). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that efficiently conveys purpose and usage. No redundant or unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool, the description covers the purpose, usage, and lifecycle. The existence of an output schema and full parameter descriptions in the schema complement the description well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description provides example values ('inbound', 'outbound') but does not add substantive parameter meaning beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 label to tag assistants' with concrete examples ('inbound', 'outbound'), and distinguishes this tool from other create_* tools (e.g., create_assistant) by specifying it creates labels, not other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells how to use the label after creation ('Assign via the label_ids field on create_assistant / update_assistant'), providing clear context. It does not explicitly state when not to use this tool, but the guidance is sufficient for a creation tool.
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 this is a write operation with open world hint. The description adds the behavioral detail about fixed variable names, but does not disclose side effects like duplication handling (only hinted by allow_dupplicate parameter) or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: first states purpose, second delivers a critical usage note. No redundant information, 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?
Despite having an output schema and 5 parameters with nested objects, the description only covers variable constraints. It omits return value details, prerequisite requirements (e.g., campaign existence), and full parameter semantics, making it 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 40% schema coverage, the description adds value by explaining that variable names are fixed and only values can be supplied. However, other parameters like allow_dupplicate and secondary_contacts remain unexplained, leaving 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 'Create a new lead in a campaign,' using a specific verb and resource, and distinguishes it from sibling tools like create_campaign and update_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?
The description includes an important note about variable names being fixed, guiding usage, but lacks explicit when-to-use or when-not-to-use compared to alternatives like update_lead or delete_lead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_mid_call_toolBInspect
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?
Annotations provide behavioral hints (readOnlyHint=false, destructiveHint=false, etc.) and the description adds no extra behavioral context. No contradiction, but no added 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 is concise but overly minimal; it could include more detail without harming conciseness. Every word is used but adds little value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters and an output schema, the description fails to mention return values, side effects, or constraints. Lacks completeness for a tool that creates a new HTTP endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
57% schema description coverage leaves many parameters (method, schema, headers) without descriptions. The tool description does not explain any parameter meaning or usage beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'Create a new mid-call HTTP tool.' with a specific verb and resource, clearly distinguishing it from sibling tools like update, delete, get, 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 guidance on when to use this tool vs. alternatives (e.g., update_mid_call_tool). Omits prerequisites, when not to use, or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sip_trunkAInspect
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?
Annotations show readOnlyHint=false, consistent with creation. Description adds no behavioral traits beyond stating it provisions a new trunk. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no extraneous information; efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and the tool's parameters, the description is minimally sufficient. However, for a complex creation tool with 10 parameters, more detail on expected behavior could improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, but the description does not add meaning to the parameters. It simply restates the resource type. The description fails to compensate for missing parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Provision' and the resource 'SIP trunk', with subtypes 'extension or DID number'. It distinguishes from sibling create_* tools by specifying the domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. Usage is implied by the resource name, but no when-not-to-use or context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_assistantBDestructiveIdempotentInspect
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' beyond the destructiveHint annotation, reinforcing irreversibility. However, it does not explain idempotent behavior (annotation indicates idempotent) or other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences deliver the essential message without any filler. Every word adds value, and the structure is front-loaded with the key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple and annotations cover destructiveness, the description omits parameter details and does not leverage the existence of an output schema to mention return values. This leaves the agent underinformed for a complete interaction.
Complex tools with many parameters or behaviors need more documentation. 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, and the description does not mention the required 'id' parameter or its purpose. With only one parameter, the description should clarify what id to provide (e.g., assistant ID), but it 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 'Permanently delete an assistant', which identifies the specific verb and resource. Among sibling tools like delete_call and delete_campaign, this uniquely specifies that it operates on 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?
No guidance is provided on when to use this tool versus alternatives like disabling an assistant or using other delete operations. The description lacks context for appropriate usage or prerequisites.
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?
Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds 'Cannot be undone', which reinforces irreversibility but does not add new behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences (7 words), front-loaded with the purpose and immediate consequence. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive tool with one parameter and an output schema, the description minimally covers purpose and irreversibility. However, it lacks parameter guidance and usage context, making it adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage for the sole parameter 'call_id'. The description does not explain what call_id is or how to obtain it, leaving parameter semantics unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 'Delete a call record', specifying the verb and resource. Among many sibling delete tools, the name and description uniquely identify this tool as deleting a call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There is no mention of prerequisites, when not to use, or related tools like disabling a call instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_campaignADestructiveIdempotentInspect
Delete a campaign. Running campaigns are stopped first. 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?
Description adds behavioral context beyond annotations: 'Running campaigns are stopped first' and 'Cannot be undone.' Aligns with destructiveHint=true. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, direct sentences. Front-loaded with action, followed by important notes. No 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?
For a simple destructive tool with one parameter and an output schema, description covers essential aspects: deletion effect, behavior on running campaigns, and irreversibility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter 'id' has no description in schema (coverage 0%) and description does not explain it. Could have added 'the ID of the campaign to delete' but omitted.
Input schemas describe structure but not intent. Descriptions should explain 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 'delete' and resource 'campaign'. Distinguishes from siblings like update_campaign_status (modifies) or list_campaigns (lists).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 says when to use: to delete a campaign, including running ones. No explicit alternatives or when-not-to-use, but the context of stopping running campaigns provides guidance.
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 declare destructiveHint=true and idempotentHint=true. The description adds no extra context beyond 'delete', missing details like whether deletion is permanent or what happens to associated data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct sentence with no unnecessary words. It is efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the destructive nature and the presence of an output schema, the description is too minimal. It omits important context such as irreversibility, required permissions, or behavior on missing documents.
Complex tools with many parameters or behaviors need more documentation. 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 explain the parameters. It only indirectly references them by mentioning 'document' and 'knowledge base,' offering no additional meaning beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool deletes a document from a knowledge base, using a specific verb and resource. This clearly distinguishes it from sibling tools that delete 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 is given on when to use this tool versus alternatives (e.g., update_document to deactivate). It does not mention prerequisites like document existence or permissions.
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?
The description adds value beyond annotations by disclosing that assistants are not deleted but become uncategorized. Annotations already indicate destructiveness; the description provides specific 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?
Two sentences, no unnecessary words. Clear 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 output schema exists, the description doesn't need to explain return values. It covers the key nuance about assistant preservation, though could mention idempotency or retry 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?
The only parameter 'id' is not described in the description or schema (0% coverage). However, its purpose is obvious from the tool name and type, so minimal additional meaning is needed. Baseline for 0 params is 4, but here it's a single simple param, so 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Delete a folder' and clarifies the effect on assistants inside, distinguishing it from other delete tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While it doesn't explicitly state when to use, it provides clear context that assistants become uncategorized, which helps avoid misuse. It lacks explicit alternatives or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_knowledgebaseBDestructiveIdempotentInspect
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 declare destructiveHint=true and idempotentHint=true. Description adds 'permanently', reinforcing irreversibility, but provides no further behavioral details (e.g., cascading effects on associated data). Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the key action and object. No 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?
For a destructive tool with no output schema, the description lacks completeness. It does not mention required permissions, effects on linked resources, or confirmation steps.
Complex tools with many parameters or behaviors need more documentation. 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%, and the description does not explain the single parameter 'id' (integer). Without any param documentation, the description fails to add meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (delete) and the resource (knowledge base), with the qualifier 'permanently' adding specificity. It distinguishes from sibling tools like delete_document or 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 guidance on when to use this tool versus alternatives (e.g., updating or disabling a knowledge base). No prerequisites or conditions mentioned.
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?
Beyond annotations (destructiveHint=true), the description adds important detail about the cascading effect on assistants and clarifies that assistants are not affected, enhancing transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two sentences) and well-structured, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with an output schema, the description covers the main effect and side effect. It lacks details on error scenarios or permissions, but overall is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description fails to mention the single parameter 'id' or its role, leaving the agent to infer its meaning from context. This is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 label') and explains the specific side effect (removed from assistants but assistants unaffected), distinguishing it from other delete tools for different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on the consequence (removal from assistants), but does not explicitly state when to use this tool versus alternatives or mention prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_leadBDestructiveIdempotentInspect
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 already convey destructiveness and idempotency. The description adds no further behavioral detail (e.g., irreversibility or side effects), but it does not contradict 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, clear sentence that is front-loaded and easy to parse. While concise, it could include more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, annotations present, output schema exists), the description is minimally adequate but lacks explanation of the id parameter and any side effects. It misses an opportunity to fully complete the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fails to clarify that 'id' refers to the lead's identifier. The agent must infer this from the tool name alone, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 ('a lead'), which distinguishes it from sibling tools like delete_call or delete_assistant. However, it is minimal and lacks context about what a lead represents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites (e.g., existence of the lead or required permissions). The agent has no context to decide between this and other delete tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_mid_call_toolDDestructiveIdempotentInspect
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?
The description adds no behavioral context beyond what annotations already provide (destructiveHint, idempotentHint). It does not disclose side effects, authorization requirements, or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely concise, the single sentence merely restates the tool name, providing no structural benefit or earned content. It is underspecified rather than appropriately 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 destructive mutation tool with an output schema, the description lacks context about expected outcomes, error conditions, or whether the operation is reversible. It does not sufficiently inform tool selection or usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention the required 'id' parameter or its meaning (e.g., which ID to use), and schema coverage is 0%, so the description fails to compensate for missing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a mid-call tool' is a direct tautology of the tool name 'delete_mid_call_tool', providing no additional information to clarify purpose beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like update_mid_call_tool or get_mid_call_tool, nor any prerequisites or conditions for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_sip_trunkBDestructiveIdempotentInspect
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?
Annotations provide destructiveHint=true and idempotentHint=true, but the description adds no extra behavioral context (e.g., permanence, side effects, or error scenarios). It merely repeats the delete action implied by the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded and concise. Every word earns its place with no unnecessary 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?
For a simple destructive tool, the description covers the basic action and parameter. However, it lacks details on permanence, required permissions, or behavior when the trunk doesn't exist. Output schema exists but is not referenced. 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 the description clarifies that the 'id' parameter is a phone-number ID, adding meaning beyond the schema's type-only definition. This compensates for the lack of parameter descriptions in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete) and the resource (SIP trunk) and identifies the identifier as phone-number ID. It is specific but does not explicitly distinguish from other delete tools, though the resource name is unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, such as prerequisites or conditions. Only states the action and parameter. No exclusions or context about idempotence or destructive nature beyond annotations.
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?
Description correctly implies a mutating operation, which aligns with annotations (readOnlyHint=false). It adds no additional 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?
Description is a single, efficient sentence with no wasted words. It is front-loaded and immediately conveys the tool's 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 only one parameter and an output schema, the description is too minimal. It omits parameter details and usage context, leaving the agent with insufficient information for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, assistant_id, has no description in the schema (0% coverage) and the tool description provides no explanation of its role or format. The description fails to add meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool disables a conversation-ended webhook, with specific verb and resource, and the sibling tools include enabling the same webhook, distinguishing it effectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. The tool's purpose is clear, but there is no mention of prerequisites or context for using this over siblings like enable_assistant_conversation_ended_webhook.
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?
The description is consistent with annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false) but does not add extra behavioral context beyond the basic action. It discloses the effect clearly, but lacks detail on side effects or state changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loading the action and resource. It earns its space but could be slightly more informative 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 tool's simplicity, the description covers the core functionality. However, it omits any mention of the output or postconditions. The presence of an output schema and annotations partially compensate, but the description alone feels minimal.
Complex tools with many parameters or behaviors need more documentation. 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 single required parameter (assistant_id). The agent gains no semantic meaning beyond the parameter name and type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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') and the resource ('inbound-call webhook notifications'), distinguishing it from sibling tools like disable_assistant_conversation_ended_webhook or disable_assistant_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. The description does not mention any prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disable_assistant_webhookBIdempotentInspect
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?
Description confirms mutation ('disable') and matches annotations (idempotentHint, non-destructive). Adds webhook specificity but lacks detail on effects or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is efficient and front-loaded, but lacks detail that would justify its 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?
Tool is simple but description omits return value, idempotency implications, and any post-disable behavior. Incomplete for a full 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?
Single parameter assistant_id has no description coverage in schema or description. No explanation of its purpose or how to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly specifies verb 'disable' and resource 'post-call webhook for an assistant', distinguishing from sibling tools like disable_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 alternatives. Doesn't mention prerequisites or scenarios where disabling is appropriate.
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 provide safety profile (mutation, idempotent, not destructive). Description adds minimal behavioral context beyond the annotations; it does not discuss idempotency 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 sentence with no wasted words. It is front-loaded and efficiently communicates the core action and rationale.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for a simple toggle operation but lacks prerequisites (e.g., conversation must exist and have AI enabled). The output schema exists but is not explained.
Complex tools with many parameters or behaviors need more documentation. 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%, and the description does not explain the 'uuid' parameter. The parameter name is self-explanatory, but the description misses an opportunity to add clarity on what it represents (conversation ID).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (disable AI replies) and the reason (so a human can take over). It distinguishes from sibling tools like enable_conversation_ai and generate_ai_reply.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 phrase 'so a human can take over' implies when to use (when transitioning to human handling). However, it does not explicitly state when not to use or mention alternatives, though sibling tools are listed.
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_webhookCIdempotentInspect
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 indicate idempotent, non-destructive write operation. The description adds no additional behavioral context, such as what happens if the webhook is already enabled, authentication requirements, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the key information. However, it is too brief and sacrifices necessary 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 an output schema exists and the tool is simple, the description is still insufficient. It omits parameter semantics and usage context, making it hard for an agent to call correctly without additional 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?
Schema description coverage is 0%. The description does not explain the purpose or constraints of 'webhook_url' or 'assistant_id', leaving the agent to infer from names alone. No format, validation, or example is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Enable' and the specific resource 'conversation-ended (chat) webhook for an assistant', which distinguishes it from sibling tools like 'enable_assistant_inbound_webhook' and 'disable_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 is provided on when to use this tool versus alternatives, prerequisites, or effects. The description lacks context on enabling versus updating webhooks or handling duplicate calls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_assistant_inbound_webhookAIdempotentInspect
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 declare idempotentHint=true and destructiveHint=false, indicating no destructive side effects and that enabling is safe to repeat. The description adds no additional behavioral context beyond the annotations, but does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that conveys the core action with no wasted words. It is front-loaded and appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with two parameters, annotations, and an output schema, the description covers the primary purpose adequately. It lacks details on prerequisites or behaviors, but the annotations fill in safety and idempotency information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only webhook_url has a description). The description does not explain the assistant_id parameter or add meaning beyond the schema, failing to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'enable' and the resource 'inbound-call webhook notifications for an assistant', distinguishing it from sibling tools like 'disable_assistant_inbound_webhook' and '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?
The description does not provide any guidance on when to use this tool versus alternatives, such as when to disable the webhook or use a different webhook type. No exclusions or conditions are mentioned.
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?
Annotations already indicate non-destructive and idempotent behavior. The description adds context about the 'after human takeover' scenario but does not disclose prerequisites or side effects, such as whether the tool fails if AI replies are already enabled. 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 a single sentence of 10 words, front-loading the key verb and resource. Every word is necessary, and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple toggle tool with one parameter, the description is adequate but lacks details on prerequisites (e.g., conversation must exist and have been previously disabled) and expected output. The presence of an output schema slightly compensates, but the description could be richer.
Complex tools with many parameters or behaviors need more documentation. 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 'uuid' with 0% schema description coverage. The description does not explain what 'uuid' represents (presumably the conversation identifier), leaving the agent without guidance on how to supply this required parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Re-enable AI replies' and the resource 'a conversation after a human takeover,' which is specific and distinguishes it from sibling 'disable_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 specifies when to use the tool ('after a human takeover'), providing clear context for re-enabling AI. It does not explicitly list alternatives or when not to use, but the condition is sufficient for a toggle-like operation.
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 write and non-idempotent behavior. The description adds that it maintains conversation state, which is a valuable behavioral detail. However, it does not disclose potential side effects like creating conversations or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences—with no wasted words. It front-loads the core action and key differentiating feature (context-aware, stateful).
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 does not mention what the tool returns. It also omits prerequisites (e.g., existing assistant, conversation) and the effect on conversation state when no prior conversation exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 25% of parameters are described in the schema. The description adds context for customer_identifier (state key) and implicitly for message, but leaves assistant_id and variables completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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, and mentions state management per customer. However, it does not explicitly differentiate from sending tools like send_message, leaving ambiguity about whether it also sends the reply.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as send_message or create_conversation. It mentions state per customer, but no explicit conditions, prerequisites, or exclusions.
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 provide readOnlyHint, idempotentHint, destructiveHint. The description adds that the tool is paginated and returns specific fields (variable names). No contradictions. However, it does not disclose how pagination works (e.g., default page size, maximum results) or any other behavioral quirks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and key details. Every word serves a purpose. 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 simple list operation, the description covers the essential return content (configurations, variable names) and pagination. The output schema exists, so return details are structured. It could mention authentication scoping or handling of large result sets, but overall it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage for parameters. The description only mentions 'paginated', which hints at the purpose of 'page' and 'per_page', but does not explicitly state their function, valid ranges, or defaults. The parameter names are self-explanatory but the description adds minimal value beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a clear verb ('List all'), resource ('AI assistants'), scope ('on the Famulor account'), and key features ('paginated', 'returns configurations including their fixed variable names'). It effectively distinguishes from sibling tools like 'get_assistant' (singular) and 'get_outbound_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?
The description implies usage for listing all assistants, but does not explicitly state when to use this over alternatives (e.g., 'get_assistant' for a single assistant) or when not to use it. The context of siblings is present but not leveraged in the description.
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 provide readOnlyHint, idempotentHint, etc. The description adds no extra behavioral context beyond the obvious retrieval operation, but does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single unambiguous sentence with no unnecessary words, perfectly sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (1 param, has output schema), the description is largely adequate, but it lacks mention of error handling (e.g., if call_id not found) or prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only states 'by ID' without specifying format, allowed values, or any constraints for the call_id parameter, providing minimal added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Retrieve' and resource 'single call by ID', clearly distinguishing from sibling list_calls 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 implies using it to get a call by ID but provides no explicit guidance on when to prefer this tool over alternatives like list_calls or other get tools, nor any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_campaignARead-onlyIdempotentInspect
Get a single campaign by ID. Same fields as list_campaigns.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Campaign ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds that the response has the same fields as list_campaigns, providing useful context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: first states the core action, second adds field equivalence. No unnecessary words, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter tool, presence of output schema, and comprehensive annotations, the description is largely complete. It could mention error cases or null returns, but the reference to list_campaigns fields adds sufficient 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?
The schema describes the single required parameter 'id' with full coverage. The description repeats 'by ID' but adds no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 campaign by ID, using specific verb 'Get' and resource 'campaign'. It distinguishes from sibling list_campaigns 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?
Usage is implied by the purpose: use when you have a campaign ID and need a single record. No explicit when-not or alternatives are provided beyond referencing list_campaigns for field details.
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, idempotentHint, and destructiveHint. Description adds that it retrieves 'full message history', providing context on output scope but no additional traits like pagination or authorization.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no unnecessary words. However, 'by UUID' is somewhat redundant since the parameter is named uuid; could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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. For a simple getter with one parameter, the description is adequate but lacks parameter details due to 0% schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0% description coverage and only one parameter 'uuid'. The description merely mentions 'by UUID' without explaining the format, source, or constraints of the UUID 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 uses a specific verb 'Get' and resource 'full message history of a chat conversation', clearly distinguishing from sibling tools like get_call or list_conversations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., list_conversations) or when not to use it. The description only states what it does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_documentARead-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 provide readOnlyHint=true, idempotentHint=true, destructiveHint=false, which align with a safe, idempotent read operation. The description adds no further behavioral context (e.g., error handling, data format). With annotations carrying the burden, this is adequate but not exemplary.
Agents need to know what a tool does to the 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 (6 words) but sacrifices useful detail. It is appropriately front-loaded, but the brevity leaves gaps that could be filled with minimal additional 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?
The tool has an output schema, reducing the need to describe return values. However, the description omits that a knowledgebase_id is needed, which is critical context. For a simple retrieval operation, it is adequately complete but not fully self-contained.
Complex tools with many parameters or behaviors need more documentation. 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%, yet the description provides no parameter details. It mentions 'by ID' but does not clarify that both document_id and knowledgebase_id are required. The description fails to add meaning beyond what the schema's property names already convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 document by its ID. This distinguishes it from sibling tools like list_documents (list multiple) and create_document (create). The verb-resource pairing is precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when you need a specific document by ID. While it does not explicitly exclude alternatives, the context of sibling tools (many with similar prefixes) makes usage obvious. Lacks explicit when-not-to-use guidance, but clear enough.
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, openWorldHint, idempotentHint, and destructiveHint. The description adds no behavioral context beyond what annotations provide, which is acceptable given they are 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?
Single short sentence, no wasted words. Information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with one parameter and an output schema. The description suffices for a retrieval endpoint, though could mention that it returns the full knowledge base 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?
Schema has 0% description coverage. The description does not elaborate on the 'id' parameter (e.g., format, example). Although 'id' is self-explanatory, the description should 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?
Description clearly states verb (Get), resource (knowledge base), and method (by ID). It distinguishes itself from sibling tools like list_knowledgebases and create_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 explicit guidance on when to use this tool versus alternatives like list_knowledgebases. The name implies retrieval by ID, but no exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, fully covering safety and idempotency. The description adds no new behavioral context, but does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundant words. Efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with no parameters and an output schema. The description covers the essential purpose; no further details necessary 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?
Tool has zero parameters, so schema coverage is 100%. Description adds no parameter details, but baseline for 0 params is 4. No additional meaning needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' and identifies the resource as 'supported assistant languages'. It clearly distinguishes from sibling tools like get_models or get_voices which target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., get_models, get_voices). No mention of prerequisites or context that would help the agent decide.
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 declare read-only, idempotent, open-world, and non-destructive behavior. The description adds value by specifying the response includes total balance, which is 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, efficient sentence that is front-loaded with the core purpose. No superfluous information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 zero parameters, an existing output schema, and annotations covering behavioral aspects, the description completes the picture by noting the inclusion of total balance. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema coverage is complete. The description adds no parameter details, but none are needed. Baseline score of 4 for zero-parameter tools applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the authenticated user profile including total balance. The verb 'Get' and resource 'user profile' are specific, and it distinguishes from sibling tools that return other resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when needing the authenticated user's profile, but does not explicitly state when to use or not use alternatives. Context from sibling names provides implicit distinction, 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_mid_call_toolARead-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?
The description is consistent with annotations but adds no extra context beyond what is already declared (readOnly, idempotent, non-destructive).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no waste earns a perfect score for 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 a single parameter, output schema present, and thorough annotations, the description is mostly complete. A brief note on what a mid-call tool is would be helpful but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It correctly links the parameter 'id' to the tool identity, though a more explicit mapping would improve clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get' and the resource 'mid-call tool' with the identifier 'by ID', distinguishing it from sibling tools like create, delete, 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 when-to-use or alternatives are provided, but the purpose is inherent. The minimal guidance is adequate for a simple getter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_modelsBRead-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, openWorldHint, and destructiveHint false. The description adds minor context by listing the model types, but does not disclose any behavioral 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 that is concise and front-loads the purpose. However, it is very brief and could be expanded with additional useful 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 tool's simplicity and the presence of an output schema, the description is minimally adequate but lacks completeness. It does not mention that the 'type' parameter is optional or what the output format might be, relying on the output schema for that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists the three enum values (llm, multimodal, dualplex) but does not explain the meaning of each type or how the parameter filters results. This adds some value but is insufficient to fully clarify parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb "List" and explicitly names the resource "LLM / multimodal / dualplex model IDs". It directly states what the tool does and distinguishes it from sibling tools which focus on creating, updating, or deleting 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 is provided on when to use this tool vs alternatives. There is no mention of context, prerequisites, or conditions under which the tool should or should not be used.
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, openWorldHint, idempotentHint, and destructiveHint. The description adds the filtering behavior ('outbound-capable'), providing useful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise, one sentence, front-loaded with key information. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, rich annotations, and existence of an output schema, the description fully specifies the tool's purpose and 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?
No parameters exist, so the description does not need to add parameter information. Baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('list') and the specific resource ('outbound-capable assistants'), which distinguishes it from sibling tools like get_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?
The description implies when to use it (to list outbound-capable assistants) but does not explicitly contrast with alternatives like get_assistants 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.
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 indicate readOnly, idempotent, non-destructive behavior. The description adds value by specifying eligibility for attachment and filtering, 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?
The description is a single, efficient sentence that front-loads the action and key details 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?
The tool has an output schema, so return values need not be described. The description explains the filtering and eligibility, which is sufficient for a simple 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?
With 0% schema coverage, the description compensates by explaining the 'type' parameter for inbound/outbound filtering, adding meaning beyond the enum definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 phone numbers eligible for attachment to an assistant, with optional filtering. This distinguishes it from siblings like list_all_phone_numbers and 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 provides context on when to use this tool (for attachable numbers) and mentions the filter capability, but does not explicitly exclude alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_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 provide readOnlyHint, idempotentHint, and destructiveHint=false, so safety profile is clear. The description adds no behavioral context beyond what annotations already convey, such as error handling or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at 5 words, front-loaded with the core action and resource. Every word is necessary and adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema and rich annotations, the description is minimally adequate. However, it lacks any context about what a SIP trunk is or how the ID is used, and has no parameter description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'id' with 0% coverage in the description. The description does not add any meaning about the parameter (e.g., format, source, validation) beyond its 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 (Get) and the resource (SIP trunk) with the identifier method (by ID). It is specific but does not differentiate from other get_* sibling tools, which share the same pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 list_sip_trunks. There is no mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_synthesizer_providersBRead-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, openWorldHint, idempotentHint, and destructiveHint. The description adds minimal context ('custom TTS providers selectable on an assistant') but does not disclose any behavioral traits beyond what annotations provide, such as rate limits or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, front-loading the purpose effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of parameters and the presence of annotations, the description is adequate for a simple list tool. However, it could mention that the list is for use in assistant configuration or distinguish between custom and default providers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to add parameter information. The baseline for 0 parameters is 4, and the description is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists custom TTS providers selectable on an assistant, with a specific verb and resource. However, it does not explicitly differentiate from the sibling tool 'get_transcriber_providers', though the name provides distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternatives, no exclusions, and no context such as being a prerequisite for assistant creation.
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 true, idempotentHint true, and destructiveHint false. The description adds context that these providers are 'custom' and 'selectable on a pipeline assistant', which conveys additional behavioral scope 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 that efficiently conveys the tool's purpose without any unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has no parameters and an existing output schema, the description is adequate. It clearly states what the tool does, though it could hint at any filtering or selection criteria if applicable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100% and the description does not need to elaborate. The description adds value by specifying the nature of the listed providers (custom STT providers).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the resource 'custom STT providers' with the qualifier 'selectable on a pipeline assistant', clearly distinguishing it from sibling tools like get_synthesizer_providers which focus on TTS.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to retrieve available STT providers for configuring a pipeline assistant, but does not explicitly state when to use this tool instead of alternatives like get_models or get_voices.
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 (readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false) already declare the read-only and safe nature. The description adds no additional behavioral traits beyond what the annotations provide, such as pagination, rate limits, or data scope.
Agents need to know what a tool does to the 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 irrelevant information. It is front-loaded with the primary action, but could benefit from slightly more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 parameters, enum, no nested objects), the description covers the basic purpose. However, it lacks guidance on parameter usage and does not mention that an output schema exists, leaving some gaps 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?
Schema description coverage is 0%, and the description only paraphrases the schema ('engine mode and optional language') without adding meaning beyond what the schema already communicates. The enum values for 'mode' are not elaborated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 voices' and the filtering criteria 'compatible with a given engine mode and optional language,' making the purpose specific and distinguishable from sibling tools like get_models or get_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?
The description does not provide any guidance on when to use this tool versus alternatives, nor does it mention prerequisites or conditions. There is no explicit context for when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_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?
Annotations already indicate readOnlyHint, idempotentHint, and non-destructive behavior. The description adds transparency by revealing that the tool defaults to only showing senders with status 'online', and that passing 'all' overrides this. This provides behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences. The first sentence clearly states the action and resource; the second adds essential parameter behavior. No wasted words, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has few parameters, an output schema (reducing need to describe returns), and annotations covering safety. The description sufficiently covers the key behavior and parameter semantics for an agent to use it 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?
With 0% schema description coverage, the description compensates well by explaining the status parameter's default value and a special accepted value ('all'). While it doesn't enumerate all possible statuses, it gives the agent practical guidance for the most common use cases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 'WhatsApp Business senders'. It differentiates from sibling tools like list_calls or get_whatsapp_templates by specifying the exact entity. The addition of default status behavior further clarifies the tool's scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use (listing senders) and explains the status parameter's default and special value. However, it does not explicitly mention alternatives or when not to use this tool compared to siblings like get_whatsapp_session_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_whatsapp_session_statusBRead-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 declare readOnlyHint=true and destructiveHint=false, so the agent knows it's a safe read. The description adds the specific context of checking a 24h window, which is useful beyond the annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, direct sentence that efficiently captures the tool's purpose without any extraneous words. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with an output schema, the description covers the main purpose but fails to explain parameters or the concept of a 24h window. Given the presence of an output schema and annotations, it's minimally adequate but has 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 does not explain the two parameters (sender_id, recipient_phone). It omits their purpose, format, or source, leaving the agent to infer from names. This is insufficient for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action: checking whether a 24-hour messaging window is open for a recipient. This is a precise verb+resource combination that distinguishes it from sibling tools like send_whatsapp_freeform or get_whatsapp_templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., needing a sender_id from get_whatsapp_senders) or when a session check is necessary (e.g., before sending a template message).
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?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, making the tool's behavioral profile clear. The description adds the default status ('approved') but does not disclose other traits like pagination or data freshness. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core action. While it could include more parameter details, it contains no extraneous words. Every part contributes to the 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 presence of an output schema, the description does not need to detail return values. However, it lacks information on how to use the 'status' parameter (e.g., other acceptable values) and does not mention pagination or errors. The annotations cover safety, but completeness is moderate for a listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, requiring the description to document parameters. It mentions the default for 'status' but does not explain 'sender_id' or list possible status values. With no enums in the schema, the description fails to compensate adequately, leaving parameter meaning incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 approved templates for a WhatsApp sender' with a specific verb and resource. It distinguishes itself from sibling tools like 'send_whatsapp_template' and 'get_whatsapp_senders' by focusing on listing templates. The default status clarification adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 list approved templates) but does not provide explicit guidance on when not to use it or mention alternatives. The readOnlyHint annotation reinforces its safe usage, but the description could be more directive about appropriate contexts.
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 declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering safety and behavior. The description adds the detail about including all numbers regardless of status, which is useful but not extensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with 15 words, no filler, efficiently communicating the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, rich annotations, and an output schema, the description is largely complete. It could mention potential large result sets or pagination, but overall it suffices for a simple list-all tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. The description adds no further parameter information, but with zero parameters, the baseline is high and no additional semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and the resource ('phone numbers'), and specifies the scope ('every', 'regardless of SMS or subscription status'), distinguishing it from sibling tools 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 use for a complete, unfiltered list, but does not explicitly state when to use this versus siblings or provide exclusion criteria. It offers context but lacks direct comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_callsARead-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 declare readOnlyHint, idempotentHint, destructiveHint=false. The description adds pagination and filtering context, but does not disclose sorting, limits, or return format behavior 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 sentence that immediately conveys the action and key features. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (handles return values) and strong annotations, the description is largely adequate for a simple list tool. However, it lacks details on sorting or empty results.
Complex tools with many parameters or behaviors need more documentation. 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 description must compensate. It mentions 'pagination' and 'optional assistant filter' which loosely map to page/per_page and assistant_id, but no details on defaults, constraints, or behavior are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists calls with pagination and optional assistant filter, which is a specific verb+resource. It distinguishes from get_call (singular) but does not explicitly differentiate from other 'list_' sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (use when you need to list calls), but no explicit when-to-use, when-not-to-use, or alternatives are mentioned. The description does not guide the agent away from other list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_campaignsARead-onlyIdempotentInspect
List all campaigns you own (call, WhatsApp, SMS), including channel, schedule windows, and fallback config.
| 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, destructiveHint, and idempotentHint. The description adds value by specifying ownership ('you own') and the fields returned (channel, schedule windows, fallback config), which is beyond what annotations provide. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence conveys the action, scope, and included fields with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, rich annotations, and an output schema (assumed to detail return values), the description is complete. It specifies the scope (owned campaigns) and key fields, which is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the description has no burden. Baseline 4 applies as schema coverage is 100% and the description adds no parameter confusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 campaigns owned by the user, specifying channels (call, WhatsApp, SMS) and included details (channel, schedule windows, fallback config). This distinguishes it from sibling tools like list_calls or list_conversations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for viewing owned campaigns with configuration details. It does not explicitly exclude use cases or compare with alternatives, but the context of sibling tools provides sufficient distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_conversationsARead-onlyIdempotentInspect
List 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 provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, signaling a safe, non-destructive read operation. The description adds behavioral details by mentioning 'cursor pagination and filters', which informs the agent about the iterative query pattern and filtering capability. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loading the key action and resource. Every word is essential: 'List conversations across your assistants with cursor pagination and filters.' It avoids redundancy and is immediately scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has an output schema (not shown but indicated) and annotations covering safety, the description is fairly complete for a list operation. It mentions pagination and filters, which are the key behaviors. However, it does not mention that all parameters are optional, nor does it explain the 'type' enum values or the meaning of 'external_identifier'. Slight gap but generally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 7 parameters, 0% schema description coverage, and the description only says 'with cursor pagination and filters'. While parameter names like 'type', 'cursor', 'per_page', 'assistant_id' are somewhat self-explanatory, the description adds no additional meaning, constraints, or examples. The enum for 'type' is not explained. The description fails to compensate for the lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List conversations across your assistants with cursor pagination and filters'. It uses the verb 'List' and specifies the resource 'conversations', scoping to 'across your assistants'. This distinguishes it from sibling tools like 'get_conversation' (single conversation) and other list tools (e.g., 'list_calls') by explicitly naming the resource and the pagination mechanism.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 focusing on listing with pagination and filters, but it does not explicitly state when to use this tool versus alternatives like 'get_conversation' for a single conversation or 'list_calls' for calls. No exclusions or prerequisites are mentioned. The context signals show many sibling tools, but the description lacks comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_documentsBRead-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, idempotentHint, and destructiveHint, so the description's minimalism is acceptable. However, it adds no additional behavioral details like pagination or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence of 5 words, highly concise. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple operation, the description provides the core purpose but lacks details on output format or any constraints. With an output schema, return values are documented, so completeness is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description only implicitly refers to the parameter as 'in a knowledge base'. It does not explicitly state that knowledgebase_id is the ID of the knowledge base, nor describe its format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 documents' and the scope 'in a knowledge base', distinguishing it from siblings like get_document (single) and list_knowledgebases. However, it could be more explicit about what 'list' returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives; for example, it does not mention that for a single document, get_document should be used, or that knowledge bases must exist first.
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 provide readOnlyHint, openWorldHint, idempotentHint, destructiveHint. Description adds context that it is paginated, returns assistants_count, and explains folder-assistant relationship. 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 main action and concise explanation of folder purpose. 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?
Output schema exists, so no need to describe return values. Description covers pagination, purpose, and relationship, which is complete for a simple list tool with strong annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 2 parameters with 50% description coverage (per_page described, page not). Description mentions pagination but does not detail individual parameters. Partially compensates 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 specifies 'List assistant folders (paginated)' with clear verb and resource, and explains the concept of folders grouping assistants. It distinguishes from sibling tools like create_folder and 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?
The description implies use for listing folders with pagination but does not explicitly state when to use this vs alternatives like list_all_phone_numbers or search tools. No when-not or comparative guidance.
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 declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive. The description adds 'on the account' but does not elaborate 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 one short sentence with no wasted words. It could be slightly more descriptive about the return value, but that is covered by the output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has zero parameters and an output schema exists, so the description is sufficient to convey the basic operation. Could mention that it returns an array, but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100%. The description adds no parameter details, but no compensation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all knowledge bases on the account' uses a specific verb and resource, clearly distinguishing it from siblings like get_knowledgebase (single) and create_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?
The context is clear: to list all knowledge bases. No alternative is needed since there is no filtering. However, it does not explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 declare readOnlyHint, idempotentHint, and destructiveHint, making the safety profile clear. The description adds context about pagination and the assistants_count field, enriching understanding 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?
The description is extremely concise, using two sentences to convey purpose, pagination, and the relationship between labels and assistants. Every sentence 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?
Given the presence of annotations and an output schema (mentioned but not shown), the description provides sufficient context. It explains the return value (labels with assistants_count) and the data model, making it complete 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?
Schema description coverage is 50%; one parameter (per_page) has a schema description, but page lacks one. The tool description mentions pagination but does not elaborate on page or per_page beyond the schema. It adds minimal semantic value for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists assistant labels with their assistants_count, explaining that labels are tags and an assistant can have multiple labels across folders. This distinguishes it from sibling tools like create_label, delete_label, and 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 mentions 'paginated' and the purpose is unambiguous. However, it does not explicitly state when to use this tool versus alternatives or provide exclusion criteria. The context is clear enough for a simple listing operation.
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 provide readOnlyHint, idempotentHint, openWorldHint, and destructiveHint, which already convey safe, idempotent read behavior. Description adds 'with pagination', a behavioral detail not in 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 purpose. No wasted words. However, slightly under-specified given the lack of parameter info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, return values need not be explained. However, the description omits context like default page size, maximum per_page, or ordering. Adequate for a simple list tool with rich annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description only mentions pagination generally without explaining the purpose, range, or defaults of the 'page' and 'per_page' parameters. 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?
Clearly states 'List leads with pagination' – specific verb and resource. Distinguishes from create/delete/update siblings but not from other list_* sibling 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?
No guidance on when to use this tool versus alternative tools (e.g., get_lead for a single lead, or search_* tools). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds context that these are 'HTTP integrations callable by an assistant during a call', which is useful but does not disclose additional behavioral traits like pagination or rate limits. With annotations present, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence that conveys the tool's purpose without any unnecessary words. It is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (read-only, no parameters, idempotent). The description explains what the listed items are, and the output schema likely covers return values. This is 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?
There are no parameters, and schema coverage is 100%. The description adds no parameter-specific information because none is needed. A score of 4 reflects the default for zero-parameter 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 action (list) and the resource (mid-call tools) with a parenthetical explanation that they are HTTP integrations callable during a call. It distinguishes from sibling tools like create_mid_call_tool and get_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?
The description does not provide explicit guidance on when to use or not use this tool versus alternatives. However, the tool is a simple list with no parameters, so usage is straightforward; lack of explicit exclusions is acceptable but not excellent.
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 declare readOnlyHint, idempotentHint, and destructiveHint. The description adds no new behavioral context beyond 'list all', which aligns but doesn't enrich the agent's understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that is concise and contains no unnecessary words. Perfectly structured for quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and an output schema, the description is sufficient. It covers the essential purpose and scope. However, it lacks details like ordering or limits, which are minor given the tool's triviality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist and schema coverage is 100%, so the description adds no parameter information beyond what is already in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'SIP trunks' with scope 'on the account', directly distinguishing it from siblings like get_sip_trunk (single) and create_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?
The description implies usage for listing all SIP trunks, but provides no explicit guidance on when to use compared to alternatives like get_sip_trunk for a specific trunk or other filters. Given the simplicity, it's minimally adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_callCInspect
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 indicate write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds minimal behavioral context beyond initiating a call; it does not disclose potential costs, rate limits, or concurrency constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 10 words, front-loading the key action. It is concise but could be improved with slightly more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and nested objects, the description does not mention what the tool returns (e.g., call details). It is incomplete for understanding the full outcome of initiating a call.
Complex tools with many parameters or behaviors need more documentation. 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 3 parameters; description covers only assistant_id implicitly via 'configured assistant'. The 'variables' parameter lacks description in both schema and description, and its purpose (e.g., template variables) is unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 (Initiate) and the resource (outbound AI phone call). It distinguishes from sibling tools like 'get_call' or 'list_calls' by specifying 'outbound' and 'with a configured 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 guidance on when to use this tool versus alternatives. Does not mention prerequisites (e.g., assistant must exist, phone number must be owned) or situations where another tool like 'send_sms' would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 non-read-only and non-destructive behavior. The description adds the 'monthly subscription' detail, which hints at ongoing cost but does not fully describe side effects (e.g., billing implications, number allocation).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the verb and resource, with no unnecessary words. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and existing annotations, the description covers the core purpose, prerequisite, and subscription nature. It could mention the return value (e.g., created phone number details) but the 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?
The description provides context that the phone_number parameter must come from search_phone_numbers, adding meaning beyond the raw schema (0% description coverage). However, it does not specify format, validation, or constraints like country code.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 specific resource ('a phone number returned by search_phone_numbers'), including the context of a monthly subscription. It distinguishes from sibling 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 implies that the tool should be used after search_phone_numbers and mentions the subscription model. However, it does not explicitly state when not to use it or provide alternatives beyond the implicit prerequisite.
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?
The description adds minimal behavioral context beyond the existing annotations. While destructiveHint=true is already present, the description does not elaborate on side effects or reversibility.
Agents need to know what a tool does to the 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 one sentence, front-loading the action, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive operation with annotations, the description is adequate but lacks parameter documentation and usage context, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no information about the required 'id' parameter, despite the schema having 0% description coverage. This is a critical gap for a single-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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'), distinguishing it from sibling tools like purchase_phone_number and update_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 guidance is provided on when to use this tool versus alternatives, such as update_phone_number, or any prerequisites like ensuring the number is not in use.
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 the agent knows this is a safe read operation. The description adds provider context but no additional behavioral details (e.g., no mention of pagination or empty results).
Agents need to know what a tool does to the 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, 9 words, front-loaded with action and resource. No unnecessary 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?
With output schema present and rich annotations, the description adequately covers the purpose. Could hint that results can be used with purchase_phone_number, but not essential for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description does not add any extra meaning beyond the schema's parameter descriptions—only mentions the provider, which is not parameter-specific.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool searches for purchasable phone numbers via a specific provider (Famulor), distinguishing it from siblings like get_phone_numbers (owned numbers) and list_all_phone_numbers (all 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?
No guidance on when to use this tool vs alternatives such as purchase_phone_number or get_phone_numbers. The description implies it's for finding numbers to purchase, but does not explicitly state context or exclusions.
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?
Annotations already indicate mutability (readOnlyHint=false) and non-destructive behavior. The description adds that it sends a message and gets a reply, but does not elaborate on side effects, rate limits, or authentication beyond what annotations cover.
Agents need to know what a tool does to the 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 core action without extraneous words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with 2 parameters and an output schema, so the description covers the essential function. However, it omits parameter semantics and usage guidance, making it minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at 50%, only the message parameter has a description (max 2000 chars). The description fails to explain the uuid parameter, leaving its purpose ambiguous. No additional parameter details are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'send', resource 'user message', and context 'in an existing chat conversation', with a distinct outcome 'get the assistant reply'. This differentiates it from siblings like send_sms or generate_ai_reply.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the need for an existing conversation via 'in an existing chat conversation', but does not explicitly state when not to use it or contrast with alternatives like generate_ai_reply. No exclusions or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 already indicate mutation (readOnlyHint=false) and non-destructive. Description adds key behavioral detail: 'costs deducted from your balance' and 'number must be SMS-capable'. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences. Every word adds value. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple SMS tool with three well-described parameters and an output schema, the description covers purpose, prerequisites, and side effects (cost). Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for to, from, body. Description does not add any additional parameter meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Send', the resource 'SMS from Famulor phone numbers', and constraints ('must be SMS-capable', 'costs deducted'). It distinguishes from sibling tools like send_message and send_whatsapp_*. A specific, actionable 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?
Provides when to use: send SMS from a Famulor number. Implies not for other message types. Lacks explicit when-not or alternatives, but the context of siblings plus the SMS-specific constraint gives adequate guidance.
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?
Annotations already convey mutation and non-idempotence. Description adds session requirement as a behavioral constraint. No further details on 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?
Two sentences: first states purpose, second adds prerequisite. No waste, 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?
Adequate for a simple send action but lacks parameter details and does not explain output schema or error conditions. With sibling tools, more distinction could help.
Complex tools with many parameters or behaviors need more documentation. 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 only 33% with only 'message' described. Description adds no meaning for 'sender_id' or 'recipient_phone', leaving them 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?
Clear verb 'Send' and resource 'freeform WhatsApp message'. Distinguishes from send_whatsapp_template by specifying freeform. Also mentions prerequisite session, adding 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?
Explicitly states prerequisite (open 24h session) and suggests using get_whatsapp_session_status to check. However, does not compare with sibling tools like send_sms or send_message.
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 provide basic hints (not read-only, not idempotent, not destructive). The description adds the timing constraint, which is key behavioral context. However, it does not expand on other behavioral aspects like message delivery guarantees or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the action and key constraint. 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?
While purpose and usage are clear, the lack of parameter details and limited behavioral transparency leaves the description only adequately complete. An output schema exists but 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?
Schema description coverage is only 20% (only recipient_phone has a description). The description provides no additional parameter documentation, leaving most parameter semantics unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 ('Send a WhatsApp template message') and adds crucial context about when it is required ('when initiating or outside the 24h window'). This distinguishes 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?
The description explicitly indicates when to use this tool ('required when initiating or outside the 24h window'), implying alternatives for other scenarios. This provides excellent usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_assistantCIdempotentInspect
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?
Adds 'Only the fields you send are changed' which implies idempotency and no effect on omitted fields, complementing annotations (readOnlyHint false, idempotentHint true). However, does not disclose other behaviors like error handling or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no redundant words. 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?
Despite having output schema and 58 parameters, the description is too minimal. Does not mention complex constraints, conditional requirements, or expected output.
Complex tools with many parameters or behaviors need more documentation. 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 provides no parameter-level meaning. It does not compensate for undocumented 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?
Clearly states 'Update an existing assistant (partial)', specifying verb and resource. Distinguishes from create_assistant by 'existing' and 'partial'. However, does not explicitly differentiate from other update tools in 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 vs alternatives like create_assistant or other update tools. The description lacks any usage context or exclusions.
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 call, WhatsApp, or SMS campaign. Starting validates channel config, schedule, and balance.
| 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 indicate mutability (readOnlyHint=false), non-destructiveness (destructiveHint=false), and idempotency (idempotentHint=true). The description adds behavioral context by stating that starting validates channel config, schedule, and balance. This complements the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences, front-loaded with the core action ('start or stop a campaign'), and immediately provides validation details. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (two parameters, one enum), the description is complete enough. It explains the primary behavior and validation logic. The output schema likely describes return values, so no need to repeat here. One could argue that the effect of 'stop' is not described, but the action enum makes it clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters (campaign_id, action) with clear types and an enum for action. However, schema description coverage is 0%, and the description provides no additional parameter details beyond the action names. It implicitly references 'start' and 'stop' but does not clarify data types or constraints. The schema is self-explanatory, 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 the tool's purpose: starting or stopping a call, WhatsApp, or SMS campaign. It specifies the action (start/stop) and the resource (campaign). This distinguishes it from sibling tools like update_campaign (which might update other fields) and create_campaign.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: to start or stop a campaign. It mentions that starting triggers validation of channel config, schedule, and balance. However, it does not explicitly indicate when not to use it or suggest alternatives (e.g., for updating other campaign attributes).
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 description adds context beyond annotations: it specifies that only name/description can be updated and content is immutable. Annotations already indicate it is a write operation (readOnlyHint=false), not destructive (destructiveHint=false), and idempotent (idempotentHint=true), so the bar is lower and the description provides useful additional detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two short sentences that convey essential information without any fluff. Every word is meaningful and no unnecessary details are present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations and an output schema, the description is reasonably complete for a simple update tool. It covers the key constraints (only name/description, not content) but could benefit from mentioning response behavior or prerequisites. Overall, it is adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description partially compensates by stating the updatable fields (name, description). However, it does not mention the required parameters (document_id, knowledgebase_id) or provide any details about their types or role, leaving a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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', and specifies what can be updated (name or description) and what cannot (content). This differentiates it from sibling tools 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 indicates usage for updating document metadata, but does not explicitly state when not to use or provide direct comparisons to alternatives. However, the context from sibling names and the clear scope make it easy to infer appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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?
Annotations already indicate readOnlyHint=false, destructiveHint=false, idempotentHint=true. The description adds value by explaining 'only sent fields change', which clarifies the idempotent behavior and partial update nature. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently communicates the tool's purpose and key behavior (partial update), with no extraneous information. It is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 params, 1 required, output schema exists), the description adequately covers the core functionality. It does not mention the required id parameter or return values, but the schema and output schema fill those gaps. Lacks edge-case notes but sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description goes beyond by summarizing that the tool renames or changes color, and the 'partial' note adds behavioral context not present in the schema descriptions. This enhances the agent's understanding of parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool renames a folder or changes its color, using specific verbs and resources. It distinguishes from sibling tools like create_folder and delete_folder by focusing on updates, and the phrase 'partial — only sent fields change' adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for updating folder name or color but provides no explicit guidance on when to use this tool versus alternatives (e.g., other update tools). The 'partial' note suggests not to send all fields, but lacks context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_knowledgebaseAIdempotentInspect
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 non-readonly (mutation), non-destructive, and idempotent. The description adds that it updates an existing knowledge base, which is consistent with the required 'id' parameter. No side effects or auth details are given, but with annotations present, the bar is lower.
Agents need to know what a tool does to the 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 words. It is perfectly concise and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool with 3 parameters, the description covers the high-level purpose but omits parameter details. An output schema exists (reducing need for return description), but the description could be more complete by specifying, e.g., allowed values for name/description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the meaning of the parameters (id, name, description) beyond 'rename or describe'. It fails to specify types, constraints, or how the parameters are used, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Rename or describe an existing knowledge base' clearly states the action (rename/describe) and resource (knowledge base), distinguishing it from sibling tools like create_knowledgebase or delete_knowledgebase. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage ('rename or describe') but provides no explicit guidance on when to use this tool versus alternatives (e.g., create_knowledgebase for new, get_knowledgebase for retrieval). No prerequisites or when-not-to-use information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_labelAIdempotentInspect
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 non-readOnly, non-destructive, and idempotent. The description adds valuable behavioral context (partial update: 'only sent fields change'), which is not captured by annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words. Verb ('Rename'/'change') and resource ('label') are front-loaded. Every word contributes to 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?
Output schema exists (though not shown, it is referenced), so return values are covered. For a simple tool with well-documented schema and annotations, the description fully covers purpose, behavior, and parameter semantics without gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all 3 parameters (id, name, color). The description adds critical meaning beyond the schema by explaining the partial update behavior ('only sent fields change'), which clarifies that parameters are optional and fields not sent remain unchanged.
Input schemas describe structure but not intent. Descriptions should explain 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 updates a label by renaming or changing its color, with the specific behavior 'partial — only sent fields change'. It uses a specific verb ('Rename'/'change') and resource ('label'), distinguishing it from sibling tools like create_label, delete_label, and other update 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?
While not explicitly stating when to use alternatives, the description implies usage for modifying existing labels (rename/color change). Sibling tools (create_label, delete_label) are distinct, and no guidance on exclusions is needed given the simple scope. Context is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_leadCIdempotentInspect
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 the tool is not read-only, idempotent, not destructive, and open-world. The description adds that 'Variables are merged with existing ones,' which clarifies the updating behavior. However, it does not disclose what happens to other fields like status or campaign_id when updated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the purpose. However, it is too brief and could include more useful information without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the number of parameters (5) and 0% schema description coverage, the description is insufficient. It lacks details on parameter usage, constraints, and interactions, even though an output schema exists to explain return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate. It only explains the behavior for the 'variables' parameter (merged). The other parameters (id, status, campaign_id, phone_number) are not mentioned, leaving their semantics unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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,' specifying the verb and resource. However, it does not distinguish this tool from sibling update tools like update_assistant or update_campaign, which have similar names and purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool over alternatives, such as create_lead or delete_lead. It does not mention prerequisites, typical use cases, or scenarios where other tools are more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_mid_call_toolCIdempotentInspect
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?
The description adds a key behavioral detail: 'headers/schema fully replace existing values when provided.' This goes beyond annotations (which mark idempotentHint and destructiveHint false) and clarifies the replacement semantics. However, it does not address other fields' behavior or potential 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?
Extremely concise at two sentences, with the first setting purpose and the second adding a key behavioral note. No wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description lacks completeness given the tool's complexity (8 parameters, 0% parameter descriptions). It fails to explain most parameters or provide context for usage, leaving significant gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate but only mentions 'headers' and 'schema' in a behavioral note. It provides no semantic explanation for the other six parameters (id, name, method, timeout, endpoint, description), relying solely on parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 mid-call tool', which is a specific verb-resource combination. It distinguishes from sibling tools like create, get, list, and delete mid-call tools, but lacks specificity on what aspects can be updated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not mention prerequisites, context, or conditions for updating a mid-call tool, 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.
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 provide basic behavioral hints (not read-only, not destructive, idempotent). The description adds detail on clearing nickname with null/empty and the restriction on granted numbers, going 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 concise sentences, front-loaded with purpose, followed by key constraints. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, well-annotated tool with full schema coverage and an output schema, the description is complete. It covers operation, constraints, and edge case (null).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already describes parameters thoroughly (including max 50 chars and null clears). Description adds no new information beyond the schema, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it updates a phone number's nickname, with specific verb and resource. It distinguishes itself from sibling update tools by focusing on phone numbers and adding constraints for granted 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 explains when to use (set nickname) and when not (granted numbers cannot be updated). No explicit alternatives are mentioned, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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?
The description only says 'partial', which hints at idempotent update behavior, but does not explain that only specified fields are modified, what happens to unspecified fields, or whether the operation is reversible. Annotations provide idempotentHint and destructiveHint, but the description does not add context beyond the annotation details. Specifically, it does not clarify the 'openWorldHint' annotation meaning there may be side effects beyond the parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it omits essential information for a tool with 10 parameters and no schema descriptions. It balances minimalism with adequacy only at a basic level, earning a middling score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, 0% schema coverage, enums, output schema available), the description is severely incomplete. It fails to explain which fields can be updated, parameter constraints, required fields beyond 'id', return values, or error conditions. The tool's annotations and context signals do not compensate for this lack of guidance.
Complex tools with many parameters or behaviors need more documentation. 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 no parameter descriptions exist in the schema. The tool description does not add any semantics for any of the 10 parameters (e.g., id, sip_address, country_code, etc.), leaving the agent with no guidance on parameter 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 'Update' and the resource 'SIP trunk', with the qualifier '(partial)' indicating it is a partial update (PATCH semantics). This distinguishes it from sibling tools like create_sip_trunk, delete_sip_trunk, or get_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 is provided on when to use this tool versus alternatives (e.g., create_sip_trunk, get_sip_trunk, list_sip_trunks). There is no mention of prerequisites, typical use cases, or conditions under which this tool should be chosen over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityBmaintenanceManage voice AI agents, make calls, run campaigns, and control phone numbers through natural language.58201MIT
- AlicenseAqualityDmaintenanceVirtual phone number platform for AI agents — rent numbers across 200+ countries, receive SMS, and manage the full activation lifecycle.6394MIT
- AlicenseBqualityCmaintenanceGive AI agents a real phone number and voice. Make calls, send email, manage contacts — 26 tools, 12 resources.431MIT
- Alicense-qualityCmaintenanceEnables AI agents to place real phone calls, navigate IVR trees, and retrieve structured answers with transcripts and recordings.MIT
Your Connectors
Sign in to create a connector for this server.