Skip to main content
Glama

@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/mcp

Or 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

peach_send_template_message

Send a WhatsApp template message to a contact

peach_send_app_message

Trigger a flow or app-initiated message

peach_connect_to_ai_agent

Send a template and connect the contact to an AI agent

peach_get_event_status

Check the status of a sent event

peach_list_template_messages

List sent template messages with filters

Broadcasts

Tool

Description

peach_launch_broadcast

Create and launch a broadcast campaign

Templates

Tool

Description

peach_list_templates

List all WhatsApp templates

peach_get_template

Get a specific template by ID or name

peach_create_template

Create a new WhatsApp template

peach_update_template

Update an existing template

peach_submit_template

Submit a template for Meta review

peach_pause_template

Pause an approved template

peach_archive_template

Archive a template

Contacts

Tool

Description

peach_create_contact

Create or upsert a single contact

peach_create_contacts

Bulk create or upsert contacts

peach_update_contact

Update a contact by phone number

Media

Tool

Description

peach_list_media

List uploaded media files

peach_upload_media

Upload a media file (base64)

peach_delete_media

Delete a media file

Messages

Tool

Description

peach_list_messages

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 tools
peach_archive_templateB

Archive a WhatsApp template (must be approved, rejected, or draft status)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe template ID or template_name

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

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

Purpose4/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
contactYesThe recipient contact. phone_number is required.
template_messageYesTemplate message parameters
ai_agentNoAI agent to connect the contact to after the template message

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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

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

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
phone_numberYesPhone number in E.164 format (e.g. +14155552671)
nameNoContact's full name
emailNoContact's email address
timezoneNoContact's timezone (e.g. America/New_York)
metadataNoCustom metadata key-value pairs (merged with existing)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
contactsYesArray of contacts to create or upsert

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema 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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
template_nameYesUnique name for the template (lowercase, underscores only, e.g. order_confirmation)
languageYesLanguage code for the template (e.g. en, en_US)
categoryYesTemplate category as required by WhatsApp
components_attributesYesTemplate components. Must include a body component. Each component has component_type, value, and optional sub_type/data_type/name/index.
purposeNoPurpose of the template (e.g. general)
whats_app_business_account_idNoExternal ID of the WhatsApp Business Account to use (defaults to the account's only WABA if there is one)
folderNoFolder to organise the template into

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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

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

Purpose4/5

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

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

Usage Guidelines2/5

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
media_idYesThe ID of the media file to delete

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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

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

Usage Guidelines2/5

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYesThe ID of the event to retrieve

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe template ID or template_name

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
broadcastYesBroadcast parameters

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema 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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema 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.

Purpose4/5

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

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

Usage Guidelines2/5

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination
per_pageNoNumber of results per page
phone_numberNoFilter by contact phone number in E.164 format
directionNoFilter by message direction
fromNoISO 8601 start datetime for filtering (e.g. 2024-01-01T00:00:00Z)
toNoISO 8601 end datetime for filtering (e.g. 2024-01-31T23:59:59Z)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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

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

Usage Guidelines2/5

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination
per_pageNoNumber of results per page
statusNoFilter by message status (e.g. delivered, read, failed)
phone_numberNoFilter by recipient phone number in E.164 format
template_nameNoFilter by template name
fromNoISO 8601 start datetime for filtering (e.g. 2024-01-01T00:00:00Z)
toNoISO 8601 end datetime for filtering (e.g. 2024-01-31T23:59:59Z)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema 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.

Purpose4/5

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

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

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema 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.

Purpose4/5

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

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

Usage Guidelines2/5

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe template ID or template_name

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

The description implies usage when needing to 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

ParametersJSON Schema
NameRequiredDescriptionDefault
contactYesThe recipient contact. phone_number is required.
flowYesFlow parameters

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

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

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
contactYesThe recipient contact. phone_number is required.
template_messageYesTemplate message parameters

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema 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.

Purpose5/5

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

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe template ID or template_name

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
phone_numberYesPhone number of the contact to update in E.164 format (e.g. +14155552671)
nameNoUpdated full name
emailNoUpdated email address
ageNoUpdated age
genderNoUpdated gender
languageNoUpdated language code (e.g. en)
nicknameNoUpdated nickname
opted_outNoWhether the contact has opted out of messaging
timezoneNoUpdated timezone (e.g. America/New_York)
metadataNoCustom metadata to deep-merge with existing

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe template ID or template_name
components_attributesNoUpdated components. Include id on existing components to update them; set _destroy: true to remove one.
categoryNoUpdated template category

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

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

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesBase64-encoded file content
filenameYesFilename including extension (e.g. photo.jpg)
content_typeNoMIME type of the file (e.g. image/jpeg, video/mp4)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema 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.

Purpose4/5

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.

Usage Guidelines2/5

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

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

B3.4/5.0
Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    C
    quality
    C
    maintenance
    Enables 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.
    100
    30
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    27
    1
    MIT

Latest Blog Posts

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