ManyContacts MCP Server
OfficialThe ManyContacts MCP Server enables AI agents to programmatically manage a WhatsApp Business CRM, covering contacts, messaging, campaigns, teams, pipelines, and AI auto-reply agents.
Account & Organization
Get a full account overview (channels, counts, features)
Retrieve and update organization settings (timezone, auto-reply, webhooks)
Get business hours and REST API key
List connected WhatsApp Business and Instagram channels
Contact Management
List contacts with advanced filters (open/closed, tags, teams, stages, date range, unread, blacklisted, scheduled)
Get detailed contact info (tags, teams, funnel stages, custom fields)
Create, update, and delete contacts
Assign/unassign contacts to team members, open/close conversations
Add/remove tags and teams, move contacts through funnel stages
Bulk operations (close, open, assign, tag, team) on multiple contacts at once
Messaging
View conversation history, send text messages, create internal notes
Send pre-approved WhatsApp Business template messages (for outbound or outside the 24h window)
Templates
List, get details of, and sync WhatsApp Business message templates (filter by approval status)
Campaigns
List, create, and delete bulk WhatsApp messaging campaigns with scheduled delivery
Tags
List, create, update, and delete contact tags (with color support)
Teams
List, create, and delete teams; add/remove members
Sales Funnels / Pipelines
List, create, and delete funnels; add/update stages; list contacts by funnel or stage
Users / Team Members
List, get, update, invite, and delete team members
AI Agents
List, get details for, enable/disable, and update AI auto-reply agent configurations
View feedback and conversation logs for AI agents
Provides integration with Instagram channels for contact management and messaging through the ManyContacts CRM platform.
Integrates with Meta Cloud API for WhatsApp message template synchronization and management within the ManyContacts CRM.
Provides comprehensive WhatsApp Business CRM capabilities including contact management, messaging, template handling, and campaign management through ManyContacts.
Click on "Deploy 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., "@ManyContacts MCP Serverlist my recent unread contacts and tag them as 'follow-up'"
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.
ManyContacts MCP Server
MCP (Model Context Protocol) server for ManyContacts — the WhatsApp Business CRM. Enables AI agents (Claude, Cursor, Windsurf, etc.) to manage contacts, send WhatsApp messages, run campaigns, configure AI auto-replies, and perform all CRM operations programmatically.
Quick Start
1. Get your CLI token
npm install -g @manycontacts/cliAlready have an account? Log in:
mc auth login --email user@example.com --password mypassword
mc auth whoami # verify it worksNew to ManyContacts? Create an account and connect your WhatsApp channel:
# Register a new account
mc auth register --email user@example.com --name "My Company"
# Connect a WhatsApp Business channel (choose one method):
mc channels connect whatsapp-api # WhatsApp Cloud API (recommended)
mc channels connect coexistence # ManyContacts coexistence mode
mc channels connect qr # QR code pairing
# Verify everything is set up
mc auth whoami
mc channels list2. Configure in your MCP client
Claude Desktop / Claude Code
Add to your MCP settings (~/.claude/claude_desktop_config.json or similar):
{
"mcpServers": {
"manycontacts": {
"command": "npx",
"args": ["@manycontacts/mcp"],
"env": {
"MC_CLI_TOKEN": "your-cli-token-here"
}
}
}
}Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"manycontacts": {
"command": "npx",
"args": ["@manycontacts/mcp"],
"env": {
"MC_CLI_TOKEN": "your-cli-token-here"
}
}
}
}Tip: If you've already logged in via the CLI (
mc auth login), the token is stored in~/.manycontacts/config.jsonand the MCP server will pick it up automatically — noMC_CLI_TOKENenv var needed.
Related MCP server: lingtai-whatsapp
Available Tools (55 total)
Account & Context
manycontacts.context
Get a full overview of your ManyContacts account: connected WhatsApp Business channels, contact/user/tag counts, active AI agents, and enabled features. Use this first to understand the account state before performing other operations.
Parameter | Type | Required | Description |
(none) | — | — | No parameters needed |
manycontacts.org.get
Get WhatsApp Business organization/account information including name, timezone, and all configuration settings.
Parameter | Type | Required | Description |
(none) | — | — | No parameters needed |
manycontacts.org.update
Update organization-level settings such as timezone, auto-reply messages, auto-close behavior, and webhook configuration.
Parameter | Type | Required | Description |
|
| No | Timezone identifier (e.g. |
|
| No | Enable auto-reply when a new chat is opened |
|
| No | Auto-reply message text when chat opens |
|
| No | Enable auto-reply when a chat is closed |
|
| No | Auto-reply message text when chat closes |
|
| No | Minutes of inactivity before auto-close |
|
| No | Enable away/out-of-hours auto-reply |
|
| No | Away auto-reply message text |
|
| No | Enable webhook forwarding to an external URL |
|
| No | External URL to forward webhook events to |
manycontacts.org.schedule.get
Get the business hours schedule. Returns the configured working hours for each day of the week, used to determine when the "away" auto-reply activates.
Parameter | Type | Required | Description |
(none) | — | — | No parameters needed |
manycontacts.org.apikey
Get the organization's REST API key for direct API integrations.
Parameter | Type | Required | Description |
(none) | — | — | No parameters needed |
manycontacts.channels.list
List all connected WhatsApp Business and Instagram channels. For WhatsApp channels, shows the phone number and connection status. For Instagram channels, shows the username.
Parameter | Type | Required | Description |
(none) | — | — | No parameters needed |
Contacts
All contact operations use phone numbers as identifiers (with country code, no + prefix, e.g. 34600000000).
manycontacts.contacts.list
List WhatsApp Business contacts with advanced filters. Returns paginated results with has_more indicator. Filters can be combined freely.
Parameter | Type | Required | Description |
|
| No | Page number (default: |
|
| No | Results per page, max |
|
| No | Filter by conversation open/closed status |
|
| No | Filter by assigned user ID |
|
| No | Comma-separated tag IDs — contacts must have all specified tags |
|
| No | Filter by team ID |
|
| No | Comma-separated funnel stage IDs |
|
| No | Filter contacts updated after this date ( |
|
| No | Filter contacts updated before this date ( |
|
| No | Only contacts with unread messages |
|
| No | Only blacklisted contacts |
|
| No | Only contacts with pending scheduled messages |
Note: When using
date_fromanddate_totogether, the range cannot exceed 90 days.
Response:
{
"ok": true,
"data": [
{
"name": "John Doe",
"number": "34600000000",
"open": true,
"last_user_id": "uuid-of-assigned-user",
"source": "whatsapp",
"notes": "VIP customer",
"customFields": {},
"createdAt": "2026-01-15T10:30:00Z"
}
],
"pagination": { "page": 1, "limit": 50, "has_more": true }
}manycontacts.contacts.get
Get detailed information about a specific contact including their tags, teams, funnel stages, and custom fields.
Parameter | Type | Required | Description |
|
| Yes | Phone number with country code (e.g. |
manycontacts.contacts.create
Create a new WhatsApp Business contact in the CRM. The phone number will be normalized automatically (leading + removed).
Parameter | Type | Required | Description |
|
| Yes | Phone number with country code (e.g. |
|
| No | Contact display name |
|
| No | Free-text notes for the contact |
manycontacts.contacts.update
Update an existing contact's name, notes, or custom fields.
Parameter | Type | Required | Description |
|
| Yes | Phone number of the contact to update |
|
| No | New contact name |
|
| No | New contact notes |
|
| No | Custom fields as a JSON string (e.g. |
manycontacts.contacts.delete
Permanently delete a contact from the CRM.
Parameter | Type | Required | Description |
|
| Yes | Phone number of the contact to delete |
manycontacts.contacts.assign
Assign a contact to a specific team member. The assigned user will see this contact in their personal inbox.
Parameter | Type | Required | Description |
|
| Yes | Phone number of the contact |
|
| Yes | User ID to assign the contact to (use |
manycontacts.contacts.unassign
Remove the current user assignment from a contact. The contact returns to the general unassigned inbox.
Parameter | Type | Required | Description |
|
| Yes | Phone number of the contact |
manycontacts.contacts.close
Close a WhatsApp conversation. Closed conversations are archived and won't appear in the active inbox.
Parameter | Type | Required | Description |
|
| Yes | Phone number of the contact |
manycontacts.contacts.open
Reopen a previously closed WhatsApp conversation. The contact will appear again in the active inbox.
Parameter | Type | Required | Description |
|
| Yes | Phone number of the contact |
manycontacts.contacts.tag.add
Add a tag to a contact. Use manycontacts.tags.list to get available tag IDs.
Parameter | Type | Required | Description |
|
| Yes | Phone number of the contact |
|
| Yes | Tag ID to add |
manycontacts.contacts.tag.remove
Remove a tag from a contact.
Parameter | Type | Required | Description |
|
| Yes | Phone number of the contact |
|
| Yes | Tag ID to remove |
manycontacts.contacts.team.add
Add a team to a contact. Use manycontacts.teams.list to get available team IDs.
Parameter | Type | Required | Description |
|
| Yes | Phone number of the contact |
|
| Yes | Team ID to add |
manycontacts.contacts.team.remove
Remove a team from a contact.
Parameter | Type | Required | Description |
|
| Yes | Phone number of the contact |
|
| Yes | Team ID to remove |
manycontacts.contacts.set_stage
Move a contact to a specific stage within a sales funnel/pipeline. Use manycontacts.funnels.list to get funnel and stage IDs.
Parameter | Type | Required | Description |
|
| Yes | Phone number of the contact |
|
| Yes | Funnel ID |
|
| Yes | Target stage ID within the funnel |
manycontacts.contacts.bulk
Perform bulk operations on multiple contacts at once. Supports closing, opening, assigning, tagging, and team assignment.
Parameter | Type | Required | Description |
|
| Yes | Bulk action to perform |
|
| Yes | Comma-separated phone numbers (e.g. |
|
| No | Value required by the action: user ID for |
Messaging
manycontacts.messages.list
List WhatsApp conversation messages for a contact. Returns messages in a conversation-friendly format with timestamps, status, and sender information.
Parameter | Type | Required | Description |
|
| Yes | Phone number of the contact |
|
| No | Page number (default: |
|
| No | Messages per page (default: |
manycontacts.messages.send.text
Send a WhatsApp text message to a contact. Only works within the 24-hour conversation window. Use manycontacts.messages.send.template to initiate conversations outside this window.
Parameter | Type | Required | Description |
|
| Yes | Phone number to send the message to |
|
| Yes | Message text content |
manycontacts.messages.send.note
Create an internal note on a contact's conversation. Notes are only visible to team members and are not sent to the WhatsApp contact.
Parameter | Type | Required | Description |
|
| Yes | Phone number of the contact |
|
| Yes | Internal note text |
manycontacts.messages.send.template
Send a WhatsApp Business template message. Templates are required to initiate conversations outside the 24-hour window or for bulk outbound messaging. Templates must be pre-approved by Meta.
Parameter | Type | Required | Description |
|
| Yes | Phone number to send the template to |
|
| Yes | Template ID (use |
|
| No | Template variables as a JSON array string (e.g. |
Templates
WhatsApp Business templates are pre-approved message formats required for outbound messaging outside the 24-hour conversation window.
manycontacts.templates.list
List all WhatsApp Business message templates. Shows template name, code, status, components, and media flags.
Parameter | Type | Required | Description |
|
| No | Filter templates by approval status |
manycontacts.templates.get
Get full details of a specific template including its components (header, body, footer, buttons), configuration, and media attachments.
Parameter | Type | Required | Description |
|
| Yes | Template ID |
manycontacts.templates.sync
Sync WhatsApp Business templates from Meta Cloud API. Fetches the latest templates from the connected WhatsApp Business account. Useful after creating or modifying templates in the Meta Business Manager.
Parameter | Type | Required | Description |
(none) | — | — | No parameters needed |
Campaigns
Campaigns allow bulk sending of WhatsApp template messages to a list of phone numbers at a scheduled time.
manycontacts.campaigns.list
List all WhatsApp Business bulk messaging campaigns with statistics (sent, delivered, read, and failed counts), template names, and scheduled dates.
Parameter | Type | Required | Description |
(none) | — | — | No parameters needed |
manycontacts.campaigns.create
Create a new WhatsApp Business bulk messaging campaign. The campaign will send a template message to the specified phone numbers at the scheduled time.
Parameter | Type | Required | Description |
|
| Yes | Campaign name |
|
| Yes | WhatsApp template ID to use (must be |
|
| Yes | Comma-separated phone numbers (e.g. |
|
| Yes | Scheduled send date in ISO format (e.g. |
|
| No | Template variables as a JSON array string (e.g. |
manycontacts.campaigns.delete
Delete a WhatsApp Business campaign. Only pending (not yet sent) campaigns can be deleted.
Parameter | Type | Required | Description |
|
| Yes | Campaign ID to delete |
Tags
Tags are colored labels used to categorize and filter WhatsApp Business contacts (e.g. "VIP", "Support", "Lead").
manycontacts.tags.list
List all available tags with their names, colors, and IDs.
Parameter | Type | Required | Description |
(none) | — | — | No parameters needed |
manycontacts.tags.create
Create a new tag for categorizing contacts.
Parameter | Type | Required | Description |
|
| Yes | Tag name |
|
| No | Tag color as hex code (e.g. |
manycontacts.tags.update
Update an existing tag's name or color.
Parameter | Type | Required | Description |
|
| Yes | Tag ID to update |
|
| No | New tag name |
|
| No | New tag color as hex code |
manycontacts.tags.delete
Delete a tag. The tag will be removed from all contacts that have it.
Parameter | Type | Required | Description |
|
| Yes | Tag ID to delete |
Teams
Teams group users together for assignment routing and contact organization.
manycontacts.teams.list
List all teams in the organization.
Parameter | Type | Required | Description |
(none) | — | — | No parameters needed |
manycontacts.teams.create
Create a new team.
Parameter | Type | Required | Description |
|
| Yes | Team name |
manycontacts.teams.add_member
Add a user to a team.
Parameter | Type | Required | Description |
|
| Yes | Team ID |
|
| Yes | User ID to add to the team |
manycontacts.teams.remove_member
Remove a user from a team.
Parameter | Type | Required | Description |
|
| Yes | Team ID |
|
| Yes | User ID to remove from the team |
manycontacts.teams.delete
Delete a team. Team members are not deleted, only the team grouping.
Parameter | Type | Required | Description |
|
| Yes | Team ID to delete |
Sales Funnels / Pipelines
Funnels allow you to track contacts through a multi-stage sales or support pipeline (e.g. "New Lead" -> "Qualified" -> "Proposal" -> "Won").
manycontacts.funnels.list
List all sales funnels/pipelines with their stages.
Parameter | Type | Required | Description |
(none) | — | — | No parameters needed |
manycontacts.funnels.create
Create a new sales funnel/pipeline.
Parameter | Type | Required | Description |
|
| Yes | Funnel name |
manycontacts.funnels.add_stage
Add a new stage to an existing funnel.
Parameter | Type | Required | Description |
|
| Yes | Funnel ID |
|
| Yes | Stage name (e.g. "Qualified", "Proposal Sent") |
|
| Yes | Stage position in the pipeline (0-based) |
manycontacts.funnels.update_stage
Update a stage's name within a funnel.
Parameter | Type | Required | Description |
|
| Yes | Funnel ID |
|
| Yes | Stage ID to update |
|
| No | New stage name |
manycontacts.funnels.contacts
List contacts currently in a specific funnel, optionally filtered by stage. Returns paginated results.
Parameter | Type | Required | Description |
|
| Yes | Funnel ID |
|
| No | Filter by specific stage ID |
|
| No | Page number |
|
| No | Results per page |
manycontacts.funnels.delete
Delete a sales funnel/pipeline and all its stages. Contacts in the funnel are not deleted.
Parameter | Type | Required | Description |
|
| Yes | Funnel ID to delete |
Users / Team Members
Manage the team members who have access to the WhatsApp Business CRM.
manycontacts.users.list
List all team members/users in the organization with their roles and details.
Parameter | Type | Required | Description |
(none) | — | — | No parameters needed |
manycontacts.users.get
Get details of a specific team member.
Parameter | Type | Required | Description |
|
| Yes | User ID |
manycontacts.users.update
Update a team member's profile information.
Parameter | Type | Required | Description |
|
| Yes | User ID to update |
|
| No | New user display name |
manycontacts.users.invite
Invite a new team member to the organization by email. They will receive an invitation email to join.
Parameter | Type | Required | Description |
|
| Yes | Email address to send the invitation to |
manycontacts.users.delete
Remove a team member from the organization. Their assigned contacts will become unassigned.
Parameter | Type | Required | Description |
|
| Yes | User ID to remove |
AI Agents
AI agents auto-respond to incoming WhatsApp messages using configurable instructions and scenarios. Only active agents are listed.
manycontacts.ai_agents.list
List all active AI auto-reply agents with their configuration.
Parameter | Type | Required | Description |
(none) | — | — | No parameters needed |
manycontacts.ai_agents.get
Get full details of a specific AI agent including its scenarios (conversation flows), instruction blocks, and configuration.
Parameter | Type | Required | Description |
|
| Yes | AI Agent ID (UUID) |
manycontacts.ai_agents.update
Update an AI agent's configuration. You can enable/disable the agent or modify its instruction blocks.
Parameter | Type | Required | Description |
|
| Yes | AI Agent ID (UUID) |
|
| No | Enable ( |
|
| No | Agent instructions — block 1 |
|
| No | Agent instructions — block 2 |
|
| No | Agent instructions — block 3 |
manycontacts.ai_agents.feedback
Get feedback and conversation logs for an AI agent. Shows how the agent has been responding and user satisfaction data.
Parameter | Type | Required | Description |
|
| Yes | AI Agent ID (UUID) |
Available Prompts (6 total)
Pre-built prompts that guide AI agents through common workflows. Use these to quickly accomplish multi-step tasks.
contact-lookup
Look up a WhatsApp contact and get a complete summary of their profile, tags, funnel stage, and recent messages.
Argument | Required | Description |
| Yes | Phone number in international format (e.g. |
send-campaign
Step-by-step guide to creating a WhatsApp bulk campaign: lists available templates, asks for recipients and schedule, then creates the campaign.
Argument | Required | Description |
(none) | — | Interactive guided workflow |
daily-dashboard
Generates a complete overview of your ManyContacts account including channels, open conversations, team structure, and sales funnels.
Argument | Required | Description |
(none) | — | No arguments needed |
reply-to-contact
Reviews recent conversation history with a contact, then sends a WhatsApp message with full context.
Argument | Required | Description |
| Yes | Phone number in international format (e.g. |
| Yes | The message text to send |
manage-funnel
Displays all sales funnels with their stages and contact counts per stage, giving a visual pipeline overview.
Argument | Required | Description |
(none) | — | No arguments needed |
bulk-tag-contacts
Tags multiple contacts at once — finds or creates the tag, then applies it in bulk.
Argument | Required | Description |
| Yes | Comma-separated phone numbers (e.g. |
| Yes | Name of the tag to apply |
Environment Variables
Variable | Required | Description |
| Yes* | ManyContacts CLI authentication token. Get one via |
| No | API base URL (default: |
*If you've logged in via the CLI, the token is stored locally at
~/.manycontacts/config.jsonand the MCP server reads it automatically.
Authentication
The MCP server authenticates using CLI tokens. Each token is scoped to an organization and has configurable permissions.
# Login to get a token
mc auth login --email user@example.com --password mypassword
# The token is stored at ~/.manycontacts/config.json
# Or set it explicitly via environment variable:
export MC_CLI_TOKEN=your-token-hereRate Limits
Paying accounts: 60 requests/minute
Free/trial accounts: 10 requests/minute
When rate limited, the server returns a 429 error with a link to upgrade.
License
MIT
Available Tools
55 toolsmanycontacts_ai_agents_feedbackC
Get feedback/conversation logs for a WhatsApp AI agent
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | AI Agent ID (UUID) |
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 of behavioral disclosure. It mentions 'Get feedback/conversation logs,' implying a read-only operation, but doesn't specify if this requires special permissions, the format of the logs (e.g., structured vs. raw), pagination, rate limits, or error conditions. For a tool with no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence: 'Get feedback/conversation logs for a WhatsApp AI agent.' It's front-loaded with the core purpose, uses efficient language, and avoids unnecessary words. Every part of the sentence contributes directly to understanding the tool's function, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a tool for retrieving logs/feedback), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'feedback/conversation logs' entail (e.g., format, content, time range), how results are returned, or any prerequisites. For a tool that likely returns detailed data, this leaves too much unspecified, making it inadequate for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with one required parameter 'id' described as 'AI Agent ID (UUID).' The description doesn't add any extra semantic details beyond this, such as where to find the ID or if it's case-sensitive. Given the high schema coverage, a baseline score of 3 is appropriate, as the schema adequately documents the parameter without needing additional explanation in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get feedback/conversation logs for a WhatsApp AI agent.' It specifies the action ('Get'), resource ('feedback/conversation logs'), and context ('WhatsApp AI agent'), which is specific and actionable. However, it doesn't explicitly differentiate from sibling tools like 'manycontacts_ai_agents_get' or 'manycontacts_messages_list', which might overlap in retrieving agent-related data, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. For example, it doesn't clarify if this is for historical logs, real-time feedback, or how it differs from 'manycontacts_ai_agents_get' (which might retrieve agent metadata) or 'manycontacts_messages_list' (which might list messages). Without such context, the agent must infer usage, leading to potential misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_ai_agents_getB
Get details of a specific WhatsApp AI agent including scenarios and configuration
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | AI Agent ID (UUID) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool retrieves details but doesn't disclose behavioral traits such as required permissions, rate limits, error handling, or whether it's a read-only operation. The description is minimal and lacks critical context for safe and effective use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. It avoids redundancy and wastes no words, though it could be slightly more structured by separating key details. Overall, it's appropriately concise for a simple retrieval 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 no annotations and no output schema, the description is incomplete for a tool that retrieves complex details like 'scenarios and configuration'. It doesn't explain the return format, data scope, or potential limitations, leaving significant gaps for an AI agent to understand what to expect from 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?
Schema description coverage is 100%, with the 'id' parameter fully documented as 'AI Agent ID (UUID)'. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or sourcing guidance. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get details') and resource ('a specific WhatsApp AI agent'), specifying it includes 'scenarios and configuration'. It distinguishes from the sibling 'manycontacts_ai_agents_list' by focusing on a single agent rather than listing multiple. However, it doesn't explicitly differentiate from other 'get' tools like 'manycontacts_contacts_get', which slightly reduces specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when details of a specific agent are needed, but provides no explicit guidance on when to use this versus alternatives like 'manycontacts_ai_agents_list' for overviews or 'manycontacts_ai_agents_update' for modifications. There's no mention of prerequisites or exclusions, leaving usage context partially inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_ai_agents_listA
List AI agents configured to auto-respond to WhatsApp Business messages
| 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. It states the tool lists agents but does not disclose behavioral traits such as whether it returns all agents or is paginated, what permissions are required, rate limits, or the format of returned data. This leaves significant gaps for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('List AI agents') with necessary context ('configured to auto-respond to WhatsApp Business messages'). There is no wasted verbiage or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is minimal but adequate for a simple list operation. However, it lacks details on output format, pagination, or error handling, which could be important for an AI agent to use it correctly. It meets minimum viability but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, maintaining focus on the tool's purpose. Baseline is 4 for zero 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 specific action ('List') and resource ('AI agents configured to auto-respond to WhatsApp Business messages'), distinguishing it from sibling tools like manycontacts_ai_agents_get (which retrieves a single agent) and manycontacts_ai_agents_update (which modifies agents). It precisely defines the scope of what is being listed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (when you need to see all configured AI agents for WhatsApp auto-responses), but does not explicitly state when not to use it or name alternatives. It distinguishes from siblings by resource type but lacks explicit guidance on choosing between list vs get operations for agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_ai_agents_updateC
Update a WhatsApp AI agent's configuration (instructions, active status, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | AI Agent ID (UUID) | |
| active | No | Enable or disable the agent | |
| block_1 | No | Agent instructions block 1 | |
| block_2 | No | Agent instructions block 2 | |
| block_3 | No | Agent instructions block 3 |
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 states this is an update operation, implying mutation, but doesn't disclose behavioral traits such as required permissions, whether changes are reversible, rate limits, or what happens to unspecified configuration fields. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Update a WhatsApp AI agent's configuration') and includes examples. It avoids unnecessary words, though it could be slightly more structured (e.g., separating purpose from examples).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a mutation tool with no annotations and no output schema, yet the description lacks completeness. It doesn't cover behavioral aspects (e.g., permissions, side effects), usage context, or output details. Given the complexity of updating configurations, the description is insufficient 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?
Schema description coverage is 100%, so the schema already documents all parameters (id, active, block_1, block_2, block_3) with descriptions. The description adds minimal value by hinting at 'instructions, active status, etc.', but doesn't provide additional syntax, format, or constraints beyond what the schema offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Update') and resource ('WhatsApp AI agent's configuration'), with examples of what can be updated ('instructions, active status, etc.'). However, it doesn't explicitly differentiate from sibling tools like 'manycontacts_ai_agents_get' or 'manycontacts_ai_agents_list', which would be needed for a score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. It doesn't mention prerequisites (e.g., needing an existing agent ID), exclusions, or compare it to related tools like 'manycontacts_ai_agents_get' for retrieval or 'manycontacts_ai_agents_feedback' for other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_campaigns_createA
Create a WhatsApp Business bulk messaging campaign. Sends a template message to a list of phone numbers at a scheduled time.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Campaign name | |
| templateId | Yes | WhatsApp template ID to use | |
| phones | Yes | Comma-separated phone numbers to send to | |
| date | Yes | Scheduled send date in ISO format, e.g. 2026-12-01T09:00:00 | |
| variables | No | Template variables as JSON array, e.g. '["John","20%"]' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the tool sends messages at a scheduled time, which is useful behavioral context. However, it lacks details on permissions required, rate limits, whether the campaign is editable after creation, error handling, or what the response looks like (no output schema). For a mutation tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose (create campaign) and includes key details (WhatsApp Business, bulk messaging, template message, phone numbers, scheduled time). Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (mutation with 5 parameters, no annotations, no output schema), the description is minimally adequate. It covers the basic purpose and scheduling behavior but lacks details on permissions, error cases, or response format. With no annotations or output schema, more context would be helpful 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%, so the schema already documents all 5 parameters with descriptions. The description adds no additional parameter semantics beyond what the schema provides (e.g., no examples beyond the schema's ISO format note, no clarification on phone number formats). Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a WhatsApp Business bulk messaging campaign, specifying the action (create), resource (campaign), and scope (sends template message to phone numbers at scheduled time). It distinguishes from sibling tools like manycontacts_campaigns_list and manycontacts_campaigns_delete by focusing on creation rather than listing or deletion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating scheduled bulk WhatsApp campaigns but does not explicitly state when to use this tool versus alternatives like manycontacts_messages_send_template (for immediate sends) or manycontacts_contacts_bulk (for contact management). No explicit exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_campaigns_deleteC
Delete a WhatsApp Business campaign
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Campaign 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 but only states the action without disclosing behavioral traits. It doesn't mention if deletion is permanent, requires specific permissions, has side effects (e.g., affecting associated contacts or messages), or provides any confirmation. This is inadequate for a destructive operation with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste—it directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is incomplete. It lacks critical context such as irreversible effects, error handling, or what happens post-deletion (e.g., confirmation message or status). Given the complexity of deletion operations, this minimal description leaves significant gaps for an AI agent to understand proper usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with one parameter ('id') clearly documented in the schema. The description doesn't add any parameter semantics beyond what's in the schema (e.g., format examples, validation rules, or where to find the ID). Baseline 3 is appropriate since the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('a WhatsApp Business campaign'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'manycontacts_campaigns_create' or 'manycontacts_campaigns_list' beyond the obvious verb difference, nor does it specify what constitutes a campaign in this context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing campaign ID), consequences (e.g., irreversible deletion), or when to choose deletion over other operations like updating or listing campaigns. The description is purely functional without contextual advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_campaigns_listA
List WhatsApp Business bulk messaging campaigns with statistics (sent, delivered, read, failed counts)
| 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. It mentions statistics but doesn't disclose behavioral traits such as pagination, rate limits, authentication requirements, or whether the list is real-time or cached. For a listing tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves operationally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('List WhatsApp Business bulk messaging campaigns') and adds valuable context ('with statistics...'). There's zero waste, and every word earns its place by clarifying scope and output characteristics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (listing with statistics), lack of annotations, and no output schema, the description is minimally adequate. It specifies the resource type and statistics included, but doesn't cover return format, error handling, or operational constraints. For a tool with no structured metadata, more behavioral context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate. Baseline is 4 for 0 parameters, as the description correctly focuses on purpose rather than unnecessary parameter explanations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('WhatsApp Business bulk messaging campaigns'), specifying the exact scope of what's returned. It distinguishes from sibling tools like manycontacts_campaigns_create and manycontacts_campaigns_delete by focusing on listing with statistics rather than creating or deleting campaigns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning 'with statistics (sent, delivered, read, failed counts)', suggesting this tool is for retrieving campaign performance data. However, it doesn't explicitly state when to use this versus alternatives like manycontacts_funnels_list or manycontacts_messages_list, nor does it provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_channels_listB
List connected WhatsApp Business and Instagram channels
| 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 the full burden. While 'List' implies a read-only operation, the description doesn't disclose any behavioral traits like authentication requirements, rate limits, pagination, error conditions, or what 'connected' means operationally. This leaves significant gaps for an agent to understand how to use it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple list operation with no parameters) and the absence of annotations and output schema, the description is minimally adequate. It states what the tool does but lacks details on behavior, output format, or usage context. This makes it complete enough for basic understanding but insufficient for optimal agent performance.
Complex tools with many parameters or behaviors need more documentation. 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 0 parameters with 100% schema description coverage, so no parameter information is needed. The description doesn't add parameter semantics, but that's appropriate here. A baseline of 4 is applied as per the rules for 0 parameters, since the schema fully covers the absence 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 the resource ('connected WhatsApp Business and Instagram channels'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from other 'list' tools in the sibling set (like manycontacts_ai_agents_list, manycontacts_campaigns_list, etc.), which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, context, or exclusions. It simply states what the tool does without indicating when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_contacts_assignC
Assign a WhatsApp Business contact to a team member
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number with country code, e.g. 34600000000 | |
| userId | Yes | User ID to assign the contact to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'assign' which implies a mutation operation, but doesn't disclose behavioral traits like required permissions, whether this overwrites existing assignments, error conditions, or what happens on success/failure. This leaves significant gaps 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, clear sentence that states exactly what the tool does with zero wasted words. It's appropriately sized and front-loaded with the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'assign' means operationally, what permissions are needed, what the response looks like, or how it relates to similar sibling tools. The agent would have significant unanswered questions about using this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters clearly documented in the schema. The description doesn't add any meaningful parameter semantics beyond what the schema already provides (phone format, userId purpose). This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('assign') and resource ('WhatsApp Business contact to a team member'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'manycontacts_contacts_team_add' or 'manycontacts_contacts_unassign', which appear related to team/assignment operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'manycontacts_contacts_team_add', 'manycontacts_contacts_unassign', and 'manycontacts_contacts_set_stage', there's no indication of how this assignment differs from team additions or when reassignment might be needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_contacts_bulkC
Perform bulk operations on multiple WhatsApp Business contacts (close, open, assign, add_tag, add_team)
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Bulk action to perform | |
| phones | Yes | Comma-separated phone numbers | |
| value | No | Value for action (user_id for assign, tag_id for add_tag, team_id for add_team) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'bulk operations' but doesn't disclose critical behavioral traits: whether these operations are destructive (e.g., 'close' might be irreversible), permission requirements, rate limits, error handling for invalid phones, or what happens if some operations succeed and others fail. The description is minimal and lacks necessary context 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, efficient sentence that lists all key actions without redundancy. It's front-loaded with the core purpose and uses parentheses to compactly enumerate operations, making it easy to parse. Every word earns its place with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of bulk operations (multiple actions, potential side effects) and no annotations or output schema, the description is incomplete. It doesn't explain return values, error conditions, or behavioral nuances, leaving significant gaps for an agent to operate safely and effectively in a production environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear parameter descriptions and enum values for 'action'. The description adds no additional parameter semantics beyond what's in the schema (e.g., format details for 'phones' or examples for 'value'). Baseline score of 3 is appropriate as the schema does the heavy lifting, but the description doesn't compensate with extra insights.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 'perform bulk operations' and the resource 'multiple WhatsApp Business contacts', listing the specific actions available (close, open, assign, add_tag, add_team). However, it doesn't explicitly differentiate from sibling tools like manycontacts_contacts_assign or manycontacts_contacts_close, which appear to be single-contact versions, so it doesn't achieve full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this bulk tool versus the individual contact operation tools (e.g., manycontacts_contacts_assign). It lists the actions but doesn't specify prerequisites, constraints, or alternatives, leaving the agent to infer usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_contacts_closeC
Close a WhatsApp Business conversation
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number with country code, e.g. 34600000000 |
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. While 'Close' implies a state change operation, it doesn't specify whether this is reversible, what permissions are required, whether it affects message history, or what happens after closing. For a mutation tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
Agents need to know what a tool does to the 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 zero wasted words. It's appropriately sized for a simple tool with one parameter and gets straight to the point without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'closing' means operationally, what the expected outcome is, or whether there are side effects. Given the complexity of conversation state management and the lack of structured behavioral information, the description should provide more context about this operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100% with the single parameter 'phone' well-documented in the schema. The description adds no additional parameter information beyond what's already in the schema, so the baseline score of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Close') and target resource ('a WhatsApp Business conversation'), which is specific and unambiguous. However, it doesn't differentiate from the sibling tool 'manycontacts_contacts_open', which would be helpful for distinguishing between opening and closing conversations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'manycontacts_contacts_open' or other contact management tools. There's no mention of prerequisites, consequences, or appropriate contexts for closing conversations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_contacts_createB
Create a new WhatsApp Business contact in ManyContacts CRM
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number with country code, e.g. 34600000000 | |
| name | No | Contact name | |
| notes | No | Contact notes |
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 states it's a creation tool, implying mutation, but doesn't cover permissions needed, whether duplicates are allowed, error handling, or what happens on success (e.g., returns a contact ID). This leaves significant gaps 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, clear sentence with no wasted words. It front-loads the key action and resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns (e.g., a contact object or ID), error conditions, or behavioral nuances like handling duplicate phone numbers, leaving the agent with incomplete operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all three parameters (phone, name, notes). The description adds no additional parameter semantics beyond what's in the schema, such as phone number validation rules or note length limits, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create'), the resource ('new WhatsApp Business contact'), and the system ('ManyContacts CRM'). It distinguishes from sibling tools like manycontacts_contacts_update or manycontacts_contacts_get by specifying creation rather than modification or retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing CRM setup), when not to use it (e.g., for updating existing contacts), or refer to sibling tools like manycontacts_contacts_update for modifications.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_contacts_deleteC
Delete a WhatsApp Business contact from ManyContacts CRM
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number with country code, e.g. 34600000000 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'Delete' which implies a destructive operation, but doesn't disclose whether deletion is permanent, reversible, requires specific permissions, or has side effects. The description is minimal and misses key behavioral details 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, clear sentence that directly states the tool's function without unnecessary words. It's front-loaded and efficiently communicates the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after deletion, potential errors, or return values. Given the complexity and risk of a delete operation, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'phone' documented in the schema. The description doesn't add any meaning beyond what the schema provides about the parameter. Baseline score of 3 is appropriate since the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('a WhatsApp Business contact from ManyContacts CRM'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'manycontacts_contacts_delete' vs 'manycontacts_contacts_remove' or other deletion tools, but the specificity is adequate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'manycontacts_contacts_close', 'manycontacts_contacts_unassign', or other deletion-related tools. It lacks context about prerequisites, consequences, or typical scenarios for deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_contacts_getB
Get detailed information about a WhatsApp Business contact including tags, teams, and funnel stages
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number with country code, e.g. 34600000000 |
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 of behavioral disclosure. While it implies a read-only operation ('Get'), it doesn't specify error handling (e.g., if the phone number is invalid or contact doesn't exist), authentication requirements, rate limits, or the format of the returned data. For a tool with no annotation coverage, this leaves significant gaps in understanding its 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, efficient sentence that front-loads the core purpose without unnecessary details. It uses clear language and avoids redundancy, making it easy to parse while conveying essential information about what the tool retrieves.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose but lacks behavioral details like error handling or data format, which are crucial for a read operation. Without annotations or an output schema, the description should do more to compensate, but it falls short of being fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'phone' clearly documented in the schema. The description doesn't add any additional meaning beyond the schema, such as examples of valid phone number formats or constraints. Since the schema does the heavy lifting, 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 tool's purpose with a specific verb ('Get') and resource ('WhatsApp Business contact'), including the scope of information returned ('tags, teams, and funnel stages'). However, it doesn't explicitly differentiate from sibling tools like 'manycontacts_contacts_list' or 'manycontacts_users_get', which might retrieve similar contact information but with different scopes or formats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as whether the contact must exist in the system, or compare it to siblings like 'manycontacts_contacts_list' for bulk retrieval or 'manycontacts_users_get' for user-specific data. Without this context, an agent might struggle to select the appropriate tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_contacts_listC
List WhatsApp Business contacts with filters. Returns paginated results.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| limit | No | Results per page, max 200 (default 50) | |
| open | No | Filter by open/closed status | |
| assigned_to | No | Filter by assigned user ID | |
| tags | No | Comma-separated tag IDs (contacts must have ALL tags) | |
| team | No | Filter by team ID | |
| stages | No | Comma-separated funnel stage IDs | |
| date_from | No | Filter updated after date (YYYY-MM-DD) | |
| date_to | No | Filter updated before date (YYYY-MM-DD, max 90 days range) | |
| unread | No | Only contacts with unread messages | |
| blacklist | No | Only blacklisted contacts | |
| scheduled | No | Only contacts with pending scheduled messages |
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 mentions 'Returns paginated results,' which is useful, but fails to describe critical behaviors such as authentication requirements, rate limits, error conditions, or what happens when filters yield no results. For a tool with 12 parameters and no annotation coverage, this is insufficient.
Agents need to know what a tool does to the 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—just two short sentences that directly state the tool's function and key behavioral trait (pagination). Every word earns its place, with no redundant or vague phrasing, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 parameters, no output schema, no annotations), the description is incomplete. It lacks details on authentication, error handling, response format, or pagination structure (e.g., next page tokens). While concise, it doesn't provide enough context for an agent to use the tool effectively without additional assumptions.
Complex tools with many parameters or behaviors need more documentation. Simple 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%, meaning all parameters are documented in the input schema. The description adds minimal value beyond the schema by mentioning 'filters' generically, but doesn't provide additional context on parameter interactions or usage examples. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List WhatsApp Business contacts') and resource ('contacts'), making the purpose evident. However, it doesn't explicitly differentiate this list operation from other contact-related tools like 'manycontacts_contacts_get' (single contact retrieval) or 'manycontacts_contacts_bulk' (bulk operations), which would be needed for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions filters but doesn't specify scenarios where filtering is appropriate or when other tools like 'manycontacts_contacts_get' (for single contacts) or 'manycontacts_funnels_contacts' (for funnel-specific contacts) might be better suited. This leaves the agent without contextual usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_contacts_openB
Reopen a closed WhatsApp Business conversation
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number with country code, e.g. 34600000000 |
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 of behavioral disclosure. It states the action ('Reopen') but doesn't describe what reopening entails (e.g., does it restore message history, affect notifications, or require specific permissions?), potential side effects, or error conditions. For a mutation tool with zero annotation coverage, this is a significant gap in 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, direct sentence with no wasted words. It front-loads the core action and resource efficiently, making it easy to parse. Every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a mutation tool (reopening implies a state change) with no annotations and no output schema, the description is incomplete. It doesn't explain what happens upon reopening (e.g., success indicators, returned data, or error handling), leaving critical behavioral context unspecified for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'phone' fully documented in the schema (type, format example, and requirement). The description doesn't add any parameter-specific information beyond what the schema provides, so it meets the baseline score of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Reopen') and target resource ('a closed WhatsApp Business conversation'), distinguishing it from sibling tools like manycontacts_contacts_close (which closes conversations) and manycontacts_contacts_update (which updates contact details). It uses precise language that leaves no ambiguity about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., the conversation must be closed), exclusions, or related tools like manycontacts_contacts_close for closing conversations. While the name implies it's for reopening, the description lacks explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_contacts_set_stageC
Move a WhatsApp Business contact to a funnel/pipeline stage
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number with country code, e.g. 34600000000 | |
| funnel_id | Yes | Funnel ID | |
| stage_id | Yes | Stage ID within the funnel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Move' implies a mutation operation, it doesn't specify whether this requires special permissions, what happens if the contact is already in that stage, whether the change is reversible, or what side effects might occur. The description lacks crucial behavioral context 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, efficient sentence that communicates the core functionality without any wasted words. It's appropriately sized for the tool's complexity and gets straight to the point with clear subject-verb-object structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after the move operation, what success/failure looks like, or any system constraints. Given the complexity of moving contacts between funnel stages in a business context, more behavioral and outcome information would be expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description doesn't add any additional semantic context beyond what's already in the schema descriptions (phone format, funnel_id, stage_id). This meets the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 ('Move') and resource ('WhatsApp Business contact to a funnel/pipeline stage'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'manycontacts_contacts_assign' or 'manycontacts_contacts_update' which might have overlapping functionality, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There are multiple sibling contact tools (assign, update, tag_add, etc.) that could potentially serve similar purposes, but the description offers no context about when this specific stage-moving operation is appropriate or what prerequisites might be needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_contacts_tag_addC
Add a tag to a WhatsApp Business contact
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number with country code, e.g. 34600000000 | |
| tagId | Yes | Tag ID to add |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but provides minimal behavioral insight. It implies a mutation (adding a tag) but doesn't disclose permissions needed, rate limits, whether tags are unique or cumulative, error handling, or what happens if the tag/contact doesn't exist. This is inadequate 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, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits (e.g., idempotency, side effects), error cases, or return values, leaving significant gaps 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 description coverage is 100%, with clear parameter documentation in the schema. The description adds no additional parameter semantics beyond what's in the schema (e.g., format examples or constraints), so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add a tag') and target resource ('to a WhatsApp Business contact'), providing specific verb+resource information. However, it doesn't differentiate from its sibling 'manycontacts_contacts_tag_remove' beyond the opposite action, missing explicit comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'manycontacts_contacts_update' or 'manycontacts_contacts_bulk'. The description lacks context about prerequisites (e.g., existing contacts/tags) or exclusions, offering only basic functional intent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_contacts_tag_removeC
Remove a tag from a WhatsApp Business contact
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number with country code, e.g. 34600000000 | |
| tagId | Yes | Tag ID to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden of behavioral disclosure. It states the action is 'Remove' (implying mutation) but doesn't describe permissions needed, whether the operation is reversible, what happens if the tag doesn't exist, or what the response looks like. This leaves significant behavioral gaps 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, efficient sentence that states exactly what the tool does with zero wasted words. It's appropriately sized for a simple operation and front-loads the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't address what happens on success/failure, whether there are side effects, or what permissions are required. The description should provide more behavioral context given the lack of structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description doesn't add any additional meaning beyond what's in the schema - it doesn't explain parameter relationships, format nuances, or edge cases. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove a tag') and target resource ('from a WhatsApp Business contact'), providing specific verb+resource combination. It distinguishes from sibling 'manycontacts_contacts_tag_add' by specifying removal rather than addition, though doesn't explicitly mention this distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'manycontacts_contacts_update' or 'manycontacts_contacts_tag_add'. There's no mention of prerequisites, context, or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_contacts_team_addC
Add a team to a WhatsApp Business contact
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number with country code, e.g. 34600000000 | |
| teamId | Yes | Team ID to add |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('Add') which implies a write/mutation operation, but doesn't disclose any behavioral traits: no information about permissions required, whether the operation is idempotent, what happens if the team is already assigned, error conditions, or what the response looks like. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that states exactly what the tool does with zero wasted words. It's appropriately sized for a simple 2-parameter tool and front-loads the core functionality immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation tool with no annotations and no output schema, the description is incomplete. It doesn't address key contextual questions: what happens after adding the team, whether there are side effects, what permissions are needed, or what the return value contains. The agent lacks sufficient information to understand the full implications of using this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters (phone format, teamId meaning). The description doesn't add any parameter semantics beyond what's in the schema - it doesn't explain the relationship between phone and contact, or what constitutes a valid teamId. Baseline 3 is appropriate when schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add') and target resource ('a team to a WhatsApp Business contact'), making the purpose immediately understandable. It distinguishes from sibling tools like 'manycontacts_contacts_team_remove' by specifying the opposite operation. However, it doesn't explicitly mention what 'team' means in this context or how it relates to the contact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., contact must exist, team must exist), nor does it differentiate from similar tools like 'manycontacts_contacts_assign' or 'manycontacts_contacts_tag_add'. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_contacts_team_removeC
Remove a team from a WhatsApp Business contact
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number with country code, e.g. 34600000000 | |
| teamId | Yes | Team ID to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action is 'Remove' which implies a destructive mutation, but doesn't specify whether this is reversible, what permissions are required, whether it affects contact history, or what happens if the team isn't currently assigned. The description is minimal and lacks important behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose with zero waste. It's appropriately sized for a simple operation and front-loads the essential information without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what happens after removal, whether there's confirmation or error handling, what the response looks like, or how this affects the contact's state. The minimal description leaves too many behavioral questions unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple 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 parameters ('phone' and 'teamId') clearly documented in the schema. The description doesn't add any additional semantic context about these parameters beyond what's already in the schema, so the baseline score of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove') and target ('a team from a WhatsApp Business contact'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from its sibling 'manycontacts_contacts_team_add' beyond the opposite action, missing an opportunity to clarify the relationship between these complementary operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., the contact must already have the team assigned), error conditions, or relationships with sibling tools like 'manycontacts_contacts_team_add' for the inverse operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_contacts_unassignA
Unassign a WhatsApp Business contact (remove user assignment)
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number with country code, e.g. 34600000000 |
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 states this is a mutation ('unassign'), implying it modifies data, but doesn't disclose behavioral traits such as permissions required, whether the change is reversible, error conditions (e.g., if contact isn't assigned), or side effects. This leaves significant gaps 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, efficient sentence that front-loads the key action and resource. There is no wasted language, and it directly conveys the tool's 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's complexity (a mutation with no annotations and no output schema), the description is minimal. It states what the tool does but lacks completeness in behavioral context, error handling, or output details. For a mutation tool, this is a moderate gap, though the concise purpose helps.
Complex tools with many parameters or behaviors need more documentation. Simple 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 'phone' documented as 'Phone number with country code, e.g. 34600000000'. The description adds no additional parameter semantics beyond what the schema provides, such as format details or validation rules, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('unassign'), the resource ('WhatsApp Business contact'), and the effect ('remove user assignment'). It distinguishes from sibling tools like 'manycontacts_contacts_assign' (which assigns contacts) and 'manycontacts_contacts_update' (which might update other fields).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying 'WhatsApp Business contact' and 'remove user assignment', suggesting it's for managing contact assignments. However, it doesn't explicitly state when to use this versus alternatives like 'manycontacts_contacts_update' for other changes or 'manycontacts_contacts_delete' for removal, nor does it mention prerequisites like needing an assigned contact first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_contacts_updateC
Update an existing WhatsApp Business contact (name, notes, custom fields)
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number with country code, e.g. 34600000000 | |
| name | No | New contact name | |
| notes | No | New contact notes | |
| customFields | No | Custom fields as JSON string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states this is an update operation, implying mutation, but lacks critical behavioral details: it doesn't specify required permissions, whether updates are reversible, how partial updates are handled (e.g., if only 'name' is provided, are 'notes' cleared?), rate limits, or error conditions (e.g., what happens if 'phone' doesn't exist?). The description is too minimal for a mutation tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Update an existing WhatsApp Business contact') and specifies the updatable fields. There is no wasted verbiage or redundancy, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (mutation operation with 4 parameters, no annotations, and no output schema), the description is incomplete. It lacks behavioral context (e.g., side effects, error handling), usage guidelines, and details on the response format. For a tool that modifies data, this minimal description leaves significant gaps for an AI agent to infer correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter documented in the schema (e.g., 'phone' requires country code, 'customFields' as JSON string). The description adds marginal value by listing the updatable fields (name, notes, custom fields), but doesn't provide additional semantics beyond what the schema already covers, such as format examples for 'customFields' or constraints on 'name' length.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 resource ('existing WhatsApp Business contact'), specifying the updatable fields (name, notes, custom fields). It distinguishes from sibling tools like 'manycontacts_contacts_create' and 'manycontacts_contacts_delete' by focusing on updates, but doesn't explicitly differentiate from other update-related tools like 'manycontacts_contacts_assign' or 'manycontacts_contacts_set_stage'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., contact must exist), exclusions (e.g., cannot update certain fields), or comparisons to siblings like 'manycontacts_contacts_bulk' for multiple updates or 'manycontacts_contacts_get' to check current values before updating.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_contextA
Get ManyContacts account overview: WhatsApp Business channels, contact/user/tag counts, active AI agents, and enabled features. Use this first to understand the account state.
| 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 the full burden. It implies a read-only operation ('Get') and describes the scope of data returned, which helps the agent understand this is a safe, informational tool. However, it doesn't disclose potential behavioral traits like rate limits, authentication requirements, or data freshness, leaving some gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence and a usage guideline in the second, with zero wasted words. Every sentence earns its place by providing essential information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple read operation with no parameters) and lack of annotations/output schema, the description is fairly complete—it explains what data is returned and when to use it. However, it could be more comprehensive by mentioning the response format or any limitations, though this is mitigated by the tool's straightforward nature.
Complex tools with many parameters or behaviors need more documentation. 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 0 parameters with 100% schema description coverage, so the baseline is 4. The description adds no parameter-specific information, which is acceptable since no parameters exist, but it doesn't compensate for any gaps (as 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 clearly states the tool's purpose with specific verbs ('Get') and resources ('ManyContacts account overview'), listing concrete data points like WhatsApp Business channels, contact/user/tag counts, active AI agents, and enabled features. It effectively distinguishes itself from sibling tools by focusing on account-level overview rather than operations on specific entities like contacts, campaigns, or users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance with 'Use this first to understand the account state,' indicating it should be invoked as an initial step to gather context before using other tools. This clearly distinguishes when to use it versus alternatives like specific entity operations (e.g., manycontacts_contacts_list or manycontacts_users_get).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_funnels_add_stageC
Add a stage to a sales funnel/pipeline
| Name | Required | Description | Default |
|---|---|---|---|
| funnelId | Yes | Funnel ID | |
| name | Yes | Stage name | |
| order | Yes | Stage order position |
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. While 'Add' implies a write/mutation operation, the description doesn't specify permissions required, whether this operation is idempotent, what happens on duplicate stage names, or what the response contains. For a mutation tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for the tool's apparent complexity and gets straight to the point without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after adding a stage, what the response looks like, error conditions, or how this interacts with other funnel operations. Given the presence of sibling funnel tools and the mutation nature of the operation, more context is needed for the agent to use this tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (funnelId, name, order) with basic descriptions. The description adds no additional parameter context beyond what's in the schema - no examples, format requirements, constraints, or relationships between parameters. The baseline of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add a stage') and the target resource ('to a sales funnel/pipeline'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'manycontacts_funnels_update_stage' or 'manycontacts_funnels_create', which could create ambiguity about when to use each funnel-related tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'manycontacts_funnels_update_stage' and 'manycontacts_funnels_create' present, the agent has no indication whether this is for creating new funnels, modifying existing stages, or adding stages to existing funnels. No prerequisites or context for usage is mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_funnels_contactsB
List contacts in a funnel/pipeline, optionally filtered by stage
| Name | Required | Description | Default |
|---|---|---|---|
| funnelId | Yes | Funnel ID | |
| stage_id | No | Filter by stage ID | |
| page | No | Page number | |
| limit | No | Results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the list operation and optional filtering, but doesn't describe important behavioral aspects: whether this is paginated (though parameters suggest it), what the return format looks like, rate limits, authentication requirements, or error conditions. For a list operation with 4 parameters, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately states the core functionality. Every word earns its place: 'List contacts' (action+resource), 'in a funnel/pipeline' (context), 'optionally filtered by stage' (key capability). There's no wasted verbiage or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with 4 parameters and no output schema, the description is minimally adequate. It covers the basic purpose and filtering capability, but lacks details about return format, pagination behavior, error handling, or relationship to sibling tools. Given the complexity (funnel/contact relationships) and absence of annotations/output schema, more context would be helpful for an agent to use this 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%, so all parameters are documented in the schema. The description adds minimal value beyond the schema - it mentions filtering by stage (which corresponds to 'stage_id') but doesn't provide additional context about funnel/stage relationships or pagination behavior. The baseline of 3 is appropriate since the schema does the heavy lifting, though the description could have added more semantic context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List contacts') and resource ('in a funnel/pipeline'), making the purpose immediately understandable. It distinguishes this tool from general contact listing tools like 'manycontacts_contacts_list' by specifying the funnel/pipeline context. However, it doesn't explicitly differentiate from other funnel-related tools like 'manycontacts_funnels_list' (which likely lists funnels themselves rather than contacts within them).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('in a funnel/pipeline') and provides optional filtering ('optionally filtered by stage'), giving some guidance about when this tool is appropriate. However, it doesn't explicitly state when to use this versus alternatives like 'manycontacts_contacts_list' (for all contacts) or 'manycontacts_funnels_list' (for funnel metadata), nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_funnels_createC
Create a new sales funnel/pipeline for WhatsApp Business contacts
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Funnel name |
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 states the tool creates a funnel, implying a write operation, but doesn't cover aspects like required permissions, whether the creation is idempotent, what happens on failure, or the expected response format. This leaves significant gaps 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, direct sentence that efficiently conveys the core action and resource without any fluff or redundancy. It's front-loaded and appropriately sized for its purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a mutation (create operation) with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits, error handling, or return values, making it incomplete for safe and effective use by an AI agent in this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'name' parameter documented as 'Funnel name'. The description doesn't add any extra meaning beyond this, such as examples or constraints, so it meets the baseline for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('a new sales funnel/pipeline for WhatsApp Business contacts'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'manycontacts_funnels_add_stage' or 'manycontacts_funnels_update_stage', which also involve funnel operations, so it doesn't fully achieve sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as 'manycontacts_funnels_list' for viewing funnels or 'manycontacts_funnels_delete' for removal. There's no mention of prerequisites, context, or exclusions, leaving usage unclear relative to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_funnels_deleteC
Delete a sales funnel/pipeline
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Funnel ID to delete |
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 states 'Delete' which implies a destructive mutation, but fails to mention critical aspects like whether deletion is permanent, requires specific permissions, has side effects (e.g., on associated contacts), or what the response looks like. This leaves significant gaps 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, direct sentence with zero wasted words. It's front-loaded with the core action and resource, making it highly efficient and easy to parse, which is ideal for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits (e.g., irreversibility, permissions), response format, or error handling. Given the complexity and risk of deletion, more context is needed to be complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'id' documented as 'Funnel ID to delete'. The description adds no additional parameter information beyond what the schema provides, such as format examples or sourcing details. Given the high schema coverage, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and the resource ('a sales funnel/pipeline'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'manycontacts_funnels_create' or 'manycontacts_funnels_list' beyond the obvious action difference, missing explicit scope or type distinctions that would warrant a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 lacks context about prerequisites (e.g., needing an existing funnel), exclusions, or comparisons to related tools like 'manycontacts_funnels_update_stage', leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_funnels_listB
List sales funnels/pipelines for organizing WhatsApp Business contacts by stage
| 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 the full burden. It states a list operation, implying read-only behavior, but doesn't disclose critical details like pagination, sorting, filtering options, rate limits, or authentication requirements. For a list tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('List sales funnels/pipelines') and adds context without waste. Every word earns its place, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema), the description is adequate but has gaps. It lacks behavioral details like response format or error handling, which are important for a list operation. With no annotations and no output schema, the description should ideally provide more context about what the list returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameters need documentation. The description doesn't add parameter details, which is appropriate here. A baseline of 4 is given since the schema fully covers the lack of parameters, and the description doesn't need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('sales funnels/pipelines'), with specific context about organizing WhatsApp Business contacts by stage. It distinguishes from siblings like 'manycontacts_funnels_create' or 'manycontacts_funnels_delete' by indicating a read operation. However, it doesn't explicitly differentiate from 'manycontacts_funnels_contacts' or 'manycontacts_funnels_update_stage', which are related but not identical.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing existing funnels to list, or compare it to similar tools like 'manycontacts_funnels_contacts' (which might list contacts within funnels). Without explicit usage context, the agent must infer based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_funnels_update_stageC
Update a stage in a sales funnel/pipeline
| Name | Required | Description | Default |
|---|---|---|---|
| funnelId | Yes | Funnel ID | |
| stageId | Yes | Stage ID to update | |
| name | No | New stage name |
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. While 'Update' implies a mutation operation, the description doesn't disclose important behavioral aspects like permission requirements, whether this operation is reversible, what happens to existing stage data, or any rate limits. For a mutation tool with zero annotation coverage, this represents a significant gap in 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, efficient sentence that communicates the core purpose without unnecessary words. It's appropriately sized for what it does convey, though it could benefit from additional context about usage and behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what happens after the update, what the response looks like, error conditions, or important behavioral constraints. The combination of mutation operation + zero annotations + no output schema requires more comprehensive description than 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?
The schema description coverage is 100%, so all parameters are documented in the schema itself. The description doesn't add any meaningful parameter semantics beyond what's already in the schema (funnelId, stageId, name). This meets the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 resource ('a stage in a sales funnel/pipeline'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'manycontacts_funnels_add_stage' or 'manycontacts_funnels_delete', which would require more specific differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There are multiple funnel-related tools in the sibling list (add_stage, delete, list, create), but the description doesn't indicate when this update operation is appropriate versus creating a new stage or modifying other funnel properties.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_messages_listB
List WhatsApp Business messages for a contact. Shows the conversation history with timestamps and status.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number with country code, e.g. 34600000000 | |
| page | No | Page number (default 1) | |
| limit | No | Messages per page (default 50) |
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 mentions the tool lists messages with timestamps and status, which gives some output context, but doesn't address critical behaviors like pagination (implied by page/limit parameters but not explained), rate limits, authentication requirements, or whether it's read-only (implied by 'List' but 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, efficient sentence that front-loads the core purpose ('List WhatsApp Business messages for a contact') and adds useful detail ('Shows the conversation history with timestamps and status'). There is no wasted language, and it's appropriately sized for a list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (list operation with pagination), no annotations, and no output schema, the description is minimally adequate. It covers the basic purpose and output format but lacks details on behavioral traits, error handling, or when to use alternatives. It's complete enough to understand what the tool does but not how to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the three parameters (phone, page, limit). The description adds no additional parameter semantics beyond what the schema provides, such as format examples for phone or usage tips for pagination. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('WhatsApp Business messages for a contact'), specifying it shows conversation history with timestamps and status. It distinguishes from sibling tools like manycontacts_messages_send_text or manycontacts_messages_send_note, but doesn't explicitly differentiate from other list tools like manycontacts_contacts_list or manycontacts_templates_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing an existing contact or specific permissions, nor does it compare to other messaging-related tools like manycontacts_messages_send_text. Usage is implied by the purpose but lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_messages_send_noteA
Send an internal note on a WhatsApp Business contact (not visible to the contact)
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number with country code, e.g. 34600000000 | |
| body | Yes | Internal note text |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it clarifies the note is 'internal' and 'not visible to the contact', it doesn't mention important behavioral aspects like whether this requires specific permissions, if notes are permanent or editable, rate limits, or what happens on success/failure. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding 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, efficient sentence that communicates the essential information without any wasted words. It's appropriately sized for a tool with two parameters and gets straight to the point about what the tool does and its key characteristic (internal/not visible).
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation tool with no annotations and no output schema, the description provides basic purpose and privacy context but lacks important behavioral details. It doesn't explain what happens after sending the note, potential error conditions, or system implications. The description is adequate as a minimum viable explanation but has clear gaps given the tool's mutation nature and lack of structured behavioral metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters ('phone' and 'body') clearly documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema descriptions. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even without additional param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Send an internal note'), the target resource ('on a WhatsApp Business contact'), and distinguishes it from similar tools by specifying 'not visible to the contact'. This differentiates it from sibling messaging tools like 'manycontacts_messages_send_template' or 'manycontacts_messages_send_text' that likely send visible 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?
The description provides clear context about when to use this tool: for sending internal notes on WhatsApp contacts. It implies usage for private annotations rather than customer-facing communication. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools, though the distinction from visible messaging tools is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_messages_send_templateA
Send a WhatsApp Business template message (for outbound messaging outside the 24h window)
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number with country code, e.g. 34600000000 | |
| templateId | Yes | Template ID to send | |
| variables | No | Template variables as JSON array, e.g. '["John","20%"]' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the action without disclosing behavioral traits. It doesn't mention authentication requirements, rate limits, error conditions, whether the message is queued or sent immediately, or what happens on success/failure. For a messaging tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with a clarifying parenthetical. Every word earns its place - it states the action, specifies the message type, and provides crucial usage context without any redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 messaging tool with no annotations and no output schema, the description provides adequate purpose and context but lacks behavioral details. The 100% schema coverage helps with parameters, but the absence of output information and behavioral transparency makes this incomplete for confident tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema descriptions. This meets the baseline of 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send a WhatsApp Business template message') and specifies the resource ('template message'), with the parenthetical adding crucial context about its use case ('for outbound messaging outside the 24h window'). It distinguishes from sibling tools like 'manycontacts_messages_send_text' by specifying template-based messaging.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use this tool ('for outbound messaging outside the 24h window'), which implicitly suggests it's not for regular conversations within the 24-hour window. However, it doesn't explicitly mention when not to use it or name specific alternatives like 'manycontacts_messages_send_text' for non-template messages.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_messages_send_textC
Send a WhatsApp Business text message to a phone number
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | Phone number with country code, e.g. 34600000000 | |
| body | Yes | Message text to send |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits such as authentication requirements, rate limits, error conditions, whether it's idempotent, or what happens on success/failure. 'Send' implies a write operation, but no further context is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded with the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It lacks information about return values, error handling, side effects, and integration context (e.g., WhatsApp Business API specifics). The description doesn't compensate for the missing structured data.
Complex tools with many parameters or behaviors need more documentation. Simple 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 (phone and body) adequately. The description adds no additional parameter semantics beyond what's in the schema, maintaining the 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 ('Send') and resource ('WhatsApp Business text message') with the target ('to a phone number'). It distinguishes from sibling tools like manycontacts_messages_send_note and manycontacts_messages_send_template by specifying 'text message', but doesn't explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like manycontacts_messages_send_template or manycontacts_messages_send_note. The description only states what it does, not when it's appropriate or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_org_apikeyB
Get the organization API key
| 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. 'Get' implies a read operation, but it doesn't disclose whether this requires special permissions, if the API key is sensitive data with access restrictions, what format the key is returned in, or any rate limits. The description states the basic action but lacks important behavioral context for a security-sensitive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's perfectly front-loaded, immediately communicating the core purpose without unnecessary elaboration. Every word earns its place in this minimal but complete statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 zero-parameter tool with no output schema, the description adequately states what it does. However, given that this retrieves potentially sensitive API key information and has no annotations, the description should ideally mention security considerations or return format. It's minimally complete but could be more helpful for an agent handling authentication data.
Complex tools with many parameters or behaviors need more documentation. 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 0 parameters with 100% schema description coverage, so the schema already fully documents the absence of parameters. The description doesn't need to explain parameters, and it correctly implies this is a simple retrieval without inputs. Baseline for 0 parameters is 4, as the description appropriately doesn't waste space on non-existent 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 'Get the organization API key' clearly states the verb 'Get' and the resource 'organization API key', making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'manycontacts_org_get' which might also retrieve organization information, leaving some ambiguity about their distinct roles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'manycontacts_org_get' that might retrieve general organization data, there's no indication whether this tool is for retrieving specifically the API key versus other organization properties, or any prerequisites for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_org_getB
Get WhatsApp Business organization/account information (name, timezone, settings)
| 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 the full burden of behavioral disclosure. It states it's a read operation ('Get'), but doesn't mention whether it requires specific permissions, rate limits, authentication needs, or what happens on failure. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key information: verb, resource, and specific data returned. There's no wasted wording, and it directly communicates the tool's function without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 0 parameters, no output schema, and no annotations, the description is minimally adequate. It states what the tool does but lacks details on behavioral aspects (e.g., authentication, error handling) and doesn't explain the return format. For a simple read tool, it meets basic needs but could be more complete by addressing missing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100% (empty schema). The description doesn't need to add parameter details, so it appropriately focuses on the tool's purpose. A baseline of 4 is applied since no parameters exist, and the description doesn't attempt to explain nonexistent inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'WhatsApp Business organization/account information', specifying what information is retrieved (name, timezone, settings). It distinguishes from siblings like 'manycontacts_org_update' by focusing on retrieval rather than modification. However, it doesn't explicitly differentiate from other 'get' tools like 'manycontacts_contacts_get' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication needs), when not to use it, or how it compares to related tools like 'manycontacts_org_schedule_get' or 'manycontacts_org_apikey'. Usage is implied by the verb 'Get', but no explicit context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_org_schedule_getB
Get the business hours schedule for the WhatsApp Business account
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states it's a 'Get' operation (implying read-only), but doesn't mention authentication requirements, rate limits, error conditions, or what the response format looks like. For a tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that states exactly what the tool does with no wasted words. It's appropriately sized for a simple retrieval tool and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read operation with no output schema, the description provides the core purpose but lacks important context. Without annotations or output schema, it should ideally mention what information is returned (e.g., hours format, timezone) and any authentication requirements. The description is minimally adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema description coverage, so the schema already fully documents the lack of parameters. The description appropriately doesn't discuss parameters, maintaining focus on the tool's purpose. A baseline of 4 is appropriate for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('business hours schedule for the WhatsApp Business account'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'manycontacts_org_get', but the specificity of 'business hours schedule' provides some implicit distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, context, or comparison to sibling tools like 'manycontacts_org_get' (which might retrieve general organization information). Usage is implied only by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_org_updateC
Update WhatsApp Business organization settings (timezone, auto-reply, webhooks, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| timezone | No | Timezone, e.g. Europe/Madrid | |
| auto_reply_open | No | Enable auto-reply on chat open | |
| auto_reply_open_text | No | Auto-reply text when chat opens | |
| auto_reply_close | No | Enable auto-reply on chat close | |
| auto_reply_close_text | No | Auto-reply text when chat closes | |
| auto_reply_close_minutes | No | Minutes before auto-close | |
| auto_reply_away | No | Enable away auto-reply | |
| auto_reply_away_text | No | Away auto-reply text | |
| webhooks_forward | No | Enable webhook forwarding | |
| webhooks_forward_url | No | Webhook forward URL |
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 states this is an update operation (implying mutation), but doesn't mention important behavioral aspects like required permissions, whether changes are reversible, rate limits, error conditions, or what happens to unspecified settings. For a mutation tool with 10 parameters, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately communicates the core purpose. Every word earns its place - 'Update' (action), 'WhatsApp Business organization settings' (target), and examples of what can be updated. There's no wasted verbiage or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation tool with 10 parameters and no annotations or output schema, the description is insufficiently complete. It doesn't address critical context like authentication requirements, side effects, error handling, or what constitutes a successful update. The agent lacks necessary information to use this tool safely and effectively despite the comprehensive parameter schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with all 10 parameters well-documented in the schema itself. The description adds minimal value beyond the schema by listing example categories ('timezone, auto-reply, webhooks, etc.') but doesn't provide additional context about parameter interactions, defaults, or constraints. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Update') and resource ('WhatsApp Business organization settings'), and provides specific examples of what can be updated ('timezone, auto-reply, webhooks, etc.'). However, it doesn't explicitly differentiate from its sibling 'manycontacts_org_get' (which presumably reads the same settings), so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, when not to use it, or how it relates to sibling tools like 'manycontacts_org_get' (for reading settings) or other update tools in the system. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_tags_createC
Create a new tag for WhatsApp Business contacts
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Tag name | |
| color | No | Tag color hex, e.g. #ff0000 (default #fab1a0) |
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. While 'Create a new tag' implies a write operation, it doesn't address important behavioral aspects like required permissions, whether tag names must be unique, what happens on duplicate names, rate limits, or what the response contains. This leaves significant gaps 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, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for a simple creation tool and gets straight to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after creation, whether there are constraints on tag creation, how this integrates with the broader system, or what the agent should expect as a result. The context signals indicate this is a non-trivial operation that requires more guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters (name and color). The description doesn't add any parameter-specific information beyond what's in the schema, such as naming conventions, color palette restrictions, or default behavior details. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new tag') and the resource ('for WhatsApp Business contacts'), which provides a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'manycontacts_tags_update' or 'manycontacts_tags_delete' beyond the obvious 'create' vs 'update/delete' distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, when-not-to-use scenarios, or how this relates to sibling tools like 'manycontacts_tags_list' or 'manycontacts_contacts_tag_add'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_tags_deleteC
Delete a WhatsApp Business contact tag
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Tag 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 but only states the action without behavioral details. It doesn't disclose if deletion is permanent, requires specific permissions, has side effects (e.g., removing tags from contacts), or error conditions (e.g., invalid ID). This is inadequate 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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deletion tool with no annotations and no output schema, the description is incomplete. It lacks critical context like behavioral traits (e.g., permanence, permissions), usage guidelines, and output expectations, leaving significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'id' parameter clearly documented as 'Tag ID to delete'. The description adds no additional parameter semantics beyond this, so it meets the baseline of 3 where schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and the resource ('a WhatsApp Business contact tag'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'manycontacts_tags_update' or 'manycontacts_contacts_tag_remove', which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites (e.g., tag must exist), exclusions (e.g., cannot delete if in use), or sibling tools like 'manycontacts_tags_update' for modifications.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_tags_listB
List all tags for categorizing WhatsApp Business contacts
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a list operation, implying it's read-only, but doesn't mention any behavioral traits like pagination, rate limits, authentication requirements, or what format the tags are returned in. For a tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the essential purpose without any wasted words. It's appropriately sized for a simple list operation and front-loads the key information ('List all tags').
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 provides the basic purpose but lacks important context. Without annotations or output schema, it should ideally mention what the response contains (e.g., tag names, IDs, metadata) or any behavioral considerations. The description is minimally adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description appropriately doesn't discuss parameters, which is correct for a parameterless tool. A baseline of 4 is appropriate since no parameter information is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all tags') and resource ('for categorizing WhatsApp Business contacts'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from sibling tag-related tools like 'manycontacts_tags_create' or 'manycontacts_tags_update', which would require explicit differentiation to earn a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, timing considerations, or comparison to sibling tools like 'manycontacts_contacts_tag_add' or 'manycontacts_contacts_tag_remove'. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_tags_updateC
Update an existing WhatsApp Business contact tag
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Tag ID | |
| name | No | New tag name | |
| color | No | New tag color hex |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states this is an update operation, implying mutation, but doesn't disclose behavioral traits such as required permissions, whether changes are reversible, error handling, or rate limits. For a mutation tool with zero annotation coverage, this is a significant gap in 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, efficient sentence that front-loads the core purpose ('Update an existing WhatsApp Business contact tag') with zero waste. It's appropriately sized for a straightforward tool, earning its place without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks crucial context such as what the update returns, error conditions, or side effects (e.g., whether it affects tagged contacts). For a tool with three parameters and potential behavioral complexity, more information is needed to guide an agent 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%, so the schema already documents all parameters (id, name, color) with descriptions. The description adds no additional meaning beyond what's in the schema, such as explaining that 'id' refers to an existing tag or providing examples for 'color' values. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('existing WhatsApp Business contact tag'), which is specific and unambiguous. However, it doesn't differentiate this tool from sibling tools like 'manycontacts_tags_create' or 'manycontacts_tags_delete', which would require mentioning it modifies existing tags rather than creating or deleting them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing tag ID), exclusions, or comparisons to sibling tools like 'manycontacts_tags_create' for new tags or 'manycontacts_contacts_tag_add' for tagging contacts, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_teams_add_memberC
Add a user to a team
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | Team ID | |
| userId | Yes | User ID to add |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('add') but doesn't cover critical aspects like required permissions, whether this is a mutating operation, potential side effects (e.g., notifications, access changes), error conditions, or response format. For a tool that modifies team membership, this represents a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core action and resource, making it immediately scannable. Every word earns its place, with zero redundancy or filler 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 mutation tool with no annotations and no output schema, the description is incomplete. It doesn't address behavioral aspects like permissions, side effects, or error handling that are crucial for safe invocation. While the purpose is clear, the lack of operational context makes this inadequate for a tool that modifies team membership.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear parameter documentation ('Team ID' and 'User ID to add'). The description doesn't add any parameter-specific information beyond what's in the schema, such as format examples or validation rules. Given the high schema coverage, a baseline score of 3 is appropriate as the schema adequately handles 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 'Add a user to a team' clearly states the action (add) and resource (user to team), making the purpose immediately understandable. It distinguishes from sibling tools like 'manycontacts_teams_remove_member' by specifying the opposite operation. However, it doesn't explicitly differentiate from other team-related tools like 'manycontacts_teams_create' or 'manycontacts_teams_list', which keeps it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., existing team and user), exclusions, or comparisons to similar tools like 'manycontacts_contacts_team_add' or 'manycontacts_users_invite'. This lack of context leaves the agent to infer usage based on the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_teams_createC
Create a new team in the WhatsApp Business organization
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Team name |
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 states 'Create' implies a write operation but doesn't mention critical details like required permissions, whether the creation is irreversible, potential side effects (e.g., team naming constraints), or what happens on success/failure. This leaves significant gaps 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, clear sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and efficient, making it easy for an agent to parse quickly. There's no redundancy or fluff, earning a top score for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't cover behavioral aspects like permissions, side effects, or response format, and it lacks usage guidelines. While the schema covers the single parameter well, the overall context for safe and effective tool invocation is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'name' parameter clearly documented as 'Team name'. The description doesn't add any extra semantic context beyond this, such as naming conventions or validation rules. Given the high schema coverage, a baseline score of 3 is appropriate as the schema handles the parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('new team in the WhatsApp Business organization'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'manycontacts_teams_add_member' or 'manycontacts_teams_list', which would require more specific scope details for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as 'manycontacts_teams_list' for viewing teams or 'manycontacts_teams_add_member' for modifying existing teams. It lacks context about prerequisites, permissions, or typical workflows, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_teams_deleteC
Delete a team from the WhatsApp Business organization
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Team 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 but only states the action without disclosing behavioral traits. It doesn't mention if deletion is permanent, requires specific permissions, affects associated contacts, or has rate limits, leaving significant gaps for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is incomplete. It lacks critical context about irreversible effects, permissions, or return values, making it inadequate for safe agent use despite the concise structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'id', so the schema already documents it fully. The description adds no additional meaning beyond what's in the schema, meeting the baseline of 3 when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('a team from the WhatsApp Business organization'), providing specific verb+resource. However, it doesn't explicitly differentiate from sibling tools like manycontacts_teams_remove_member, which might cause confusion about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like manycontacts_teams_remove_member or manycontacts_contacts_team_remove. The description lacks context about prerequisites, consequences, or appropriate scenarios for deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_teams_listB
List teams in the WhatsApp Business organization
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 states it's a listing operation, implying it's likely read-only and non-destructive, but doesn't specify details like pagination, rate limits, authentication needs, or what data is returned (e.g., team names, IDs, members). This leaves significant gaps for a tool with no structured behavioral hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the tool's purpose without any fluff or redundant information. It's front-loaded and efficiently communicates the essential action, making it highly concise and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 0 parameters, no annotations, and no output schema, the description is minimally adequate but incomplete. It specifies what the tool does (list teams) but lacks details on behavioral aspects like return format, error handling, or organizational scope. For a simple listing tool, it meets the bare minimum but could benefit from additional context to fully guide the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to add parameter semantics since there are none, so it appropriately avoids discussing parameters. A baseline of 4 is applied as per the rules for 0 parameters, as the description doesn't introduce unnecessary complexity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('teams in the WhatsApp Business organization'), providing a specific purpose. However, it doesn't explicitly differentiate from sibling tools like 'manycontacts_teams_create' or 'manycontacts_teams_delete', which would require mentioning it's a read-only listing operation versus creation/deletion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, when not to use it, or compare it to sibling tools like 'manycontacts_users_list' or 'manycontacts_contacts_list' for different resource types, leaving the agent without contextual usage cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_teams_remove_memberC
Remove a user from a team
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | Team ID | |
| userId | Yes | User ID to remove |
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 basic action without behavioral details. It doesn't disclose if this is destructive (likely yes, but not confirmed), permission requirements, rate limits, or what happens post-removal (e.g., user loses access). This leaves critical gaps 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, direct sentence with zero wasted words, front-loading the core action. It's appropriately sized for a simple tool, making it easy to parse quickly without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., side effects, error conditions), usage context, and expected outcomes, leaving the agent under-informed about critical aspects like safety 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 parameters clearly documented in the schema (teamId and userId). The description adds no additional meaning beyond implying these parameters are needed, so it meets the baseline of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove') and resource ('a user from a team'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'manycontacts_teams_delete' (which deletes entire teams) or 'manycontacts_contacts_team_remove' (which removes contacts from teams), missing explicit distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., user must be a team member), exclusions (e.g., cannot remove last admin), or related tools like 'manycontacts_teams_add_member' for adding members, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_templates_getB
Get details of a specific WhatsApp Business message template including components and configuration
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Template ID |
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 states it's a read operation ('Get details'), which implies non-destructive behavior, but doesn't disclose any behavioral traits such as authentication requirements, rate limits, error conditions, or what happens if the template ID is invalid. For a tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the tool's purpose without unnecessary words. It is front-loaded with the core action and resource, making it easy to understand at a glance. Every part of the sentence earns its place by specifying what is retrieved.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single parameter, no output schema, no annotations), the description is minimally complete. It states what the tool does but lacks details on behavioral context, usage guidelines, or output format. For a simple read tool, this might be adequate, but it doesn't fully compensate for the absence of annotations or output schema, leaving some operational questions unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'id' documented as 'Template ID'. The description adds no additional meaning beyond this, such as format examples or where to obtain the ID. With high schema coverage, the baseline is 3, as the schema adequately covers parameter semantics without extra description input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get details') and resource ('a specific WhatsApp Business message template'), specifying it includes 'components and configuration'. It distinguishes from the sibling 'manycontacts_templates_list' by focusing on a single template rather than listing multiple. However, it doesn't explicitly contrast with 'manycontacts_templates_sync', which might be a related operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a template ID from 'manycontacts_templates_list'), exclusions, or comparisons to sibling tools like 'manycontacts_templates_list' for listing all templates or 'manycontacts_templates_sync' for syncing templates. Usage is implied by the action but not explicitly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_templates_listA
List WhatsApp Business message templates. Templates are required for sending messages outside the 24h conversation window.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by template status |
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 of behavioral disclosure. It mentions that templates are required for certain messaging scenarios, which adds some context, but it does not disclose critical behavioral traits such as whether this is a read-only operation, if it requires authentication, rate limits, pagination behavior, or what the return format looks like. This leaves significant gaps for a tool that lists resources.
Agents need to know what a tool does to the 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 appropriately sized and front-loaded, consisting of two concise sentences. The first sentence directly states the tool's purpose, and the second adds valuable context without unnecessary elaboration. Every sentence earns its place, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema and no annotations, the description provides basic purpose and context but lacks completeness. It does not explain return values, error conditions, or other behavioral aspects needed for a list operation. However, it adequately covers the core functionality for a simple filtering tool with one parameter, though more detail would improve usability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'status' fully documented in the schema itself (including its enum values). The description does not add any additional meaning or details about the parameter beyond what the schema provides, so it meets the baseline score of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('WhatsApp Business message templates'), making the purpose specific and unambiguous. It also distinguishes this tool from its sibling 'manycontacts_templates_get' by indicating it returns multiple templates rather than a single one, and from 'manycontacts_templates_sync' by focusing on listing rather than synchronization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool by explaining that templates are required for sending messages outside the 24-hour conversation window, which helps the agent understand its relevance. However, it does not explicitly state when not to use it or name specific alternatives among the sibling tools, such as 'manycontacts_templates_get' for retrieving a single template.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_templates_syncB
Sync WhatsApp Business templates from Meta Cloud API. Fetches the latest templates from the connected WhatsApp Business account.
| 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. It states the tool syncs/fetches templates, implying a read operation, but doesn't disclose behavioral traits like whether it requires authentication, has rate limits, modifies local data, or returns specific output formats. The description is minimal and lacks critical operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences that efficiently convey the core functionality without waste. It's front-loaded with the main action and resource, making it easy to parse. Every sentence earns its place by specifying the source (Meta Cloud API) and purpose (fetching latest templates).
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations, no output schema, and a read operation that likely involves external API integration, the description is incomplete. It doesn't explain what 'sync' entails (e.g., updates local cache, returns data), authentication requirements, error handling, or output format. For a tool interacting with an external service, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description doesn't add parameter semantics, but this is appropriate given the empty schema. Baseline is 4 as per rules for 0 parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Sync WhatsApp Business templates from Meta Cloud API' specifies the action (sync) and resource (templates). It distinguishes from siblings like manycontacts_templates_get and manycontacts_templates_list by focusing on fetching from an external API rather than local retrieval, though it doesn't explicitly name these alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions 'fetches the latest templates' but doesn't specify prerequisites (e.g., requires connected WhatsApp Business account) or compare to sibling tools like manycontacts_templates_list for local template access. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_users_deleteC
Remove a team member from the WhatsApp Business organization
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | User ID to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a removal operation (implying mutation/destruction) but doesn't specify whether this is reversible, what permissions are required, what happens to the user's data, or whether there are rate limits. The description adds minimal behavioral context beyond the obvious destructive nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for a simple deletion tool and gets straight to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no annotations and no output schema, the description is insufficient. It doesn't explain what 'remove' means operationally (deactivation vs deletion), what happens to the user's assigned contacts/campaigns, what the response looks like, or any error conditions. The context signals show this is a simple tool, but destructive operations require more behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage, with the single parameter 'id' clearly documented as 'User ID to remove'. The description doesn't add any additional parameter semantics beyond what the schema already provides, so it meets the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove') and resource ('team member from the WhatsApp Business organization'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'manycontacts_teams_remove_member' or 'manycontacts_contacts_team_remove', which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'manycontacts_teams_remove_member' or 'manycontacts_users_update' (which might deactivate users). There's no mention of prerequisites, consequences, or appropriate contexts for this deletion operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_users_getC
Get details of a specific team member/user
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | User ID |
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 states this is a read operation ('Get details'), which implies it's non-destructive, but doesn't address other important aspects like authentication requirements, rate limits, error conditions, or what specific details are returned. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the core purpose without unnecessary words. It's front-loaded with the essential information ('Get details of a specific team member/user'), making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there are no annotations and no output schema, the description is insufficient for a complete understanding. It doesn't explain what details are returned (e.g., user name, email, role), how errors are handled, or any dependencies. For a tool that retrieves user information, more context about the response format and potential limitations is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage (the 'id' parameter is clearly documented as 'User ID'), so the schema does the heavy lifting. The description doesn't add any meaningful parameter information beyond what's already in the schema, such as format examples or constraints. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get details') and the resource ('a specific team member/user'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from its sibling 'manycontacts_users_list' (which presumably lists multiple users), leaving some ambiguity about when to use one versus the other.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'manycontacts_users_list' or 'manycontacts_users_update'. It doesn't mention prerequisites (e.g., needing a user ID) or contextual constraints, leaving the agent to infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_users_inviteC
Invite a new team member to the WhatsApp Business organization
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email address to invite |
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 of behavioral disclosure. It mentions 'invite' which implies a mutation operation, but fails to specify details like whether this sends an email invitation, requires admin privileges, has rate limits, or what happens on success/failure. This leaves significant gaps 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, direct sentence that efficiently conveys the core action without unnecessary words. It is front-loaded with the key verb 'invite' and avoids redundancy, making it highly concise and well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation tool with no annotations and no output schema, the description is insufficient. It doesn't cover behavioral aspects like permissions, side effects, or response format, and lacks usage guidelines. Given the tool's potential complexity in user management, more context is needed to ensure an agent can 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?
The input schema has 100% description coverage, with the 'email' parameter clearly documented. The description adds no additional semantic context beyond what the schema provides, such as email format requirements or invitation message details. Given the high schema coverage, a baseline score of 3 is appropriate as the description doesn't enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('invite') and target ('new team member to the WhatsApp Business organization'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'manycontacts_teams_add_member' or 'manycontacts_users_update', which might have overlapping functionality, so it doesn't reach a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as 'manycontacts_teams_add_member' for adding members to teams or 'manycontacts_users_update' for modifying existing users. It also lacks prerequisites like required permissions or organizational context, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_users_listB
List team members/users in the WhatsApp Business organization
| 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. It states the action ('List') but doesn't disclose behavioral traits like whether this requires admin permissions, how results are paginated, what fields are returned, or if there are rate limits. The description is minimal and lacks essential operational context for a tool that likely accesses organizational data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action and resource. There's zero waste or redundancy, making it easy to parse quickly while conveying the essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool that lists organizational users. It doesn't explain what data is returned (e.g., user IDs, roles, status), how results are structured, or any limitations (e.g., only active users). For a read operation with potential sensitivity, more context is needed 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?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter information, but that's appropriate given the empty schema. Baseline is 4 for zero parameters, as the description doesn't need to compensate for any gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('team members/users'), specifying the scope as 'in the WhatsApp Business organization'. It distinguishes from sibling tools like manycontacts_contacts_list or manycontacts_teams_list by focusing on users, but doesn't explicitly differentiate from other user-related tools like manycontacts_users_get or manycontacts_users_update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention when to prefer this over manycontacts_users_get (for individual users) or manycontacts_teams_list (for team structures), nor does it specify prerequisites or contextual constraints for listing users.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manycontacts_users_updateC
Update a team member/user profile
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | User ID | |
| name | No | User name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it's an update operation. It doesn't disclose behavioral aspects like required permissions, whether changes are reversible, rate limits, or what happens to unspecified fields. For a mutation tool, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded with the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'update' entails operationally, what fields can be modified beyond 'name', or what the response looks like. Given the complexity of user profile updates, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters 'id' and 'name' are documented in the schema. The description doesn't add any additional meaning about these parameters beyond what's already in the structured 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 the action ('Update') and resource ('team member/user profile'), making the purpose understandable. It doesn't explicitly differentiate from sibling tools like 'manycontacts_users_get' or 'manycontacts_users_delete', but the verb 'Update' provides basic distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'manycontacts_users_get' for reading or 'manycontacts_users_delete' for removal. The description only states what it does, not when it's appropriate or what prerequisites exist.
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.
55 tool updates
v1.0.1- First observed
manycontacts_ai_agents_feedback - First observed
manycontacts_ai_agents_get - First observed
manycontacts_ai_agents_list - First observed
manycontacts_ai_agents_update - First observed
manycontacts_campaigns_create - First observed
manycontacts_campaigns_delete - First observed
manycontacts_campaigns_list - First observed
manycontacts_channels_list - First observed
manycontacts_contacts_assign - First observed
manycontacts_contacts_bulk - First observed
manycontacts_contacts_close - First observed
manycontacts_contacts_create - First observed
manycontacts_contacts_delete - First observed
manycontacts_contacts_get - First observed
manycontacts_contacts_list - First observed
manycontacts_contacts_open - First observed
manycontacts_contacts_set_stage - First observed
manycontacts_contacts_tag_add - First observed
manycontacts_contacts_tag_remove - First observed
manycontacts_contacts_team_add - First observed
manycontacts_contacts_team_remove - First observed
manycontacts_contacts_unassign - First observed
manycontacts_contacts_update - First observed
manycontacts_context - First observed
manycontacts_funnels_add_stage - First observed
manycontacts_funnels_contacts - First observed
manycontacts_funnels_create - First observed
manycontacts_funnels_delete - First observed
manycontacts_funnels_list - First observed
manycontacts_funnels_update_stage - First observed
manycontacts_messages_list - First observed
manycontacts_messages_send_note - First observed
manycontacts_messages_send_template - First observed
manycontacts_messages_send_text - First observed
manycontacts_org_apikey - First observed
manycontacts_org_get - First observed
manycontacts_org_schedule_get - First observed
manycontacts_org_update - First observed
manycontacts_tags_create - First observed
manycontacts_tags_delete - First observed
manycontacts_tags_list - First observed
manycontacts_tags_update - First observed
manycontacts_teams_add_member - First observed
manycontacts_teams_create - First observed
manycontacts_teams_delete - First observed
manycontacts_teams_list - First observed
manycontacts_teams_remove_member - First observed
manycontacts_templates_get - First observed
manycontacts_templates_list - First observed
manycontacts_templates_sync - First observed
manycontacts_users_delete - First observed
manycontacts_users_get - First observed
manycontacts_users_invite - First observed
manycontacts_users_list - First observed
manycontacts_users_update
TDQS
Scored across 55 tools
Tools are well-differentiated by resource (e.g., contacts, campaigns, AI agents) and action (e.g., list, get, create, update), with minimal overlap. However, some operations like contacts_bulk and individual contact actions might cause slight confusion, but descriptions clarify their distinct purposes.
All tools follow a consistent snake_case pattern with a clear manycontacts_resource_action structure. This uniformity makes it easy to predict tool names and understand their functions across the server.
With 55 tools, the count is excessive for a WhatsApp Business CRM server, likely overwhelming for agents. A more focused set of 15-25 tools could cover the same domain without redundancy, such as consolidating similar contact operations.
The toolset provides comprehensive CRUD and lifecycle coverage for all key resources (contacts, campaigns, AI agents, funnels, tags, teams, users, templates, messages, and organization settings). No obvious gaps are present, enabling full agent workflows.
Maintenance
Related MCP Connectors
Unified messaging MCP server: WhatsApp, Instagram, Telegram, SMS, Messenger & email support inbox
WhatsApp (Web + Business API), SMS, contacts, and call records via 2Chat's MCP server.
WhatsApp CRM for AI agents: search contacts, read chats, manage the sales pipeline, send messages.
Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceThe most complete MCP Server for WhatsApp Business Cloud API. 43 tools across 10 modules including messaging, templates, media, webhooks, analytics, AI auto-reply, and anti-spam protection.12 npm3MIT

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- AlicenseBqualityCmaintenanceEnables AI assistants to manage WhatsApp business operations including chatbots, broadcasts, campaigns, and contacts through 120+ MCP tools.2410042 npmMIT
- AlicenseBqualityBmaintenanceMCP server that enables AI agents to operate WhatsApp via Visto Azul API: send text, media, PIX charges, manage campaigns and contacts, and configure webhooks using natural language.118 npmMIT