seven-mcp
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@seven-mcpsend an SMS saying 'Hello' to +1234567890"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Seven
Model Context Protocol (MCP) server for the seven.io API. This server provides comprehensive access to seven.io's SMS, voice, RCS messaging, and account management services.
Features
Messaging
SMS: Send and manage SMS messages
RCS: Send Rich Communication Services messages with media and suggestions
Voice: Send text-to-speech voice calls
Account Management
Balance: Check account balance
Pricing: Get pricing information by country
Analytics: View account statistics
Lookup Services
Format Validation: Validate phone number formats
HLR: Home Location Register lookups (network info, roaming status)
MNP: Mobile Number Portability lookups (carrier information)
CNAM: Caller ID name lookups
RCS Capabilities: Check if a number supports RCS
Contact Management
Contacts: Full CRUD operations for contacts
Groups: Manage contact groups
Phone Numbers
Browse, purchase, and manage phone numbers
Advanced Features
Webhooks: Register webhooks for events
Subaccounts: Create and manage subaccounts
Status & Logbook: Track message delivery and view history
Related MCP server: lingtai-whatsapp
Installation
npm install -g @seven.io/mcpAuthentication
This MCP server supports two authentication methods:
Option 1: OAuth 2.0 with PKCE (Recommended)
OAuth provides better security with automatic token refresh and fine-grained scopes.
Login via CLI:
npx @seven.io/mcp loginThis will:
Open your browser to seven.io OAuth authorization
Request necessary permissions (SMS, Voice, RCS, etc.)
Store tokens securely in your system keychain
Auto-refresh tokens when they expire
CLI Commands:
# Login with OAuth
npx @seven.io/mcp login
# Check authentication status
npx @seven.io/mcp status
# Logout (remove stored tokens)
npx @seven.io/mcp logoutOption 2: API Key (Legacy)
For backwards compatibility, you can still use an API key:
export SEVEN_API_KEY="your-api-key"Get your API key from the seven.io dashboard.
Priority
If both authentication methods are configured, OAuth takes priority.
Usage with Claude Desktop
Add this to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
With OAuth (recommended):
{
"mcpServers": {
"seven": {
"command": "npx",
"args": ["@seven.io/mcp"]
}
}
}With API Key:
{
"mcpServers": {
"seven": {
"command": "npx",
"args": ["@seven.io/mcp"],
"env": {
"SEVEN_API_KEY": "your-api-key"
}
}
}
}With Debug Logging:
To enable request/response logging for debugging, add the SEVEN_LOG_FILE environment variable:
{
"mcpServers": {
"seven": {
"command": "npx",
"args": ["@seven.io/mcp"],
"env": {
"SEVEN_API_KEY": "your-api-key",
"SEVEN_LOG_FILE": "/tmp/mcp-seven-debug.log"
}
}
}
}Then monitor the log file:
tail -f /tmp/mcp-seven-debug.logNote: If using OAuth, run npx @seven.io/mcp login before starting Claude Desktop.
Available Tools
Messaging Tools
send_sms- Send SMS messagesdelete_sms- Delete scheduled SMSsend_rcs- Send RCS messagesdelete_rcs- Delete RCS messagesrcs_events- Handle RCS eventssend_voice- Send voice callshangup_voice- End active voice calls
Account Tools
get_balance- Check account balanceget_pricing- Get pricing informationget_analytics- View account statistics
Lookup Tools
lookup_format- Validate phone number formatlookup_hlr- Home Location Register lookuplookup_mnp- Mobile Number Portability lookuplookup_cnam- Caller ID name lookuplookup_rcs- Check RCS capabilities
Status & Logbook Tools
get_status- Check message delivery statusget_logbook_sent- View sent messagesget_logbook_received- View received SMSget_logbook_voice- View voice call history
Phone Numbers Tools
get_available_numbers- List available numbersorder_number- Purchase a phone numberget_active_numbers- List active numbersget_number- Get number detailsupdate_number- Update number configurationdelete_number- Cancel/delete number
Contact Tools
list_contacts- List all contactscreate_contact- Create new contactget_contact- Get contact by IDupdate_contact- Update contactdelete_contact- Delete contact
Group Tools
list_groups- List all groupscreate_group- Create new groupget_group- Get group by IDupdate_group- Update groupdelete_group- Delete group
Subaccount Tools
list_subaccounts- List all subaccountscreate_subaccount- Create new subaccountupdate_subaccount- Update subaccount settingstransfer_credits- Transfer credits to subaccountdelete_subaccount- Delete subaccount
Webhook Tools
list_webhooks- List registered webhookscreate_webhook- Register new webhookdelete_webhook- Delete webhook
Sender Tools
validate_sender- Validate sender identifiers
Example Usage
Once configured, you can use the tools in Claude:
Send an SMS to +1234567890 saying "Hello from seven.io!"Check my account balanceLook up the carrier information for phone number +1234567890Development
Watch mode
npm run watchBuild
npm run buildTesting
Run the comprehensive test suite:
npm testRun tests in watch mode:
npm run test:watchGenerate coverage report:
npm run test:coverageTest Coverage
The test suite includes:
Unit tests for all API client methods
Tool tests for all 40+ MCP tools covering:
RCS messaging (3 tools)
SMS messaging (2 tools)
Voice calls (2 tools)
Account management (3 tools)
Lookup services (5 tools)
Status & Logbook (4 tools)
Phone number management (6 tools)
Contact management (5 tools)
Group management (5 tools)
Subaccount management (5 tools)
Webhook management (3 tools)
Sender validation (1 tool)
Integration tests verifying all tools export correctly and have valid schemas
Endpoint validation tests that verify API endpoint paths are correct (requires SEVEN_API_KEY)
Coverage target: 80% for branches, functions, lines, and statements.
Endpoint Validation
To run endpoint validation tests that verify the API paths are correct:
SEVEN_API_KEY=your-api-key npm testThese integration tests ensure that endpoints match the seven.io API documentation and will catch issues like incorrect paths (e.g., using /logbook/received instead of /journal/inbound).
API Documentation
For detailed API documentation, visit docs.seven.io.
License
MIT
Available Tools
44 toolscreate_contactC
Create a new contact
| Name | Required | Description | Default |
|---|---|---|---|
| firstname | No | First name | |
| lastname | No | Last name | |
| mobile_number | No | Mobile phone number | |
| home_number | No | Home phone number | |
| No | Email address | ||
| address | No | Street address | |
| postal_code | No | Postal/ZIP code | |
| city | No | City | |
| birthday | No | Birthday | |
| notes | No | Notes | |
| avatar | No | Avatar image URL | |
| groups | No | Array of group IDs to add the contact to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It merely states the action without discussing side effects, authorization requirements, or validation behavior (e.g., what happens if no fields are provided).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words, achieving high conciseness. However, it lacks structure like bullet points or prioritized information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 12 optional parameters and no output schema, the description provides no information on return value, error handling, or constraints. It is insufficient for an agent to fully understand usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter already has a description. The tool description adds no additional meaning, earning a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'contact', making the tool's primary function obvious. However, it does not differentiate from sibling tools like create_group beyond the resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. In a context with siblings like create_group or create_subaccount, the description provides no criteria for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_groupA
Create a new contact group
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Group name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only says 'Create' without disclosing side effects, permissions, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words, perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimal but sufficient for a simple create tool with one parameter; missing details like return value or duplicate handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the single parameter with description, and the description adds no extra meaning beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create) and resource (contact group), distinguishing it from siblings like create_contact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, but for a simple creation tool this is minimally acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_subaccountC
Create a new subaccount
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Full first and last name of the account owner | |
| Yes | Email address of the account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It fails to mention key traits such as whether the creation triggers notifications, requires authentication, or what happens if a duplicate name/email is used. This is insufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, making it concise, but it sacrifices necessary behavioral context. It is adequately front-loaded but incomplete, earning a middle score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema and annotations, the description should explain what the tool returns (e.g., success indicator, created subaccount ID) or any side effects. It does not, leaving the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the parameter descriptions in the schema are already clear ('Full first and last name', 'Email address'). The tool description adds no additional meaning, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new subaccount' clearly states the verb (create) and resource (subaccount), distinguishing it from sibling tools like create_contact or create_group. However, it does not elaborate on what a subaccount represents, which could cause ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., update_subaccount) or any prerequisites. The agent must infer context solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_webhookC
Register a new webhook
| Name | Required | Description | Default |
|---|---|---|---|
| target_url | Yes | Webhook URL to receive events | |
| event_type | Yes | Event type to trigger webhook (e.g., sms.mo, dlr) | |
| request_method | No | HTTP method for webhook requests | |
| event_filter | No | Filter events by phone number or other criteria | |
| headers | No | Custom HTTP headers to send with webhook requests. Multiple headers separated by line breaks |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility for behavioral disclosure. It fails entirely, offering no information about side effects, authentication requirements, rate limits, or what happens after registration (e.g., immediate activation).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no fluff. It is appropriately front-loaded and easy to read. However, it could be slightly more informative without losing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description is incomplete. It does not explain what the tool returns (e.g., webhook ID), validation rules, or potential errors. For a tool with 5 parameters and no output documentation, more context is needed for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter well-described in the schema (e.g., target_url, event_type with enums). The description adds no additional meaning beyond the schema, which is acceptable per the baseline rule for high coverage. However, no extra clarification is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Register a new webhook' clearly states the action (register/create) and the resource (webhook). It effectively distinguishes from sibling tools like delete_webhook, list_webhooks, and create_contact, making the tool's purpose immediately obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives or prerequisites. There is no mention of conditions such as needing an active account or number, nor any when-not-to-use advice. The description lacks any usage context beyond the bare action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_contactB
Delete a contact
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Contact ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden for behavioral disclosure. It only states 'Delete a contact' without mentioning irreversibility, permissions, cascading effects, or what happens after deletion. For a mutation tool, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is appropriately sized for a simple tool, though it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (1 param, no output schema, no annotations), the description is too minimal. It lacks details on deletion behavior, error handling, or return value expectations, leaving the agent with insufficient context for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with the single parameter 'id' already described as 'Contact ID to delete'. The description adds no extra meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a contact' is a specific verb+resource pair that clearly states the action and target. It unambiguously distinguishes from sibling tools like create_contact, update_contact, list_contacts, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. There are many delete tools (delete_group, delete_subaccount, etc.) but no differentiation. No prerequisites or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_groupC
Delete a contact group
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Group ID to delete | |
| delete_contacts | No | Also delete all contacts in the group |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only says 'delete a contact group', without disclosing whether deletion is permanent, requires permissions, or what happens to group contacts by default. The parameter delete_contacts suggests non-destructive default, but this is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, direct and front-loaded. Could include more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema. Description does not explain return value, nor default behavior when delete_contacts is false. For a tool with side effects, this is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters well-described in the schema. The description adds no additional meaning beyond the schema, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Delete a contact group', specifying verb and resource. However, it does not differentiate from sibling delete tools like delete_contact or delete_number, relying on the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., delete_contact), nor any context about prerequisites or side effects. The parameter delete_contacts hints at a choice but is not explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_numberB
Cancel/delete a phone number
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | Phone number to delete | |
| delete_immediately | No | Delete immediately instead of at end of billing period |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Lacks annotation coverage and description does not disclose behavioral traits such as immediate vs deferred deletion, reversibility, or impact on other services. The parameter 'delete_immediately' hints at scheduling but is not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with one sentence, but lacks structure or front-loading of critical details. It is not overly verbose, so it earns a 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deletion tool, the description omits important context like what happens after deletion, whether the number must be inactive, and the response format. Incomplete relative to tool complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameter descriptions exist. The description adds no extra meaning beyond what the schema provides, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Cancel/delete' and resource 'phone number', distinguishing it from sibling tools that delete other resources like contacts or groups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives, but the resource type makes it self-evident. No mention of prerequisites or scenarios to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_rcsB
Delete a scheduled RCS message
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | RCS message ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states the action but does not disclose failure modes, authorization requirements, or effects on related data. For a destructive operation, more detail is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is concise and directly conveys the action without extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple delete operation with one parameter, but lacks details like error states or preconditions. Could be more complete given absence of annotations and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter 'id' is described as 'RCS message ID to delete'. The description adds no extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (Delete) and resource (scheduled RCS message), distinguishing it from siblings like delete_sms which deletes SMS messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites or when-not scenarios. It does not indicate that the message must be scheduled and not yet sent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_smsA
Delete scheduled SMS message(s)
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | SMS message ID(s) to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'Delete scheduled SMS message(s)' without disclosing behavioral traits like destructiveness, reversibility, or effects on sent messages.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with a single short sentence that is front-loaded and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is adequately complete for basic understanding, but lacks details on edge cases or return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds context by specifying 'scheduled' messages, though it closely mirrors the schema's parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete) and the resource (scheduled SMS messages), distinguishing it from sibling tools like delete_contact or delete_group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as delete_rcs or other delete operations. No context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_subaccountB
Delete a subaccount
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Subaccount ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It implies a destructive action but does not state irreversibility, side effects, or permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Efficient but could be slightly expanded with key details without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with one parameter and no output schema, the description is minimally adequate. However, missing context about consequences or prerequisites limits completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (single parameter 'id' described as 'Subaccount ID to delete'). The description adds no value beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a subaccount' clearly states the action (delete) and the resource (subaccount), which distinguishes it from sibling tools like delete_contact or delete_group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as deactivating or archiving subaccounts. No when/when-not or equivalent alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_webhookD
Delete a webhook
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Webhook ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It fails to state that deletion is destructive and irreversible, nor does it mention any permissions or consequences. The word 'delete' implies mutability but lacks necessary cautionary context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely concise at three words, this under-specification sacrifices completeness. A good description should convey essential behavioral context without being overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and lack of output schema, the description should at minimum clarify that deletion is permanent and the webhook will no longer function. It fails to provide this context, leaving the agent uninformed about consequences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with the parameter 'id' well-described as 'Webhook ID to delete'. The description adds no additional parameter semantics beyond what the schema already provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a webhook' is a tautology that merely restates the tool name without adding any specificity. It does not distinguish this tool from other delete operations like delete_contact or delete_group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like create_webhook or list_webhooks. There is no mention of prerequisites, side effects, or scenarios where deletion is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_active_numbersC
List all active phone numbers
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only states a read operation, but lacks disclosure about pagination, authentication requirements, or whether 'active' has a specific definition. Additional behavioral context would be helpful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (5 words) and front-loaded with the key action. Every word is necessary; no superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, no output schema), the description is adequate but leaves gaps: it does not specify scope (e.g., user-level or account-wide), return format, or what 'active' means. More context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (no parameters). The description adds no value beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all active phone numbers' clearly states the verb (list) and resource (active phone numbers), but does not distinguish it from sibling tools like get_available_numbers or get_number, which have similar purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives such as get_available_numbers (for available numbers) or get_number (for a single number). The description gives no contextual cues for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_analyticsC
Get account statistics and analytics
| Name | Required | Description | Default |
|---|---|---|---|
| start | No | Start date (YYYY-MM-DD) | |
| end | No | End date (YYYY-MM-DD) | |
| subaccounts | No | Subaccount filter: "only_main" for main account only, "all" for all accounts, or specific subaccount ID (integer) | |
| group_by | No | Group analytics by (country, date, label, subaccount) | |
| label | No | Filter by label |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits like read-only nature, data freshness, or rate limits. The tool is likely read-only, but this is not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence, front-loading the purpose. It is concise but could include a brief usage example or note on required parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, no output schema, and no annotations, the description is insufficient. Missing details like what analytics are returned, common use cases, or parameter interdependencies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 5 parameters have descriptions in the schema, providing good coverage. The tool description adds minimal value beyond the schema, such as hinting at analytics focus. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves account statistics and analytics, distinguishing it from other 'get' tools like get_balance or get_contact. However, it does not specify the scope or type of analytics, which could be improved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_balance (financial stats) or list_subaccounts (account listing). The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_available_numbersB
List available phone numbers for purchase
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Country code to filter available numbers | |
| type | No | Number type (e.g., mobile, landline) | |
| features_sms | No | Filter numbers supporting SMS | |
| features_a2p_sms | No | Filter numbers supporting A2P SMS | |
| features_voice | No | Filter numbers supporting voice calls |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states 'list', implying a read operation, but does not discuss side effects, authentication needs, rate limits, or any behavioral nuances. It adds minimal value beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that is to the point and not wasteful. However, it could be slightly more structured or include additional context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 optional parameters, no output schema, and many sibling tools, the description is too minimal. It fails to mention pagination, response format, or any filtering behavior, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with each parameter explained (country, type, features). The description adds no extra meaning beyond the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List available phone numbers for purchase' clearly states the action (list) and resource (available phone numbers for purchase). It distinguishes from siblings like get_active_numbers (lists already purchased numbers) and get_number (single number detail).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as get_active_numbers or order_number. It does not specify that this is for numbers available to buy, nor does it 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_balanceB
Check account balance
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits. It only says 'Check account balance' with no details on read-only nature, permissions, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, perfectly concise with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description is minimal. It lacks context about what account, currency, or possible error states, making it only partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is 100%. The description adds no parameter info, but the baseline for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Check account balance' clearly states the tool's action and resource. It is specific enough to distinguish from sibling tools, though it could add scope like 'of the authenticated user'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. Sibling tools like get_pricing or get_status could be related but no comparisons are made.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contactB
Get a specific contact by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Contact ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It implies a read operation but lacks details on error handling (e.g., if ID not found), response format, or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, efficient, and front-loaded with clear verb and resource. No unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get by ID tool, the description is adequate but lacks information about return values or error states, especially since no output schema is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the id parameter described as 'Contact ID'. Description adds no extra meaning beyond schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get), the resource (contact), and the method (by ID), distinguishing it from siblings like list_contacts (multiple) and other get tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., list_contacts for multiple). No prerequisites 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_groupB
Get a specific group by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Group ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only says 'Get' implying read-only, but does not disclose error handling, permissions, or behavior for missing IDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence efficiently conveys the purpose without extra words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool with one parameter, no nested objects, or output schema, the description is minimally but sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (one parameter described as 'Group ID'). The description adds no new meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get a specific group by ID', indicating the action (get) and resource (group). The mention of ID distinguishes it from list_groups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like list_groups. Does not mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_logbook_receivedC
View received SMS messages
| Name | Required | Description | Default |
|---|---|---|---|
| date_from | No | Start date (YYYY-MM-DD) | |
| date_to | No | End date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry behavioral burden. 'View' implies read-only, but no details on pagination, limits, or response format. Minimal disclosure beyond basic nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at 4 words. However, it is under-specified; while not verbose, it sacrifices completeness for brevity. Still, it is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a simple schema (2 optional params) and no output schema, description should provide more context. Missing details about output, filtering scope, and any default behavior. Incomplete for safe agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both parameters have descriptions in schema). Description adds no extra meaning beyond schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'View received SMS messages', using specific verb and resource. Differentiates from siblings like get_logbook_sent (sent) and get_logbook_voice (voice). Could be slightly more detailed but effectively conveys core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not mention optional date filtering or that it is a read operation. Lacks context for selection among sibling log tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_logbook_sentC
View sent messages in logbook
| Name | Required | Description | Default |
|---|---|---|---|
| date_from | No | Start date (YYYY-MM-DD) | |
| date_to | No | End date (YYYY-MM-DD) | |
| state | No | Filter by message state | |
| limit | No | Maximum number of entries to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behaviors. It only states 'View,' implying read-only, but lacks details on pagination, ordering, or other traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence with no extraneous information. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 optional parameters and no output schema, the description lacks completeness: it omits default behavior, result format, date range semantics, and limit handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented structurally. The description adds no further semantic context beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (View) and target (sent messages in logbook), but does not differentiate from sibling tools like get_logbook_received and get_logbook_voice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives; no mention of context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_logbook_voiceC
View voice call history
| Name | Required | Description | Default |
|---|---|---|---|
| date_from | No | Start date (YYYY-MM-DD) | |
| date_to | No | End date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description lacks details about behavioral traits such as pagination, sorting, cost implications, permissions, or what the response looks like. The minimal description does not compensate for missing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, very concise sentence with no wasted words. However, it is too short to convey necessary information, so it's not ideal but still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should explain return format or behavior when parameters are omitted. It does not, leaving significant gaps in understanding the tool's use and results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both date parameters having clear format descriptions. The tool description adds no further insight beyond the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'View voice call history', specifying the action (view) and resource (voice call history). It implicitly distinguishes from sibling tools like get_logbook_sent and get_logbook_received, which are for SMS logs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. While sibling tool names imply distinction, the description itself offers no context about when to choose this over other logbook tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_numberA
Get details of a specific active phone number
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | Phone number to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears full burden. It only states 'Get details' without disclosing behaviors like read-only operation, authentication needs, or what happens if the number is inactive. For a retrieval tool, more transparency is expected (e.g., latest response format, error states).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, terse sentence with zero unnecessary words. It efficiently conveys the tool's purpose without redundancy or overload.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (1 param, no output schema), but the description does not specify what 'details' are returned, which could confuse an agent. Since there is no output schema, more information would enhance completeness. However, for a basic retrieval, it is minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the one parameter, and the description adds no additional meaning beyond the schema's 'Phone number to retrieve'. According to the rule, baseline is 3 when coverage is high, so this is adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get details of a specific active phone number' clearly specifies a verb ('Get'), resource ('phone number details'), and scope ('specific active'), distinguishing it from siblings like get_active_numbers which lists numbers. No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for retrieving details of one number, but provides no explicit guidance on when to use versus alternatives (e.g., get_active_numbers for listing, get_contact for contacts). The sibling names provide context, but the description itself lacks explicit when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricingC
Get pricing information for SMS, voice, and other services
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Country code (ISO 3166-1 alpha-2) to get specific pricing | |
| format | No | Response format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden for behavioral disclosure. It only states 'Get pricing information' implying a read operation, but does not mention authentication needs, rate limits, default behavior (e.g., when no country is specified), or response structure. This is insufficient for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 10 words, directly stating the tool's purpose with no redundancy. It is efficiently front-loaded and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description should provide more context about what the pricing information includes, how it is structured, and defaults. It falls short by not explaining output format or behavior when parameters are omitted, leaving the agent with an incomplete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% as both parameters have descriptions in the input schema. The description adds no additional meaning beyond what is already in the schema, e.g., no clarification on the effect of omitting the country parameter. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb 'Get' and the resource 'pricing information' for SMS, voice, and other services. It distinguishes from sibling tools like get_balance or get_analytics, though 'other services' is vague. Overall, the purpose is clear but not maximally specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention when not to use it, prerequisites, or context for choosing this tool over similar ones like get_balance or lookup services. The agent is left to infer the use case without support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statusB
Get detailed information about a sent message using its ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message ID to retrieve details |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description only vaguely mentions 'detailed information' without specifying type, scope, or side effects. Missing behavioral traits like read-only nature or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, efficient and front-loaded with key action and resource, no superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks output schema and details on return format; minimal description leaves significant gaps for agent understanding of what 'detailed information' entails.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the single parameter fully; description merely restates using ID, adding no new semantic insight beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves detailed information about a sent message using its ID, distinguishing it from other get_* tools targeting different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as other status or retrieval tools. The description lacks context for suitable scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hangup_voiceC
End an active voice call
| Name | Required | Description | Default |
|---|---|---|---|
| call_id | Yes | Voice call ID to hangup |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the action. It does not disclose behavior like what happens if the call is already ended, required permissions, or side effects. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It is well structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 param, no output schema), the description is too minimal. It does not explain return values, error states, or usage preconditions, which are essential for an agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description has no additional value over the schema. Baseline 3 is appropriate; no extra context is provided for the call_id parameter beyond its schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'End an active voice call' uses a specific verb and resource, clearly distinguishing it from sibling tools like send_voice (start) or get_logbook_voice (logs). It could be slightly more precise by mentioning the call_id context, but it is effective.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives or any prerequisites (e.g., call must be active). The agent must infer usage from context, which is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_contactsA
List all contacts
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility for behavioral disclosure. It fails to mention any traits such as pagination, rate limits, ordering, or whether the list includes all contact details or just summaries. The description is too brief to ensure informed usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two words. It front-loads the core action without waste. However, it sacrifices necessary detail for brevity, so it does not perfectly earn its place given the lack of behavioral and usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and no annotations, the description is insufficient for complete understanding. It omits crucial context like pagination, return format, or whether the list is limited to the current account. A more complete description would clarify these aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and schema description coverage is 100%. Per guidelines, 0 parameters yields a baseline of 4. The description adds no parameter info, but none is needed since there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all contacts' uses a specific verb ('list') and resource ('contacts'), clearly distinguishing it from sibling tools like 'get_contact' (singular) and 'create_contact'. It states the exact scope (all contacts) without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives is provided. While the zero-parameter nature makes it straightforward, there is no mention of filtering, sorting, or when one might prefer a different tool (e.g., searching). Usage is implied but not explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_groupsB
List all contact groups
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description only states the basic action. Does not disclose that this is a read-only operation, whether results are paginated, or behavior when no groups exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with verb and resource, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with no parameters, but description does not explain what information is returned (e.g., group names, IDs). Adequate for a basic list operation but incomplete without output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters (schema coverage 100% empty), baseline score of 4 applies. Description adds no parameter info because none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states verb 'List' and resource 'all contact groups', making purpose clear. However, it does not distinguish from sibling tool 'get_group' which likely retrieves a single group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_group or list_contacts. Agent must infer from name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_subaccountsB
List all subaccounts
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, performance implications, or authentication requirements. The burden is on the description to compensate for missing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is three words and perfectly concise with no wasted content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and no output schema, the description is complete. It tells exactly what the tool does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has no parameters, and schema coverage is 100%. Baseline for 0 parameters is 4. The description does not need to add parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List all subaccounts' with a specific verb and resource. It distinguishes itself from sibling tools like list_contacts by naming a different entity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when or when not to use this tool versus alternatives. For example, there is no suggestion that if you need a single subaccount, you might use a different tool (though get_subaccount is not listed).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_webhooksB
List all registered webhooks
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only says 'List all registered webhooks' without mentioning whether it is read-only, requires authentication, or how results are returned. Important behavioral aspects are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at one sentence, which is appropriate for a simple tool. It is front-loaded with the verb and resource, but could be slightly more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, the description should provide more context about the output format, pagination, or side effects. It only gives the basic purpose, leaving the agent without enough information to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters and the schema coverage is trivially 100%. For zero-parameter tools, baseline is 4. The description adds no additional semantic meaning beyond what the schema implies, but that is acceptable due to the lack of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and resource (webhooks), making it easy to understand what the tool does. However, it does not specify the scope (e.g., account-level) or differentiate from other list tools, which is acceptable given the unique resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like list_contacts or list_groups. The description simply states the function without any context about prerequisites, typical use cases, or situations to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_cnamC
Perform Caller ID name lookup
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | Phone number for CNAM lookup |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It only states the action but discloses no behavioral traits—whether it makes external calls, rate limits, idempotency, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single sentence with no waste, but it is under-specified for a tool with no annotations or output schema. Conciseness is acceptable but at the cost of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should provide hints about return values or error conditions. It only states the action, leaving agents guessing about results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters and the description adds no extra meaning beyond 'Phone number for CNAM lookup'. Baseline 3 applies as schema is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description 'Perform Caller ID name lookup' clearly states verb and resource, and implicitly distinguishes from sibling lookup tools like lookup_hlr or lookup_mnp by specifying 'Caller ID name'. However, it does not explicitly differentiate usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., lookup_hlr, lookup_format). The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_formatB
Validate phone number format
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | Phone number to validate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior but only states the action. It omits crucial details such as response format (boolean vs error), side effects, rate limits, or validation criteria, leaving the agent uninformed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single phrase, front-loading the core action. However, it sacrifices completeness for brevity, which is acceptable given the tool's simplicity but not ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema or annotations, the description is insufficient for effective use. It does not explain return values, error handling, or validation behavior, leaving gaps despite the simple input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the 'number' parameter is described). The description adds no extra meaning beyond 'phone number' already in the schema, so it meets baseline but does not enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Validate phone number format' clearly states the tool's purpose with a specific verb and resource. It distinguishes itself from sibling lookups like lookup_cnam, lookup_hlr, lookup_mnp, and lookup_rcs, which have different focuses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any exclusions or prerequisites. The agent receives no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_hlrB
Perform Home Location Register lookup (network info, roaming status)
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | Phone number for HLR lookup |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description offers no behavioral details beyond the purpose. It does not disclose side effects, rate limits, authorization requirements, or response structure, leaving the agent uninformed about operational implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded, stating the core purpose in one sentence. However, it could be more concise by omitting the parenthetical, but the current form is efficient for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter and lack of output schema, the description provides minimal but adequate context for a basic lookup. It could be improved by hinting at the return format or any prerequisites, but as is, it meets a minimum viable level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no extra meaning beyond the 'number' parameter already documented. The baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (HLR lookup) and the subject (network info, roaming status). It distinguishes from sibling lookup tools like lookup_cnam, lookup_format, lookup_mnp by specifying a different resource (Home Location Register) and type of information returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as when network vs. caller name info is needed. The description does not include any context for selection or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_mnpC
Perform Mobile Number Portability lookup (carrier information)
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | Phone number for MNP lookup |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only states the purpose. It does not mention whether the lookup is cost-free, any rate limits, data recency, or response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no unnecessary words. It is well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's simplicity, the description is too brief given the presence of sibling lookup tools. It lacks information on what the lookup returns, any prerequisites, or limitations, leaving the agent without enough context to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter. The description adds 'carrier information' which is already implied by 'Mobile Number Portability lookup', providing marginal additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs a Mobile Number Portability lookup for carrier information. However, it does not differentiate from sibling lookup tools like lookup_hlr or lookup_cnam, which could also provide carrier-related data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus other lookups (e.g., lookup_hlr for detailed network info). The description lacks usage context or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_rcsB
Check RCS capabilities for a phone number
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | Phone number to check RCS capabilities |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'check RCS capabilities', which implies a read-only operation, but it does not disclose what capabilities are checked, error conditions, rate limits, or the response format. This is insufficient for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that is front-loaded and efficient. However, it may be too concise, omitting important details that would improve usability. It earns its place but could be expanded slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (single required parameter, no output schema), the description is minimally adequate. However, it lacks context about what RCS capabilities entail, expected return values, and error handling. More detail would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with the parameter 'number' described as 'Phone number to check RCS capabilities'. The description repeats this information without adding new meaning or constraints beyond what the schema already provides. Since coverage is high, baseline is 3, but no additional value is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Check RCS capabilities for a phone number' clearly states the action (check) and the resource (RCS capabilities for a specific number). It distinguishes itself from sibling lookup tools like lookup_cnam, lookup_format, lookup_hlr, and lookup_mnp, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 its siblings or alternatives. There is no mention of context, prerequisites, or conditions that would help an agent decide to invoke lookup_rcs instead of other lookup tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
order_numberC
Purchase a phone number
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | Phone number to purchase | |
| payment_interval | No | Payment interval for the number (default: annually) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states 'Purchase a phone number' without disclosing effects on balance, required permissions, error conditions, or what happens if the number is already owned. This is insufficient for an AI agent to understand side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is front-loaded and concise. However, it could be slightly expanded to include critical context without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters, no output schema, and no annotations, the description is incomplete. It fails to mention return values, error handling, or how it integrates with sibling tools like 'get_available_numbers' and 'get_active_numbers'. Essential context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds no additional meaning beyond the schema; it does not explain how the parameters relate to the purchase action. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Purchase a phone number' clearly states the action (purchase) and resource (phone number). It distinguishes from sibling tools like 'get_number', 'update_number', and 'delete_number' by indicating ownership acquisition. However, it lacks specificity about the ordering process or outcome.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'get_available_numbers' or 'get_active_numbers'. The description does not mention prerequisites or related tools, leaving the agent without context for proper selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rcs_eventsC
Handle RCS events (delivery reports, read receipts, IS_TYPING, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| event_type | Yes | Event type (IS_TYPING, READ, DELIVERED, etc.) | |
| phone | No | Phone number (for IS_TYPING events) | |
| to | No | Recipient phone number | |
| message_id | No | Message ID (for READ events) | |
| msg_id | No | Message ID (alternative) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the full burden. It fails to explain what 'Handle' means operationally—e.g., whether it sends events, registers callbacks, or modifies state. Side effects and requirements are undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but at the expense of clarity. It sacrifices useful details for brevity, making it insufficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, and the tool's complexity (multiple parameter interactions for different event types), the description is incomplete. It does not cover return values, error behavior, or usage patterns for each event type.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with brief descriptions for each parameter. The tool description adds marginal value by grouping event types but does not explain relationships between parameters (e.g., why 'phone' and 'to' both exist). Redundancy (message_id/msg_id) is not clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description lists specific event types (delivery reports, read receipts, IS_TYPING), indicating it deals with RCS events. However, the verb 'Handle' is vague; it does not clarify whether this tool sends or receives these events, leaving ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'send_rcs' or 'delete_rcs'. The description does not specify context or prerequisites, leaving the agent without help in choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_rcsC
Send an RCS (Rich Communication Services) message
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient phone number | |
| text | No | Message text content | |
| media | No | URL to media file (image, video, etc.) | |
| suggestions | No | Quick reply suggestions | |
| orientation | No | Media orientation | |
| from | No | Sender identifier | |
| foreign_id | No | Custom ID for tracking | |
| delay | No | Delayed sending timestamp (Unix timestamp or ISO 8601) | |
| ttl | No | Time to live in minutes | |
| label | No | Custom label for the message | |
| performance_tracking | No | Enable performance tracking |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose any behavioral traits such as carrier dependency, fallback behavior, or rate limits. It only says 'send an RCS message' without further context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, efficient and to the point, but it could incorporate more useful information without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's 11 parameters and lack of output schema/annotations, the description is too sparse. It fails to explain the interplay between parameters like media and orientation, or any sending constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-described in the schema. The description adds no additional semantic information beyond what the schema provides, which is acceptable but not enhanced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (send) and the resource (RCS message), distinguishing it from siblings like send_sms and send_voice. However, it lacks details on what RCS enables over SMS, which could be more explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as send_sms or send_voice. There are no usage conditions, prerequisites, or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_smsC
Send an SMS message to one or multiple recipients
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient phone number(s) | |
| text | Yes | SMS message text | |
| from | No | Sender ID (alphanumeric or phone number) | |
| delay | No | Delayed sending timestamp (Unix timestamp or ISO 8601) | |
| debug | No | Enable debug mode (no actual sending) | |
| flash | No | Send as flash SMS | |
| no_reload | No | Disable automatic reloading of phone numbers | |
| unicode | No | Enable unicode mode | |
| utf8 | No | Enable UTF-8 encoding | |
| details | No | Return detailed response | |
| return_msg_id | No | Return message ID | |
| performance_tracking | No | Enable performance tracking | |
| label | No | Custom label for the message | |
| foreign_id | No | Custom ID for tracking | |
| ttl | No | Time to live in minutes | |
| udh | No | User Data Header for binary SMS | |
| is_binary | No | Send as binary SMS | |
| files | No | File attachments for SMS |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing side effects. 'Send' implies a mutating operation, but there is no mention of costs, delivery guarantees, idempotency, or potential failures. This leaves agents uncertain about consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is front-loaded with the core action. However, it sacrifices useful detail for brevity, slightly lowering the score from a perfect 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high number of parameters (18) and lack of output schema or annotations, the description is too minimal. It fails to explain essential behavioral traits (e.g., how 'to' handles multiple numbers, what 'debug' does, rate limits). More context is needed for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 18 parameters have descriptions in the input schema, providing solid coverage. However, the tool description adds no extra context beyond the schema. A 3 is appropriate when schema descriptions are comprehensive but the description doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send') and resource ('SMS message'), and hints at multiple recipients. This differentiates from sibling tools like send_rcs and send_voice, but could be more explicit about additional capabilities like scheduling or binary messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites (e.g., balance, sender validation), and no notes on constraints like rate limits. Agents must infer from the parameter schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_voiceB
Send a voice call with text-to-speech
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient phone number(s) | |
| text | Yes | Text to be converted to speech | |
| from | No | Caller ID | |
| xml | No | Use XML for advanced voice features | |
| debug | No | Enable debug mode | |
| ringtime | No | Ring time in seconds before timeout | |
| foreign_id | No | Custom ID for tracking |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states basic action, omitting details like async behavior, call failure handling, cost implications, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is efficient and front-loaded. Slightly sparse but acceptable for high coverage schema. Could add a second sentence without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters and no output schema, the description is incomplete. Lacks details on return values, error scenarios, or behavioral nuances for a voice call tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The description adds no extra meaning beyond the schema, earning baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Send a voice call with text-to-speech' clearly identifies the tool's action (send), resource (voice call), and specific modality (text-to-speech). It distinguishes well from siblings like send_sms or send_rcs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., send_sms, hangup_voice). The description lacks context for appropriate usage or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_creditsB
Manually transfer credits to a subaccount
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Subaccount ID | |
| amount | Yes | Amount of credits to transfer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description says 'Manually transfer' but does not disclose behavioral traits like mutability, required permissions, potential side effects, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the key action and resource, but it could benefit from slightly more elaboration on usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema or annotations, and only two required parameters, the description lacks completeness about expected behavior, such as whether the operation is idempotent or what happens on insufficient balance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and descriptions for both parameters ('Subaccount ID', 'Amount of credits to transfer') are clear. The description adds no extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb 'transfer' and resource 'credits to a subaccount', distinguishing it from all sibling tools which deal with contacts, groups, numbers, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives, nor any conditions or prerequisites for transferring credits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_contactA
Update a contact. To add/remove contact from groups, provide the complete list of group IDs the contact should be a member of.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Contact ID to update | |
| firstname | No | First name | |
| lastname | No | Last name | |
| mobile_number | No | Mobile phone number | |
| home_number | No | Home phone number | |
| No | Email address | ||
| address | No | Street address | |
| postal_code | No | Postal/ZIP code | |
| city | No | City | |
| birthday | No | Birthday | |
| notes | No | Notes | |
| avatar | No | Avatar image URL | |
| groups | No | Complete array of group IDs the contact should be a member of (replaces existing groups) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the important behavioral trait that providing groups replaces the existing groups list. No annotations exist, so the description carries the burden. However, it does not mention whether other fields are partially updated or completely replaced, nor does it discuss authorization or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the tool's purpose concisely, and the second provides a key usage nuance. No fluff or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 13 parameters, no output schema, and no annotations, the description covers the group replacement behavior but lacks details on return values, error conditions, and whether unspecified fields remain unchanged. It is minimally adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds context about group management ('To add/remove contact from groups'), but this largely repeats the schema's existing description ('Complete array of group IDs... (replaces existing groups)'). Thus, the description adds marginal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update a contact,' which is a specific verb and resource. It distinguishes from sibling tools like create_contact and delete_contact. However, it does not elaborate on which fields can be updated beyond the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on how to use the groups parameter ('provide the complete list of group IDs the contact should be a member of'), but does not explicitly state when to use this tool versus alternatives like create_contact or list_contacts. No when-not-to-use or exclusion criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_groupA
Update a contact group (only name can be updated)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Group ID to update | |
| name | Yes | Group name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It reveals that only the name field is updatable, which is a key behavioral trait. However, it does not disclose side effects, authorization requirements, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence that is front-loaded and contains no unnecessary words. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, the description covers the minimum. It explains what the tool does and the update constraint, but omits details like response format, error handling, or the effect on other fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, providing a baseline of 3. The description adds value by explicitly qualifying that only the name can be updated, which is not inferable from the schema alone. This nuance slightly enhances parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'contact group', and adds a crucial constraint 'only name can be updated', which distinguishes it from sibling tools like update_contact and update_number.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like create_group or delete_group. The description implies usage for updating group name only, but does not specify 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_numberC
Update phone number configuration including friendly name and forwarding settings
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | Phone number to update | |
| friendly_name | No | Custom friendly name for the number | |
| sms_forward | No | Phone numbers to forward incoming SMS to | |
| email_forward | No | Email addresses to forward incoming SMS to | |
| slack_forward | No | Slack webhook URL to forward incoming SMS to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states 'Update' without mentioning whether the operation is destructive, requires permissions, or how it handles existing settings (replace vs. merge). This leaves significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with no unnecessary words. It efficiently conveys the core purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no output schema, and no annotations, the description is too sparse. It does not explain important context such as whether updates are additive or overwriting, any prerequisites (e.g., number must be owned), or the return value upon success. This leaves the agent with significant uncertainty.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds minimal value by naming 'friendly name and forwarding settings', which maps directly to schema properties. It does not provide additional syntax, defaults, or constraints beyond what the schema offers, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and the resource ('phone number configuration'), and lists the settings involved. While it doesn't explicitly differentiate from sibling tools, the resource is distinct from other update tools like update_contact, making the purpose sufficiently clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives or any prerequisites. The description does not indicate when to update a number versus using other operations like order_number or delete_number.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_subaccountB
Configure automatic balance transfer for a subaccount
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Subaccount ID | |
| threshold | Yes | Credit threshold below which credit should be transferred (in EUR) | |
| amount | Yes | Amount of credit to transfer from main account (in EUR) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states the action without explaining side effects, idempotency, or whether existing settings are replaced or appended.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, focused sentence with no unnecessary words. Every phrase serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 3 parameters and no output schema, the description is adequate but lacks details on behavior (e.g., whether this is a create-or-update operation).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to add much meaning. The description aligns with parameters but adds no extra context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Configure automatic balance transfer for a subaccount' uses a specific verb ('configure') and resource ('automatic balance transfer for a subaccount'), clearly distinguishing it from sibling tools like 'create_subaccount' and 'transfer_credits'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., 'transfer_credits' for manual transfers). No prerequisites or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_senderC
Validate sender identifier for voice calls
| Name | Required | Description | Default |
|---|---|---|---|
| sender | Yes | Sender identifier to validate | |
| type | Yes | Type of validation (e.g., voice) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It only says 'validate' with no mention of side effects, return values, or required permissions. As a validation tool, it is likely read-only, but this is not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with no unnecessary words. Front-loaded with the verb 'validate'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has two parameters and no output schema. The description does not explain what the validation result looks like (e.g., boolean, error messages) or provide any behavioral details. Given the complexity, more information is needed for correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The tool description adds no extra meaning beyond the schema; it does not explain the purpose of the type parameter or the format of the sender identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'validate sender identifier' which matches the tool name, and specifies 'for voice calls'. However, the input schema includes an 'sms' option for type, so describing it only for voice calls is slightly misleading, though not severe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like lookup_cnam or lookup_hlr, which may also serve validation purposes. 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
44 tool updates
v1.1.1- First observed
create_contact - First observed
create_group - First observed
create_subaccount - First observed
create_webhook - First observed
delete_contact - First observed
delete_group - First observed
delete_number - First observed
delete_rcs - First observed
delete_sms - First observed
delete_subaccount - First observed
delete_webhook - First observed
get_active_numbers - First observed
get_analytics - First observed
get_available_numbers - First observed
get_balance - First observed
get_contact - First observed
get_group - First observed
get_logbook_received - First observed
get_logbook_sent - First observed
get_logbook_voice - First observed
get_number - First observed
get_pricing - First observed
get_status - First observed
hangup_voice - First observed
list_contacts - First observed
list_groups - First observed
list_subaccounts - First observed
list_webhooks - First observed
lookup_cnam - First observed
lookup_format - First observed
lookup_hlr - First observed
lookup_mnp - First observed
lookup_rcs - First observed
order_number - First observed
rcs_events - First observed
send_rcs - First observed
send_sms - First observed
send_voice - First observed
transfer_credits - First observed
update_contact - First observed
update_group - First observed
update_number - First observed
update_subaccount - First observed
validate_sender
TDQS
Most tools have distinct purposes with clear descriptions, but the high number (44) and similar lookups (e.g., lookup_hlr, lookup_mnp, lookup_rcs) could cause some confusion for an agent. Overall, the set is well-differentiated.
The tool names consistently follow a verb_noun pattern with underscores (e.g., create_contact, send_sms). The only exception is `rcs_events`, which uses noun_verb, a minor deviation.
With 44 tools, the server is over-scoped for a typical MCP server. This high count can overwhelm agents and suggests the server could be split into smaller, more focused servers. The calibration indicates 25+ tools as 'too many'.
The tool set covers a comprehensive range of operations for a telephony/SMS platform: CRUD for contacts, groups, subaccounts, webhooks, numbers; sending SMS/RCS/voice; various lookups; analytics; and account management. Few gaps exist (e.g., limited group update), but overall it's very complete.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server for the Wavix telecom platform: SMS, voice, 2FA, SIP, numbers, 10DLC, CDRs.
The Mobile Text Alerts SMS MCP server enables your AI to send SMS messages & manage contacts
MCP server for Vonage API documentation, code snippets, tutorials, and troubleshooting.
MCP server for Sendbird — chat users, channels, members, and messages from your AI client.
Related MCP Servers
- FlicenseCqualityDmaintenanceMCP server enabling interaction with Telnyx telephony, messaging, and AI assistant APIs through natural language.46-

lingtai-whatsappofficial
AlicenseNot gradedqualityFmaintenanceMCP server for interacting with the official Meta WhatsApp Business Platform/Cloud API, enabling sending messages, managing contacts, templates, and handling webhook callbacks.Apache 2.0- AlicenseNot gradedqualityDmaintenanceA comprehensive MCP server for TELNYX integration, enabling AI assistants to send SMS messages, make voice calls, and handle incoming communications via webhooks.MIT

thaibulksmsofficial
AlicenseAqualityDmaintenanceMCP server for ThaiBulkSMS and ThaiBulkMail APIs, enabling SMS, email, credit check, and OTP operations through natural language.825MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/seven-io/seven-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server