Peach MCP Server
The Peach MCP Server enables AI assistants to manage WhatsApp messaging, templates, contacts, and media through the Peach platform.
Messaging
Send template messages to contacts
Trigger flows or app-initiated messages with optional fallback templates
Connect contacts to AI agents via automated routing
Check event status (delivered, read, failed)
List sent template messages with filters (date range, status, phone number, template name)
Broadcasts
Launch broadcast campaigns to multiple contacts or audience lists, with instant/smart delivery and scheduling options
Templates
List, retrieve, create, update, submit for Meta review, pause, and archive WhatsApp templates
Supports MARKETING, UTILITY, and AUTHENTICATION categories with header, body, footer, and button components
Contacts
Create or upsert single/bulk contacts with name, email, phone, timezone, and custom metadata
Update contacts by phone number (opt-out status, language, nickname, etc.)
Media
List, upload (base64-encoded), and delete media files
Messages
List messages with filters for date range, direction (inbound/outbound), phone number, and pagination
Enables interaction with the Peach WhatsApp messaging platform to send messages, manage templates and contacts, handle media, and launch broadcast campaigns.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Peach MCP ServerSend the welcome template to +14155550123"
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.
@peachai/mcp
MCP (Model Context Protocol) server for the Peach WhatsApp messaging platform. Lets AI assistants like Claude send messages, manage templates, contacts, and media directly through your Peach account.
Requirements
Node.js 18 or higher
A Peach account with an API key
Related MCP server: WhatsApp Cloud API MCP Server
Getting your API key
Log in to app.trypeach.ai, go to Settings → API, and copy your API key.
Setup
Hosted Server setup
Recommended Peach offers hosted MCP server. We recommend using this.
{
"mcpServers": {
"peach": {
"url": "https://app.trypeach.ai/api/mcp",
"headers": {
"Authorization": "<YOUR PEACH API KEY>"
}
}
}
}Claude Desktop
Add the following to your claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"peach": {
"command": "npx",
"args": ["-y", "@peachai/mcp"],
"env": {
"PEACH_API_KEY": "your-api-key"
}
}
}
}Restart Claude Desktop. You should see the Peach tools available in your conversation.
Cursor
Go to Settings → MCP and add:
{
"peach": {
"command": "npx",
"args": ["-y", "@peachai/mcp"],
"env": {
"PEACH_API_KEY": "your-api-key"
}
}
}Claude Code
Run this command to add Peach AI to your Claude Code setup:
claude mcp add --scope user --env PEACH_API_KEY=your-api-key peach -- npx -y @peachai/mcpOr add it manually to your .mcp.json:
{
"mcpServers": {
"peach": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@peachai/mcp"],
"env": {
"PEACH_API_KEY": "your-api-key"
}
}
}
}Antigravity
Go to Antigravity settings -> Customizations. Click Open MCP Config and add the following:
{
"mcpServers": {
"peach": {
"serverUrl": "https://app.trypeach.ai/api/mcp",
"headers": {
"Authorization": "<YOUR PEACH API KEY>"
}
}
}
}Available tools
Messaging
Tool | Description |
| Send a WhatsApp template message to a contact |
| Trigger a flow or app-initiated message |
| Send a template and connect the contact to an AI agent |
| Check the status of a sent event |
| List sent template messages with filters |
Broadcasts
Tool | Description |
| Create and launch a broadcast campaign |
Templates
Tool | Description |
| List all WhatsApp templates |
| Get a specific template by ID or name |
| Create a new WhatsApp template |
| Update an existing template |
| Submit a template for Meta review |
| Pause an approved template |
| Archive a template |
Contacts
Tool | Description |
| Create or upsert a single contact |
| Bulk create or upsert contacts |
| Update a contact by phone number |
Media
Tool | Description |
| List uploaded media files |
| Upload a media file (base64) |
| Delete a media file |
Messages
Tool | Description |
| List messages with optional filters |
Example prompts
"Send the order_confirmation template to +14155552671 with order ID 12345"
"Create a new MARKETING template called summer_sale with a body saying 'Get 20% off this weekend!'"
"List all my approved WhatsApp templates"
"Update the contact +14155552671's name to John Smith"
"Launch a broadcast using template promo_v2 to audience list abc123"
Available Tools
20 toolspeach_archive_templateB
Archive a WhatsApp template (must be approved, rejected, or draft status)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The template ID or template_name |
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 mentions the status requirement but does not disclose behavioral traits like whether archiving is reversible, requires specific permissions, affects related data, or has rate limits. 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 with no wasted words. It is front-loaded with the core action and includes a key constraint, 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 is a mutation (archive) with no annotations and no output schema, the description is incomplete. It lacks details on behavioral implications, return values, error conditions, or how it differs from sibling tools, making it inadequate 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 the 'id' parameter. The description adds no additional meaning beyond what the schema provides, such as clarifying the format of 'id' or examples. 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 ('Archive') and resource ('a WhatsApp template'), making the purpose evident. It distinguishes from siblings like 'peach_list_templates' or 'peach_update_template' by focusing on archiving, but could be more specific about what archiving entails (e.g., permanent vs. reversible).
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 implied usage by stating the template must be in 'approved, rejected, or draft status', which helps identify when to use it. However, it lacks explicit guidance on when to choose this over alternatives (e.g., 'peach_pause_template' or 'peach_delete_media') or prerequisites beyond status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peach_connect_to_ai_agentB
Send a template message to a contact and connect them to an AI agent for automated follow-up
| Name | Required | Description | Default |
|---|---|---|---|
| contact | Yes | The recipient contact. phone_number is required. | |
| template_message | Yes | Template message parameters | |
| ai_agent | No | AI agent to connect the contact to after the template message |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks critical behavioral details. It doesn't disclose whether this is a read-only or destructive operation, what permissions are required, how errors are handled, or what happens if the AI agent connection fails. The description mentions automated follow-up but doesn't explain the nature of that automation.
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 functionality. Every word earns its place by specifying the action (send template message), target (contact), and outcome (connect to AI agent for automated follow-up) 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?
For a tool with 3 complex nested parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what the tool returns, how the AI agent connection works, what 'automated follow-up' entails, or any error conditions. The description leaves too many behavioral questions unanswered given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing complete parameter documentation. The description adds minimal semantic context by mentioning 'template message' and 'AI agent' which aligns with the schema's template_message and ai_agent objects, but doesn't provide additional meaning beyond what's already in the structured schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('send a template message' and 'connect them to an AI agent') and resource ('a contact'), distinguishing it from sibling tools like peach_send_template_message (which lacks AI agent connection) and peach_create_contact (which only creates contacts). The dual-purpose nature is explicitly articulated.
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 (automated follow-up after template message) but doesn't explicitly state when to use this tool versus alternatives like peach_send_template_message (for sending without AI connection) or peach_launch_broadcast (for bulk messaging). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peach_create_contactC
Create or upsert a single contact in the Peach account
| Name | Required | Description | Default |
|---|---|---|---|
| phone_number | Yes | Phone number in E.164 format (e.g. +14155552671) | |
| name | No | Contact's full name | |
| No | Contact's email address | ||
| timezone | No | Contact's timezone (e.g. America/New_York) | |
| metadata | No | Custom metadata key-value pairs (merged with existing) |
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 'create or upsert,' implying mutation, but does not detail permissions required, whether the operation is idempotent, error handling, or response format. This leaves significant gaps in understanding the tool's behavior beyond basic functionality.
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 is front-loaded and wastes no space, 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 with 5 parameters, no output schema, and no annotations), the description is insufficient. It lacks details on behavioral traits, error conditions, return values, and differentiation from siblings, leaving the agent with incomplete context for proper 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 schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description does not add any additional meaning or context beyond what the schema provides, such as explaining how 'upsert' works with parameters. Baseline 3 is appropriate when the schema handles parameter documentation effectively.
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 or upsert') and resource ('a single contact in the Peach account'), making the purpose evident. However, it does not explicitly differentiate from sibling tools like 'peach_create_contacts' (plural) or 'peach_update_contact', leaving some ambiguity about when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'peach_create_contacts' (for multiple contacts) or 'peach_update_contact' (for existing contacts). The description lacks context about prerequisites, typical use cases, or exclusions, offering minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peach_create_contactsC
Create or upsert multiple contacts in bulk in the Peach account
| Name | Required | Description | Default |
|---|---|---|---|
| contacts | Yes | Array of contacts to create or upsert |
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 'Create or upsert' which implies mutation, but doesn't specify permissions required, rate limits, error handling for partial failures, or whether the operation is idempotent. The 'bulk' aspect hints at performance considerations but lacks concrete details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that clearly states the tool's purpose without unnecessary 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 doesn't explain what 'upsert' entails (e.g., merge logic), what happens on conflicts, the response format, or error conditions. Given the complexity of bulk operations and lack of structured safety hints, more behavioral 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 the schema fully documents the 'contacts' parameter and its nested properties. The description adds minimal value beyond the schema by implying bulk operations and upsert behavior, but doesn't provide additional syntax, format, or constraint 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 or upsert multiple contacts in bulk') and the resource ('in the Peach account'), which is specific and unambiguous. However, it doesn't explicitly differentiate from its sibling 'peach_create_contact' (singular), leaving some ambiguity about when to use bulk vs. single 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 like 'peach_create_contact' (for single contacts) or 'peach_update_contact' (for updates). It mentions 'bulk' but doesn't specify thresholds or scenarios where bulk is preferred over individual operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peach_create_templateC
Create a new WhatsApp template in the Peach account. Must include at least a body component in components_attributes.
| Name | Required | Description | Default |
|---|---|---|---|
| template_name | Yes | Unique name for the template (lowercase, underscores only, e.g. order_confirmation) | |
| language | Yes | Language code for the template (e.g. en, en_US) | |
| category | Yes | Template category as required by WhatsApp | |
| components_attributes | Yes | Template components. Must include a body component. Each component has component_type, value, and optional sub_type/data_type/name/index. | |
| purpose | No | Purpose of the template (e.g. general) | |
| whats_app_business_account_id | No | External ID of the WhatsApp Business Account to use (defaults to the account's only WABA if there is one) | |
| folder | No | Folder to organise the template into |
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 a creation operation but doesn't disclose behavioral traits like permissions needed, whether it's idempotent, rate limits, or what happens on success/failure. The body component requirement is useful but insufficient for a mutation 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?
Two concise sentences with zero waste. The first states the core purpose, the second adds a critical constraint. Well-structured and front-loaded, though slightly terse for a creation tool with no annotations.
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 explain what happens after creation (e.g., returns a template ID, status), error conditions, or integration with other tools like peach_submit_template. The body component note helps but doesn't compensate for missing 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?
Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds minimal value by emphasizing the body component requirement in components_attributes, which is already implied in the schema. 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 ('Create a new WhatsApp template') and resource ('in the Peach account'), with a specific requirement about including a body component. It distinguishes from siblings like peach_list_templates (list) and peach_update_template (update), though not explicitly named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like peach_submit_template or peach_update_template. The description mentions a requirement (must include body component) but doesn't provide context about prerequisites, timing, or comparisons with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peach_delete_mediaC
Delete a media file from the Peach account by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| media_id | Yes | The ID of the media file 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 deletion action without disclosing critical behavioral traits. It does not mention permissions required, whether deletion is permanent or reversible, rate limits, or error handling, which are essential 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, direct sentence with zero waste, front-loading the core action and resource. It is appropriately sized for a simple tool, 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 destructive nature, lack of annotations, and no output schema, the description is incomplete. It fails to address behavioral risks, response expectations, or integration with sibling tools, leaving significant gaps 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 input schema fully documents the 'media_id' parameter. The description adds no additional meaning beyond what the schema provides, such as format examples or sourcing instructions, 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 ('Delete') and resource ('a media file from the Peach account'), making the purpose understandable. However, it does not differentiate from sibling tools like 'peach_list_media' or 'peach_upload_media' beyond the basic verb, missing explicit contrast in scope or effect.
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 lacks context such as prerequisites (e.g., needing the media ID from 'peach_list_media'), exclusions, or comparisons to other media-related tools, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peach_get_event_statusC
Get the status and details of a specific event by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | The ID of the event to retrieve |
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 'Get' operation, implying read-only, but doesn't cover aspects like authentication needs, rate limits, error handling, or what 'status and details' entail. This is a significant gap 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 a single, efficient sentence with zero waste, front-loading the core action. It's appropriately sized for a simple retrieval tool, 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 no annotations and no output schema, the description is incomplete. It doesn't explain what 'status and details' includes, potential return values, or behavioral traits. For a retrieval tool in a context with multiple siblings, more context is needed to guide 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?
The input schema has 100% description coverage, with 'event_id' clearly documented. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. Baseline 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 verb ('Get') and resource ('status and details of a specific event'), making the purpose understandable. However, it doesn't differentiate from potential siblings like 'peach_get_template' or 'peach_list_messages', which might also retrieve data, so it lacks 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 other retrieval tools in the sibling list. It implies usage for event status retrieval but offers no explicit context, exclusions, or prerequisites, leaving the agent to 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.
peach_get_templateC
Get a specific WhatsApp template by its ID or template name
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The template ID or template_name |
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 ('Get') but doesn't disclose behavioral traits such as whether it's read-only, requires authentication, has rate limits, returns error if template doesn't exist, or what the output format is. For a retrieval tool with zero annotation coverage, this leaves significant gaps in understanding its 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 action and resource. There is no wasted wording, repetition, or unnecessary elaboration, 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 no annotations and no output schema, the description is incomplete for a tool that retrieves data. It doesn't explain what is returned (e.g., template details, error responses), behavioral aspects like idempotency or side effects, or how it fits into broader workflows. For a get operation with rich sibling tools, more context is needed to guide 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%, with the parameter 'id' documented as 'The template ID or template_name'. The description adds marginal value by echoing that it retrieves 'by its ID or template name', but doesn't provide additional semantics like format examples or constraints beyond what the schema states. 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 ('Get') and resource ('a specific WhatsApp template'), specifying it retrieves by ID or name. It distinguishes from siblings like peach_list_templates (which lists multiple) and peach_create_template (which creates), but doesn't explicitly contrast them. The purpose is unambiguous but lacks explicit 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?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing template), exclusions, or comparisons to siblings like peach_list_templates for browsing or peach_get_event_status for status checks. The description implies usage by stating what it does, but offers no contextual decision-making help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peach_launch_broadcastC
Create and launch a broadcast campaign to multiple contacts via the Peach API
| Name | Required | Description | Default |
|---|---|---|---|
| broadcast | Yes | Broadcast 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. While 'Create and launch' implies a write/mutation operation, it doesn't specify permissions required, rate limits, whether the broadcast is reversible, what happens on failure, or expected response format. This is inadequate for a tool that likely involves significant API changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part earns its place by clearly stating the action and target, 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 complexity (a broadcast campaign tool with nested parameters) and lack of annotations or output schema, the description is incomplete. It doesn't address behavioral aspects like error handling, success indicators, or integration with sibling tools (e.g., template management), leaving significant gaps for an agent to operate 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 single nested parameter 'broadcast' and its properties. The description adds no additional parameter semantics beyond implying it's for 'multiple contacts,' which is already covered in the schema's 'contacts' and 'audience_id' fields. Baseline 3 is appropriate when the schema does all 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 ('Create and launch') and resource ('broadcast campaign to multiple contacts via the Peach API'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like peach_send_template_message or peach_send_app_message, which also involve sending messages, so it misses 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 tool versus alternatives. It doesn't mention prerequisites (e.g., needing a WhatsApp template), exclusions, or compare it to siblings like peach_send_template_message (for single messages) or peach_list_templates (for listing templates), 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.
peach_list_mediaC
List media files uploaded to the Peach account
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination |
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 listing media files but doesn't describe key behaviors like pagination (implied by the 'page' parameter), authentication requirements, rate limits, or what the output looks like (e.g., format, fields). This leaves significant gaps for an agent 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, clear sentence with no wasted words. It's front-loaded with the core purpose and efficiently conveys 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 tool with no annotations and no output schema, the description is incomplete. It doesn't explain the output format, pagination behavior, or any constraints (e.g., permissions, limits). Given the complexity of listing media files, more context is needed to make this tool fully usable by an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the single parameter 'page'. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., default page behavior, pagination details). This meets the baseline for high schema coverage but doesn't provide extra 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 ('List') and resource ('media files uploaded to the Peach account'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'peach_list_messages' or 'peach_list_templates', which follow the same pattern for different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention if this is for browsing all media versus filtered searches, or how it relates to 'peach_upload_media' or 'peach_delete_media'. The description only states what it does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peach_list_messagesC
List messages in the Peach account with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| per_page | No | Number of results per page | |
| phone_number | No | Filter by contact phone number in E.164 format | |
| direction | No | Filter by message direction | |
| from | No | ISO 8601 start datetime for filtering (e.g. 2024-01-01T00:00:00Z) | |
| to | No | ISO 8601 end datetime for filtering (e.g. 2024-01-31T23:59:59Z) |
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 list operation, implying read-only behavior, but doesn't mention pagination details (implied by parameters), rate limits, authentication requirements, or what the output looks like. This leaves significant gaps for a tool with 6 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('List messages') and adds a brief qualifier ('with optional filters'). There is no wasted language 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 the complexity of 6 parameters, no annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like pagination behavior, error handling, or output format, which are critical for a list operation with filtering. The schema covers parameters well, but the overall context is lacking.
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 the schema already documents all parameters thoroughly. The description adds minimal value by mentioning 'optional filters' but doesn't elaborate on their semantics beyond what the schema provides. 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 ('List') and resource ('messages in the Peach account'), making the purpose understandable. However, it doesn't differentiate this tool from sibling tools like 'peach_list_template_messages' or 'peach_list_media', which also list resources. The optional filters are mentioned but not specified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't explain how this differs from 'peach_list_template_messages' or when filtering is appropriate. The description only mentions optional filters without context on their application.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peach_list_template_messagesC
List template messages sent via the Peach API with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| per_page | No | Number of results per page | |
| status | No | Filter by message status (e.g. delivered, read, failed) | |
| phone_number | No | Filter by recipient phone number in E.164 format | |
| template_name | No | Filter by template name | |
| from | No | ISO 8601 start datetime for filtering (e.g. 2024-01-01T00:00:00Z) | |
| to | No | ISO 8601 end datetime for filtering (e.g. 2024-01-31T23:59:59Z) |
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 filtering capabilities but doesn't describe pagination behavior (implied by parameters), rate limits, authentication requirements, error handling, or what the response structure looks like. This is inadequate for a tool with 7 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose and key capability (filtering). There's no wasted verbiage or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what 'template messages' are in this context, how results are structured, pagination behavior, or error conditions. The agent would need to infer too much from parameter names alone.
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 7 parameters. The description adds minimal value by mentioning 'optional filters' but doesn't provide additional context about parameter interactions, default values, or usage patterns beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('template messages sent via the Peach API'), making the purpose understandable. However, it doesn't explicitly differentiate this tool from its sibling 'peach_list_messages' or 'peach_list_templates', which appear to be related listing 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 mentions 'optional filters' but provides no guidance on when to use this tool versus alternatives like 'peach_list_messages' or 'peach_list_templates'. There's no mention of prerequisites, typical use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peach_list_templatesC
List all WhatsApp templates in the Peach account
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination |
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 list operation, implying read-only behavior, but doesn't mention pagination details (implied by the 'page' parameter), rate limits, authentication requirements, or what the output looks like (e.g., format, fields). This leaves significant gaps for a tool with a parameter.
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 front-loaded with the core purpose, making it highly efficient and easy to parse.
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. It lacks details on behavioral aspects (e.g., pagination behavior, error handling) and output format, which are critical for an agent to use the tool effectively. The high schema coverage helps with inputs, but overall context is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the 'page' parameter. The description doesn't add any parameter-specific information beyond implying pagination through 'List all', which aligns with the schema. 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 all') and resource ('WhatsApp templates in the Peach account'), making the purpose immediately understandable. It doesn't explicitly differentiate from siblings like peach_get_template (which retrieves a single template) or peach_list_template_messages, but the scope ('all templates') is reasonably distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention peach_get_template for retrieving a specific template or peach_list_template_messages for listing messages related to templates, leaving the agent to infer usage from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peach_pause_templateA
Pause an approved WhatsApp template to temporarily stop it from being used
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The template ID or template_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 the basic action. It doesn't disclose behavioral traits like required permissions, whether the pause is reversible, rate limits, or what happens to pending messages. More context is needed 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. Every word earns its place with no redundancy or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on permissions, reversibility, error conditions, or response format, 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% for the single parameter 'id', so the schema already documents it well. The description doesn't add parameter details beyond what the schema provides, but with 0 parameters needing extra semantics, a baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('pause') and the resource ('an approved WhatsApp template'), specifying it's for temporarily stopping usage. It distinguishes from siblings like peach_archive_template (permanent removal) and peach_update_template (modification).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to temporarily stop a template, but lacks explicit guidance on when to use this vs. alternatives like peach_archive_template or peach_update_template. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peach_send_app_messageC
Trigger a flow or app-initiated message to a contact via the Peach API
| Name | Required | Description | Default |
|---|---|---|---|
| contact | Yes | The recipient contact. phone_number is required. | |
| flow | Yes | Flow 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 mentions triggering a flow or app-initiated message but doesn't explain what this entails operationally - whether it's asynchronous, what happens on failure, if it requires specific permissions, or what side effects occur. The phrase 'trigger' suggests an initiation action but lacks detail about execution 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 states the core purpose without unnecessary words. It's appropriately sized for a tool with good schema documentation and gets straight to the point 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 tool that triggers messaging flows with no annotations and no output schema, the description is insufficient. It doesn't explain what constitutes success/failure, what the tool returns, whether the operation is synchronous or asynchronous, or any rate limits or authentication requirements. The context signals show complex nested objects but the description provides no guidance on their 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%, so the schema already fully documents both parameters (contact and flow) with their properties. The description adds no additional parameter semantics beyond what's in the schema - it doesn't explain the relationship between contact and flow parameters or provide usage examples. 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 ('trigger a flow or app-initiated message') and target ('to a contact via the Peach API'), providing a specific verb and resource. However, it doesn't explicitly differentiate from sibling tools like 'peach_send_template_message' or 'peach_launch_broadcast', which also involve sending 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 no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, appropriate contexts, or comparisons to sibling tools like 'peach_send_template_message' or 'peach_launch_broadcast' that might serve similar messaging functions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peach_send_template_messageB
Send a WhatsApp template message to a contact via the Peach API
| Name | Required | Description | Default |
|---|---|---|---|
| contact | Yes | The recipient contact. phone_number is required. | |
| template_message | Yes | Template message parameters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states the action is 'Send' (implying a write/mutation) but doesn't disclose critical behaviors: whether it requires specific permissions, has rate limits, returns a message ID or status, or what happens on failure. For a messaging tool with zero annotation coverage, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately clear what the tool does 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 no annotations and no output schema, the description is incomplete for a messaging tool. It doesn't explain what the tool returns (e.g., success/failure, message ID), error conditions, or dependencies like template approval status. For a tool that performs a write operation with complex nested parameters, 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 the schema fully documents both parameters (contact and template_message) and their sub-properties. The description adds no additional parameter semantics beyond what's in the schema, such as explaining template approval requirements or phone number formatting rules. 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 ('Send'), the resource ('WhatsApp template message'), the target ('to a contact'), and the method ('via the Peach API'). It distinguishes itself from siblings like peach_send_app_message by specifying 'template message' rather than 'app message', and from peach_launch_broadcast by focusing on individual contact 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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a pre-approved WhatsApp template), compare it to peach_send_app_message for non-template messages, or indicate when not to use it (e.g., for bulk sends vs. peach_launch_broadcast).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peach_submit_templateB
Submit a WhatsApp template for review and approval by Meta
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The template ID or template_name |
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 submission triggers 'review and approval by Meta' which implies an asynchronous workflow and potential delays, but doesn't disclose other important traits like required permissions, rate limits, whether the template becomes immutable during review, or what happens if submission fails.
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 any wasted words. It's appropriately sized for a single-parameter 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 submission tool with no annotations and no output schema, the description adequately covers the basic purpose but lacks important contextual details. It doesn't explain what happens after submission (approval timeline, notification mechanisms, possible outcomes) or error conditions, which would be valuable for an agent invoking 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% with the single parameter 'id' documented as 'The template ID or template_name'. The description adds no additional parameter semantics beyond what the schema already provides, 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 ('submit') and resource ('WhatsApp template') with the specific purpose of 'review and approval by Meta'. It distinguishes from siblings like peach_create_template (creation) and peach_update_template (modification), 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 implies this tool is used when a template is ready for Meta's review process, but doesn't provide explicit guidance on when to use it versus alternatives like peach_create_template (for initial creation) or peach_update_template (for modifications before submission). No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peach_update_contactC
Update an existing contact identified by their phone number
| Name | Required | Description | Default |
|---|---|---|---|
| phone_number | Yes | Phone number of the contact to update in E.164 format (e.g. +14155552671) | |
| name | No | Updated full name | |
| No | Updated email address | ||
| age | No | Updated age | |
| gender | No | Updated gender | |
| language | No | Updated language code (e.g. en) | |
| nickname | No | Updated nickname | |
| opted_out | No | Whether the contact has opted out of messaging | |
| timezone | No | Updated timezone (e.g. America/New_York) | |
| metadata | No | Custom metadata to deep-merge with existing |
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 updates an existing contact, implying a mutation operation, but lacks critical behavioral details: whether it requires specific permissions, if updates are partial or full, how conflicts are handled, what happens on success/failure, or any rate limits. The description is minimal and doesn't compensate for the absence of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with zero wasted words. It front-loads the core action ('Update an existing contact') and specifies the key identifier. Every word earns its place, making it highly efficient and easy to parse.
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, no annotations, and no output schema, the description is insufficient. It doesn't explain what the tool returns, error conditions, or side effects. While the schema covers parameters well, the lack of behavioral and output context leaves significant gaps for an agent to use the 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%, providing detailed documentation for all 10 parameters. The description adds no parameter-specific information beyond implying phone_number is the identifier. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't enhance parameter understanding but doesn't need to given the comprehensive schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('an existing contact'), making the purpose immediately understandable. It specifies identification by phone number, which distinguishes it from other contact operations. However, it doesn't explicitly differentiate from sibling tools like peach_create_contact or peach_create_contacts beyond the 'existing' qualifier.
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), compare with peach_create_contact for new contacts, or indicate scenarios where updating is appropriate versus other operations. The agent must infer usage from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peach_update_templateC
Update an existing WhatsApp template's components or category
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The template ID or template_name | |
| components_attributes | No | Updated components. Include id on existing components to update them; set _destroy: true to remove one. | |
| category | No | Updated template category |
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 'Update' implies a mutation operation, the description doesn't specify required permissions, whether changes are reversible, rate limits, or what happens on success/failure. It mentions 'components or category' but doesn't clarify if both can be updated simultaneously or if partial updates are allowed.
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 front-loaded with the core purpose and uses clear, direct language without unnecessary elaboration or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't address critical context like authentication requirements, error conditions, response format, or side effects. The agent must rely entirely on the input schema and trial-and-error to understand how 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 parameters thoroughly. The description adds minimal value beyond the schema - it mentions 'components or category' which maps to two parameters, but doesn't provide additional context about parameter interactions, constraints, or examples. The baseline score of 3 reflects adequate but unenhanced parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('existing WhatsApp template's components or category'), making the purpose immediately understandable. It distinguishes from creation tools like 'peach_create_template' by specifying 'existing', but doesn't explicitly differentiate from other update tools like 'peach_update_contact' 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 (like needing an existing template ID), compare with sibling tools (like 'peach_submit_template' or 'peach_pause_template'), or indicate when NOT to use it. 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.
peach_upload_mediaC
Upload a media file to Peach using base64-encoded file content
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Base64-encoded file content | |
| filename | Yes | Filename including extension (e.g. photo.jpg) | |
| content_type | No | MIME type of the file (e.g. image/jpeg, video/mp4) |
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 upload action but lacks behavioral details: no mention of permissions required, rate limits, whether the upload is idempotent, what happens on success/failure, or if it returns a media ID. 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?
Single sentence, zero waste. It's front-loaded with the core action and efficiently specifies the encoding method. Every word earns its place 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?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after upload (e.g., returns a media ID, error handling), usage constraints, or how it fits with sibling tools. Given the complexity of file uploads, 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 the schema fully documents all three parameters. The description adds no additional parameter semantics beyond implying base64 encoding for 'data', which is already in the schema. 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 ('Upload') and resource ('a media file to Peach'), specifying the method ('using base64-encoded file content'). It distinguishes from siblings like peach_list_media (list) and peach_delete_media (delete), but doesn't explicitly contrast with 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 on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication), constraints (e.g., file size limits), or when to choose peach_upload_media over other media-related tools like peach_list_media or peach_delete_media.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, such as peach_create_contact for single contacts versus peach_create_contacts for bulk operations, and peach_list_templates versus peach_get_template for listing versus retrieving specific templates. However, peach_send_template_message and peach_connect_to_ai_agent both involve sending messages with slight overlap in functionality, which could cause minor confusion for agents.
All tool names follow a consistent snake_case pattern with a 'peach_' prefix, and use clear verb_noun structures like peach_create_template, peach_update_contact, and peach_list_messages. This predictability makes it easy for agents to understand and navigate the tool set.
With 20 tools, the count is on the higher side but reasonable for a comprehensive WhatsApp messaging and contact management system. It covers templates, contacts, media, broadcasts, and messages, though it might feel slightly heavy compared to more focused servers.
The tool set provides complete coverage for the Peach domain, including CRUD operations for templates (create, get, list, update, archive, pause, submit), contacts (create, update), media (upload, list, delete), and messaging (send, launch broadcast, list messages). There are no obvious gaps, enabling agents to handle full workflows without dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Run WhatsApp Business campaigns from any AI assistant: contacts, segments, and broadcasts.
WhatsApp CRM for AI agents: search contacts, read chats, manage the sales pipeline, send messages.
Give your AI agents a real WhatsApp number to send and receive messages.
Send and schedule SMS and WhatsApp messages, manage contacts and templates, and track delivery.
Related MCP Servers
- AlicenseCqualityCmaintenanceEnables AI assistants to interact with WhatsApp through the WSAPI service, supporting comprehensive messaging, contact management, group operations, and account management functionality. Allows sending various media types, managing chats, and controlling WhatsApp sessions through natural language.100303MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to send WhatsApp messages, templates, and retrieve media through the WhatsApp Cloud API. Provides webhook handling and seamless integration with Meta's WhatsApp Business platform.23
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage WhatsApp communications by sending messages, managing groups, and analyzing conversation patterns via the WaliChat API. It supports tasks like message scheduling, contact management, and automated business workflows through natural language commands.271MIT
- AlicenseBqualityAmaintenanceEnables managing WhatsApp Business accounts through natural language, including sending messages, managing contacts, and querying conversations.6216ISC
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/trypeach-io/mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server