Skip to main content
Glama

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.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsB

Average 3.6/5 across 75 of 75 tools scored. Lowest: 2.3/5.

Server CoherenceA
Disambiguation4/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.

Naming Consistency4/5

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.

Tool Count2/5

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.

Completeness4/5

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 tools
create_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
nameYesDisplay name of the assistant (max 255 chars)
typeYesAssistant call direction
toolsNo
recordNo
fillersNo
timezoneYesIANA timezone, e.g. "Europe/Berlin"
tool_idsNo
voice_idYesVoice ID from get_voices
folder_idNoFolder to place the assistant in (one folder per assistant). See list_folders. Send null to remove.
label_idsNoLabel IDs to tag the assistant with (an assistant can carry multiple labels). See list_labels.
variablesNo
language_idYesPrimary language ID from get_languages
webhook_urlNo
llm_model_idNoRequired for mode=pipeline
max_durationNo
ringing_timeNo
speech_speedNo
ambient_soundNo
endpoint_typeNo
filler_configNo
system_promptYesSystem prompt defining behavior
initial_messageYesFirst message spoken at call start (max 200 chars)
llm_temperatureNo
phone_number_idNo
voice_stabilityNo
knowledgebase_idNo
post_call_schemaNo
voice_similarityNo
is_webhook_activeNo
wait_for_customerNo
knowledgebase_modeNo
voice_mail_messageNo
allow_interruptionsNo
min_interrupt_wordsNo
multimodal_model_idNoRequired for mode=multimodal/dualplex
reengagement_promptNo
tts_emotion_enabledNo
ambient_sound_volumeNo
chat_llm_fallback_idNo
endpoint_sensitivityNo
max_silence_durationNo
post_call_evaluationNo
end_call_on_voicemailNo
interrupt_sensitivityNo
reengagement_intervalNo
secondary_language_idsNoAdditional language IDs the assistant can speak
synthesizer_provider_idNo
transcriber_provider_idNo
turn_detection_thresholdNo
enable_noise_cancellationNo
conversation_ended_retriggerNo
include_recording_in_webhookNo
max_initial_silence_durationNo
conversation_ended_webhook_urlNo
send_webhook_only_on_completedNo
conversation_inactivity_timeoutNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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

The description clearly states 'Create a new 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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCampaign name (max 255 chars)
channelNoDefaults to call
sms_bodyNoRequired for channel=sms. Max 1600 chars. Supports {{variable}}.
timezoneNoIANA timezone, e.g. Europe/Berlin
max_retriesNo1–5
allowed_daysNo
assistant_idNoRequired for channel=call. OUTBOUND assistant you own.
retry_intervalNoMinutes between retries (10–4320)
fallback_channelNoOptional call→text follow-up after max call retries
phone_number_idsNoOutbound from-number IDs
schedule_windowsNoDaily windows [{start:"HH:MM", end:"HH:MM"}]. Overnight when end < start.
fallback_sms_bodyNo
retry_on_voicemailNo
scheduled_start_atNoOptional ISO datetime for auto-start
whatsapp_sender_idNoRequired for channel=whatsapp
messages_per_minuteNoPer-campaign send rate 1–10 (WhatsApp/SMS)
whatsapp_template_idNoRequired for channel=whatsapp. Approved template on that sender.
max_calls_in_parallelNoConcurrent calls (max 10)
text_variable_mappingNoTemplate placeholder → lead variable
allowed_hours_end_timeNoLegacy single-window end HH:MM
allowed_hours_start_timeNoLegacy single-window start HH:MM if schedule_windows omitted
goal_completion_variableNo
retry_on_goal_incompleteNo
sms_from_phone_number_idNoRequired for channel=sms. SMS-capable number.
fallback_variable_mappingNoWhatsApp template placeholder → lead variable for fallback
fallback_whatsapp_sender_idNo
mark_complete_when_no_leadsNo
fallback_whatsapp_template_idNo
fallback_sms_from_phone_number_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior4/5

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

Annotations already indicate it's a non-read-only, non-destructive 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo
variablesNo
assistant_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

The description implies the tool is for 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoMain URL to scrape (required if links is not set)
nameYesMax 255 chars
typeYesOnly website is supported via MCP
linksNo
descriptionNoOptional, max 255 chars
knowledgebase_idYes
relative_links_limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFolder name (max 255 chars, unique per account)
colorNoBadge color

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters. The description 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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesMax 255 chars
descriptionNoOptional, max 255 chars

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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

The tool has an output schema and 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.

Parameters3/5

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.

Purpose4/5

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

The description clearly states the verb 'Create' and the resource '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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLabel name (max 255 chars, unique per account)
colorNoBadge color

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description 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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
variablesNoEither an object (key/value pairs matching assistant variables) or an array of such objects.
campaign_idYes
phone_numberYesE.164 format, e.g. +491234567890
allow_dupplicateNo
secondary_contactsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states 'Create a new 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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTool identifier: lowercase letters and underscores, starts with a letter
methodYes
schemaNo
headersNo
timeoutNoSeconds, 1-30
endpointYesHTTPS URL to call
descriptionYesWhen the AI should use it (max 255 chars)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool 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).

ParametersJSON Schema
NameRequiredDescriptionDefault
sip_addressYesSIP server without port
country_codeYesISO 3166-2, e.g. US/GB/DE
phone_numberYesExtension (1-15 chars) or E.164 number
sip_passwordYesMin 3 chars
sip_usernameYes3-128 chars
outbound_proxyNo
sip_trunk_typeYes
sip_calling_formatYes
allowed_inbound_ipsNo
inbound_authorization_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the presence of an output schema and 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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. 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_assistantB
DestructiveIdempotent
Inspect

Permanently delete an assistant. Cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 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_callB
DestructiveIdempotent
Inspect

Delete a call record. Cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
call_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds '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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. 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_campaignA
DestructiveIdempotent
Inspect

Delete a campaign. Running campaigns are stopped first. Cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_documentB
DestructiveIdempotent
Inspect

Delete a document from a knowledge base.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYes
knowledgebase_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_folderA
DestructiveIdempotent
Inspect

Delete a folder. Assistants inside are NOT deleted — they just become uncategorized.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the output schema exists, 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_knowledgebaseB
DestructiveIdempotent
Inspect

Delete a knowledge base permanently.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (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_labelA
DestructiveIdempotent
Inspect

Delete a label. It is removed from all assistants it was assigned to — the assistants themselves are NOT affected.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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

The description clearly states the action ('Delete a 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.

Usage Guidelines4/5

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

The description provides clear context on 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_leadB
DestructiveIdempotent
Inspect

Delete a lead.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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

Given the tool's simplicity (one parameter, 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites (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_toolD
DestructiveIdempotent
Inspect

Delete a mid-call tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior2/5

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

The description adds no behavioral context beyond what annotations already provide (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.

Conciseness2/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like 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_trunkB
DestructiveIdempotent
Inspect

Delete a SIP trunk by phone-number ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool 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_webhookB
Idempotent
Inspect

Disable conversation-ended (chat) webhook.

ParametersJSON Schema
NameRequiredDescriptionDefault
assistant_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

No explicit when-to-use or 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_webhookB
Idempotent
Inspect

Disable inbound-call webhook notifications.

ParametersJSON Schema
NameRequiredDescriptionDefault
assistant_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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

Given the tool's simplicity, 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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention 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_webhookB
Idempotent
Inspect

Disable the post-call webhook for an assistant.

ParametersJSON Schema
NameRequiredDescriptionDefault
assistant_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. 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_aiA
Idempotent
Inspect

Disable AI replies for a conversation so a human can take over.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_webhookC
Idempotent
Inspect

Enable conversation-ended (chat) webhook for an assistant.

ParametersJSON Schema
NameRequiredDescriptionDefault
webhook_urlYes
assistant_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior2/5

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.

Conciseness3/5

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

The description is a single, concise sentence that front-loads the key information. 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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, prerequisites, or 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_webhookA
Idempotent
Inspect

Enable inbound-call webhook notifications for an assistant.

ParametersJSON Schema
NameRequiredDescriptionDefault
webhook_urlYesHTTPS URL that receives the webhook payload
assistant_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness5/5

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

The description is a single, efficient sentence that conveys the core action 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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_aiA
Idempotent
Inspect

Re-enable AI replies for a conversation after a human takeover.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYes
variablesNo
assistant_idYes
customer_identifierYesStable per-customer ID; max 255 chars

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as 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_assistantsA
Read-onlyIdempotent
Inspect

List all AI assistants on the Famulor account (paginated). Returns the assistant configurations including their fixed variable names.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
toNo
dataNo
fromNo
totalNo
per_pageNo
last_pageNo
current_pageNo
next_page_urlNo
prev_page_urlNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

The description implies usage for listing 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_callA
Read-onlyIdempotent
Inspect

Retrieve a single call by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
call_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_campaignA
Read-onlyIdempotent
Inspect

Get a single campaign by ID. Same fields as list_campaigns.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCampaign ID

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the simple single-parameter tool, 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_conversationB
Read-onlyIdempotent
Inspect

Get the full message history of a chat conversation by UUID.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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

The description uses a specific verb 'Get' and resource '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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (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_documentA
Read-onlyIdempotent
Inspect

Get a single document by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYes
knowledgebase_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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.

Conciseness3/5

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.

Completeness3/5

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

The tool has an output schema, 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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

The description implies use when you need a 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_knowledgebaseA
Read-onlyIdempotent
Inspect

Get a knowledge base by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives 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_languagesA
Read-onlyIdempotent
Inspect

List all supported assistant languages.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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

The description uses the specific verb 'List' and 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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (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_meA
Read-onlyIdempotent
Inspect

Get the authenticated Famulor user profile, including total balance.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNo
emailNo
total_balanceNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

The description implies use when needing the 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_toolA
Read-onlyIdempotent
Inspect

Get a single mid-call tool by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the action 'Get' 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.

Usage Guidelines3/5

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

No explicit when-to-use or alternatives are 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_modelsB
Read-onlyIdempotent
Inspect

List available LLM / multimodal / dualplex model IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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

Given the tool's simplicity 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.

Parameters2/5

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.

Purpose5/5

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

The description uses a specific verb "List" and 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool 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_assistantsA
Read-onlyIdempotent
Inspect

List all outbound-capable assistants.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the action ('list') and the 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.

Usage Guidelines3/5

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

The description implies when to use 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_numbersA
Read-onlyIdempotent
Inspect

List phone numbers eligible to be attached to an assistant (filter by inbound/outbound).

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

The tool has an output schema, so return values 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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the tool lists 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.

Usage Guidelines4/5

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_trunkC
Read-onlyIdempotent
Inspect

Get a SIP trunk by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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

Given the tool's simplicity 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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as 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_providersB
Read-onlyIdempotent
Inspect

List custom TTS providers selectable on an assistant.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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

The description clearly states the tool lists 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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool 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_providersA
Read-onlyIdempotent
Inspect

List custom STT providers selectable on a pipeline assistant.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare readOnlyHint true, idempotentHint true, and destructiveHint false. The description adds context 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.

Conciseness5/5

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

The description is a single sentence that efficiently conveys the tool's purpose without any unnecessary words or repetition.

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

Completeness4/5

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

Given 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.

Parameters4/5

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.

Purpose5/5

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

The description uses the specific verb 'list' and 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.

Usage Guidelines3/5

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_voicesB
Read-onlyIdempotent
Inspect

List voices compatible with a given engine mode and optional language.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo
language_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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

Given the simplicity of the tool (2 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.

Parameters2/5

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.

Purpose5/5

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

The description clearly states the action 'List 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.

Usage Guidelines2/5

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_sendersA
Read-onlyIdempotent
Inspect

List WhatsApp Business senders. status defaults to "online" — pass "all" to see all.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_statusB
Read-onlyIdempotent
Inspect

Check whether a 24h messaging window is open for a recipient.

ParametersJSON Schema
NameRequiredDescriptionDefault
sender_idYes
recipient_phoneYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows 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.

Conciseness5/5

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.

Completeness3/5

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

For a simple read tool with 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.

Parameters1/5

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.

Purpose5/5

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

The description clearly states the specific action: 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. 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_templatesA
Read-onlyIdempotent
Inspect

List approved templates for a WhatsApp sender (status defaults to "approved").

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNo
sender_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
Behavior3/5

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.

Conciseness4/5

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

The description is a single concise sentence that front-loads the core action. 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.

Completeness3/5

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

Given the presence of an output schema, 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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

The description implies when to use the tool (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_numbersA
Read-onlyIdempotent
Inspect

List every phone number on the account (regardless of SMS or subscription status).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the action ('List') and the resource ('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.

Usage Guidelines3/5

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_callsA
Read-onlyIdempotent
Inspect

List calls with pagination and optional assistant filter.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo
assistant_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
toNo
dataNo
fromNo
totalNo
per_pageNo
last_pageNo
current_pageNo
next_page_urlNo
prev_page_urlNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the presence of an output schema (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.

Parameters3/5

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.

Purpose4/5

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

The description clearly states the tool lists 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.

Usage Guidelines3/5

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_campaignsA
Read-onlyIdempotent
Inspect

List all campaigns you own (call, WhatsApp, SMS), including channel, schedule windows, and fallback config.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the tool lists 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.

Usage Guidelines4/5

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_conversationsA
Read-onlyIdempotent
Inspect

List conversations across your assistants with cursor pagination and filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo
cursorNo
per_pageNo
assistant_idNo
customer_phoneNo
external_identifierNo
whatsapp_sender_phoneNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
toNo
dataNo
fromNo
totalNo
per_pageNo
last_pageNo
current_pageNo
next_page_urlNo
prev_page_urlNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_documentsB
Read-onlyIdempotent
Inspect

List documents in a knowledge base.

ParametersJSON Schema
NameRequiredDescriptionDefault
knowledgebase_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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

The description clearly states the action 'list 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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives; 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_foldersA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo1-100, default 15

Output Schema

ParametersJSON Schema
NameRequiredDescription
toNo
dataNo
fromNo
totalNo
per_pageNo
last_pageNo
current_pageNo
next_page_urlNo
prev_page_urlNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_knowledgebasesA
Read-onlyIdempotent
Inspect

List all knowledge bases on the account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_labelsA
Read-onlyIdempotent
Inspect

List assistant labels (paginated), each with its assistants_count. Labels are tags; an assistant can carry multiple labels across folders.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo1-100, default 15

Output Schema

ParametersJSON Schema
NameRequiredDescription
toNo
dataNo
fromNo
totalNo
per_pageNo
last_pageNo
current_pageNo
next_page_urlNo
prev_page_urlNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool lists 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.

Usage Guidelines4/5

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_leadsB
Read-onlyIdempotent
Inspect

List leads with pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
toNo
dataNo
fromNo
totalNo
per_pageNo
last_pageNo
current_pageNo
next_page_urlNo
prev_page_urlNo
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus 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_toolsA
Read-onlyIdempotent
Inspect

List mid-call tools (HTTP integrations callable by an assistant during a call).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the action (list) and the resource (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.

Usage Guidelines3/5

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_trunksA
Read-onlyIdempotent
Inspect

List all SIP trunks on the account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds no new behavioral 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.

Conciseness5/5

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.

Completeness4/5

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

For a simple list tool with 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

The description implies usage for listing 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
variablesNo
assistant_idYesAssistant UUID or ID
phone_numberYesE.164-formatted destination number

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Does not mention 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).

ParametersJSON Schema
NameRequiredDescriptionDefault
phone_numberYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness5/5

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

The description is a single sentence that front-loads the verb and resource, 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.

Completeness4/5

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

For a simple tool with one 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_numberB
DestructiveIdempotent
Inspect

Release (cancel) a purchased phone number.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, such as 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_numbersA
Read-onlyIdempotent
Inspect

Search for purchasable phone numbers via the Famulor provider.

ParametersJSON Schema
NameRequiredDescriptionDefault
containsNoDigits the number should contain (numeric only, max 10)
country_codeNoISO 3166-1 alpha-2, default DE

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYes
messageYesUser message (max 2000 chars)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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

The tool is simple with 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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient in E.164 format
bodyYesMessage body (max 300 chars)
fromYesPhone number ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesMax 4096 chars
sender_idYes
recipient_phoneYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
sender_idYes
variablesNo
template_idYes
recipient_nameNo
recipient_phoneYesE.164

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior4/5

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.

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the 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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_assistantC
Idempotent
Inspect

Update an existing assistant (partial). Only the fields you send are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAssistant ID to update
modeNo
nameNoDisplay name of the assistant (max 255 chars)
typeNoAssistant call direction
toolsNo
recordNo
fillersNo
timezoneNoIANA timezone, e.g. "Europe/Berlin"
tool_idsNo
voice_idNoVoice ID from get_voices
folder_idNoFolder to place the assistant in (one folder per assistant). See list_folders. Send null to remove.
label_idsNoLabel IDs to tag the assistant with (an assistant can carry multiple labels). See list_labels.
variablesNo
language_idNoPrimary language ID from get_languages
webhook_urlNo
llm_model_idNoRequired for mode=pipeline
max_durationNo
ringing_timeNo
speech_speedNo
ambient_soundNo
endpoint_typeNo
filler_configNo
system_promptNoSystem prompt defining behavior
initial_messageNoFirst message spoken at call start (max 200 chars)
llm_temperatureNo
phone_number_idNo
voice_stabilityNo
knowledgebase_idNo
post_call_schemaNo
voice_similarityNo
is_webhook_activeNo
wait_for_customerNo
knowledgebase_modeNo
voice_mail_messageNo
allow_interruptionsNo
min_interrupt_wordsNo
multimodal_model_idNoRequired for mode=multimodal/dualplex
reengagement_promptNo
tts_emotion_enabledNo
ambient_sound_volumeNo
chat_llm_fallback_idNo
endpoint_sensitivityNo
max_silence_durationNo
post_call_evaluationNo
end_call_on_voicemailNo
interrupt_sensitivityNo
reengagement_intervalNo
secondary_language_idsNoAdditional language IDs the assistant can speak
synthesizer_provider_idNo
transcriber_provider_idNo
turn_detection_thresholdNo
enable_noise_cancellationNo
conversation_ended_retriggerNo
include_recording_in_webhookNo
max_initial_silence_durationNo
conversation_ended_webhook_urlNo
send_webhook_only_on_completedNo
conversation_inactivity_timeoutNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance on when to use 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_statusA
Idempotent
Inspect

Start or stop a call, WhatsApp, or SMS campaign. Starting validates channel config, schedule, and balance.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
campaign_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the tool's simplicity (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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool's purpose: 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.

Usage Guidelines4/5

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

The description provides clear context for when to use the tool: to 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_documentA
Idempotent
Inspect

Update a document name or description. Content cannot be changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
descriptionNo
document_idYes
knowledgebase_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the verb 'update' 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.

Usage Guidelines4/5

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_folderA
Idempotent
Inspect

Rename a folder or change its color (partial — only sent fields change).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesFolder ID
nameNoNew name (max 255 chars, unique per account)
colorNoNew badge color, or null to remove

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the tool's simplicity (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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_knowledgebaseA
Idempotent
Inspect

Rename or describe an existing knowledge base.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
nameNo
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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

For a simple update tool with 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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_labelA
Idempotent
Inspect

Rename a label or change its color (partial — only sent fields change).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesLabel ID
nameNoNew name (max 255 chars, unique per account)
colorNoNew badge color, or null to remove

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_leadC
Idempotent
Inspect

Update a lead. Variables are merged with existing ones.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
statusNo
variablesNo
campaign_idNo
phone_numberNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool 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_toolC
Idempotent
Inspect

Update a mid-call tool. headers/schema fully replace existing values when provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
nameNo
methodNo
schemaNo
headersNo
timeoutNo
endpointNo
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Does not mention 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_numberA
Idempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPhone number ID to update
nicknameNoShort label, max 50 chars. null clears it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_trunkC
Idempotent
Inspect

Update a SIP trunk (partial).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
sip_addressNo
country_codeNo
phone_numberNo
sip_passwordNo
sip_usernameNo
outbound_proxyNo
sip_calling_formatNo
allowed_inbound_ipsNo
inbound_authorization_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
messageNo
Behavior2/5

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.

Conciseness3/5

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.

Completeness1/5

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

Given the tool's complexity (10 parameters, 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.

Parameters1/5

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.

Purpose5/5

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

The description clearly states the verb 'Update' 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (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.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.