Skip to main content
Glama
ashusingh1

Whatify MCP Server

by ashusingh1

Whatify MCP Server

An MCP (Model Context Protocol) server that exposes Whatify's WhatsApp API — sending messages, templates, and Flows, plus reading contacts, conversations, campaigns, and wallet balance — as tools for MCP-compatible AI clients (Claude Desktop, Claude Code, etc.).

It's a thin wrapper around the existing v1/external REST API (app/Http/Controllers/Api/ExternalApiController.php), authenticated the same way: an API key generated from Settings → API Keys in the Whatify dashboard.

Tools

Tool

Maps to

Notes

whatify_ping

GET /ping

Connectivity/auth check

whatify_send_message

POST /send-message

Free-form text

whatify_send_template

POST /send-template

Approved templates only

whatify_send_flow

POST /send-flow

WhatsApp Flow (interactive form)

whatify_message_status

GET /messages/{id}

Delivery status

whatify_list_templates

GET /templates

whatify_list_flows

GET /flows

whatify_list_contacts

GET /contacts

whatify_get_contact

GET /contacts/{id}

whatify_create_contact

POST /contacts

whatify_update_contact

PUT /contacts/{id}

whatify_list_conversations

GET /conversations

whatify_get_conversation_messages

GET /conversations/{id}/messages

whatify_list_campaigns

GET /campaigns

whatify_get_campaign

GET /campaigns/{id}

Includes delivery/read rate

whatify_wallet_balance

GET /wallet/balance

send_flow and reading flows require the API key to have the send_flow / read_flows permissions (added alongside this server — check the boxes when generating a key in Settings → API Keys).

Related MCP server: MCP WhatsApp

Setup

  1. Get an API key: log into Whatify → Settings → API Keys → generate a key with the permissions you want the AI tool to have (e.g. send_message, send_template, send_flow, read_contacts).

  2. Install dependencies:

    cd mcp-server
    npm install
  3. Configure environment variables:

    • WHATIFY_API_KEY — the key from step 1 (required)

    • WHATIFY_API_BASE_URL — defaults to http://localhost/api/v1/external; set this to your real app URL, e.g. https://whatify.in/api/v1/external

Using with Claude Desktop / Claude Code

Add to your MCP client config (e.g. claude_desktop_config.json, or via claude mcp add for Claude Code):

{
  "mcpServers": {
    "whatify": {
      "command": "node",
      "args": ["C:/xampp/htdocs/whatify/mcp-server/src/index.js"],
      "env": {
        "WHATIFY_API_KEY": "wk_xxxxxxxxxxxxxxxx",
        "WHATIFY_API_BASE_URL": "https://whatify.in/api/v1/external"
      }
    }
  }
}

Restart the client, then ask it to send a message, e.g.:

"Using Whatify, send a WhatsApp message to +91XXXXXXXXXX saying the order has shipped."

Manual test

You can talk to the server directly over stdio for debugging:

npm start

then send newline-delimited JSON-RPC (initialize, tools/list, tools/call) on stdin. Easier: use the MCP Inspector:

npx @modelcontextprotocol/inspector node src/index.js

Available Tools

16 tools
whatify_create_contactC

Create a new contact, or update-and-return an existing one with the same phone number.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
tagsNo
emailNo
phoneYes
country_codeNo
custom_attributesNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided; description only states upsert behavior. Does not disclose permissions, rate limits, destructive potential, or what happens on conflict beyond 'update-and-return'. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

Single sentence is concise, but lacks depth. Front-loaded with main behavior, but no structure for parameter details. Could be expanded without losing conciseness.

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

Completeness1/5

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

With 6 parameters, no output schema, no annotations, the description is insufficient. Missing details on return value, parameter usage, required fields beyond phone, and edge cases. Incomplete for effective tool use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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

Schema has 0% description coverage for 6 parameters. Description adds no explanations for any parameter (e.g., name, tags, email, country_code, custom_attributes). Agent must rely solely on parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

Describes upsert behavior ('create a new contact, or update-and-return an existing one with the same phone number') with a specific verb and resource. Distinguishes from sibling 'whatify_update_contact' by clarifying it handles creation and upsert.

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?

Implies use for creating or updating contacts by phone, but no explicit when-to-use or when-not-to-use. Lacks alternatives or exclusions, leaving the agent to infer that separate update tool exists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whatify_get_campaignB

Get a single campaign with delivery/read rate stats.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations provided, so the description carries full burden. It adds that the tool returns delivery/read rate stats, indicating read-only behavior. However, it doesn't disclose auth requirements, error scenarios, or other traits beyond the basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is a single concise sentence with no unnecessary words. It front-loads the key action and result, making it efficient for an agent to parse.

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

Completeness3/5

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

Given the tool's simplicity (one parameter, no output schema), the description provides adequate context by stating the purpose and the returned stats. However, it does not explain the parameter or the structure of the stats, which could be clearer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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

Schema description coverage is 0% and the description does not mention the campaign_id parameter or explain its role. The description provides no semantic context beyond the schema itself, which only includes the parameter name and type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the verb 'Get', the resource 'single campaign', and includes the distinguishing feature 'delivery/read rate stats'. It differentiates from sibling tools like whatify_list_campaigns which likely returns multiple campaigns without stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

Usage is implied (use when you need a single campaign's stats) but no explicit guidance on when not to use or reference to alternatives like whatify_list_campaigns. Lacks explicit exclusions or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whatify_get_contactC

Get a single contact by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only says 'Get a single contact by id.' It does not disclose error handling, return value, or any behavioral traits beyond the basic retrieval.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is extremely concise (one sentence), but its brevity comes at the cost of completeness. It earns its place but could benefit from more detail.

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

Completeness2/5

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

For a tool with one parameter, no output schema, and no annotations, the description is insufficient. It does not explain what is returned or handle potential errors, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

The schema has 0% coverage with a single integer parameter. The description adds minimal meaning by implying the id is used, but does not specify which parameter or provide any format or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the action ('Get') and the resource ('a single contact by id'), distinguishing it from siblings like whatify_list_contacts and whatify_create_contact.

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, nor does it mention when not to use it or provide any usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whatify_get_conversation_messagesC

Get the messages for a given conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
per_pageNo
conversation_idYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations provided. Description only states it's a read operation without disclosing pagination, ordering, or any side effects. Agent lacks insight into behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

Single sentence is concise but overly terse at the expense of completeness. No waste, but insufficient information for an agent to invoke correctly.

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

Completeness1/5

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

Given no output schema and minimal description, the agent has no understanding of return format, pagination, or parameter behavior. Severely incomplete for a 2-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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

Schema description coverage is 0%. Description adds no meaning to parameters (conversation_id, per_page). Agent cannot infer what per_page does or how conversation_id is used.

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?

Clearly states verb 'Get', resource 'messages', and scope 'for a given conversation'. Distinct from sibling tools like whatify_list_conversations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. No mention of prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whatify_list_campaignsC

List broadcast campaigns.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNo
per_pageNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It only says 'list', implying read-only, but provides no details on pagination, default behavior, rate limits, or what happens with the status parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is very concise (one sentence), but it lacks substance. Conciseness is good, but here it under-specifies the tool's behavior, making it less useful.

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 two parameters and no output schema, the description is incomplete. It does not explain what the list returns, how pagination works, or how status filtering behaves. A more complete description would include this context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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

Two parameters (status, per_page) have no descriptions in the schema (0% coverage), and the description does not explain their meaning or usage. The description fails to add any value beyond the types.

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 'List broadcast campaigns' clearly identifies the verb (list) and resource (broadcast campaigns). While it is specific, it does not differentiate itself from sibling list tools beyond the resource name, but the resource name is distinct enough.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like whatify_list_contacts or whatify_list_conversations. It lacks context on filtering, prerequisites, or expected use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whatify_list_contactsC

List/search contacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
nameNo
phoneNo
statusNoactive, inactive, blocked, or opted_out
per_pageNo

TDQS

C2.5/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states 'list/search,' omitting behaviors like pagination (per_page parameter), filtering capabilities, or any side effects. No disclosure of rate limits or authentication needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is extremely concise at one phrase, but this brevity comes at the cost of completeness. It is front-loaded but lacks necessary details, making it minimally useful.

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

Completeness1/5

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

Given 5 parameters, no output schema, and no annotations, the description is vastly insufficient. It does not explain return values, pagination behavior, filtering logic, or any operational nuances, leaving the agent with inadequate context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is only 20% (status parameter has a description). The tool description adds no explanation for parameters like tag, name, phone, or per_page, failing to compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description 'List/search contacts' clearly indicates the verb-action (list/search) and the resource (contacts), distinguishing it from siblings like 'whatify_get_contact' (single retrieval) and 'whatify_create_contact' (creation). However, it lacks specificity about the combined functionality.

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 'whatify_get_contact' for a single contact or other listing tools. There is no mention of prerequisites, filters, or use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whatify_list_conversationsC

List inbox conversations.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoe.g. open, closed
per_pageNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description should disclose behaviors like pagination, filtering, or potential rate limits. It only states the basic action, failing to provide needed behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is a single concise sentence, but it is overly brief given the tool has two parameters and no output schema. It could include more information without becoming verbose.

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

Completeness2/5

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

The description is incomplete for a tool with two parameters and no output schema. It does not explain pagination (implied by 'per_page'), filtering options for 'status', or the nature of the response list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

The schema description coverage is only 50% (only 'status' has a partial description). The tool description does not add any meaning for parameters, such as the expected format for 'status' or the role of 'per_page' in pagination.

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 the resource 'inbox conversations', distinguishing it from sibling list tools like 'whatify_list_campaigns' and 'whatify_list_contacts'. However, the term 'inbox' is ambiguous without additional context.

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, such as when to filter by status or how pagination works. The description lacks any usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whatify_list_flowsC

List the account's WhatsApp Flows.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by flow status

TDQS

C2.9/5.0
Behavior1/5

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

With no annotations, the description carries full burden but discloses no behavioral traits such as pagination, rate limits, or authentication requirements.

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?

One sentence with no wasted words, but could be slightly more informative without losing conciseness.

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

Completeness2/5

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

Given no output schema, the description fails to mention return format, limits, or edge cases, leaving agents underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 100% and the one parameter has a description in the schema; the tool description adds no additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'WhatsApp Flows', distinguishing it from sibling list tools like list_campaigns or list_contacts.

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; the description simply states what it does without contextual hints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whatify_list_templatesB

List the account's WhatsApp message templates.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by template status, e.g. approved, pending, rejected
categoryNoFilter by template category

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description should disclose behavioral traits like read-only nature, pagination, or output format. It only states the basic function without any behavioral 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 concise sentence that is well-front-loaded with no unnecessary words.

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

Completeness2/5

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

The description does not explain return values (no output schema), behavior with no filters, or pagination. It fails to fully inform an agent about what to expect from the 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 coverage is 100% with clear descriptions for both parameters (status and category). The description adds no extra meaning beyond the schema, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the action (List) and resource (account's WhatsApp message templates), effectively distinguishing it from sibling list tools like whatify_list_campaigns, whatify_list_contacts, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

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, when to apply filters, or any prerequisites. The sibling list tools are not differentiated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whatify_message_statusA

Get the delivery status of a previously sent message by its Whatify message id.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYesWhatify message id returned from a send_message/send_template/send_flow call

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It indicates a read operation but does not disclose potential errors, rate limits, or response format. For a simple status check, it is acceptable but could be richer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is a single sentence, 15 words, with no fluff. It efficiently communicates the tool's purpose and required input.

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

Completeness3/5

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

Given the tool's simplicity (1 param, no annotations, no output schema), the description covers the basic input and purpose. However, it lacks information about the expected output or response structure, which would be helpful for an agent to interpret the result.

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 description adds minimal extra meaning beyond the schema. It reiterates that the ID is from a previous send call, which is already in the schema description. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description uses the specific verb 'Get' and resource 'delivery status', clearly stating the action and object. It distinguishes this tool from sibling tools like send_message or list tools, as it is the only one for retrieving status of a previously sent message.

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 that the tool should be used after sending a message, but it does not provide explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned, but given the single purpose, the guidance is minimally adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whatify_pingA

Check connectivity and API key validity against the Whatify API.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations exist, so description is the sole source. It states the tool checks connectivity/API validity (read-only), but doesn't disclose failure behavior, latency, or response format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

Single sentence that front-loads the purpose, no wasted words.

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

Completeness4/5

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

Tool is simple (no params, no output schema); description adequately explains purpose but could mention what the response indicates (e.g., success/failure).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

No parameters in schema, so description need not add parameter details. Baseline for 0 parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

Description uses specific verb 'check' and resources 'connectivity and API key validity', clearly distinguishing from sibling tools that operate on contacts, campaigns, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus siblings; usage is implied as a health check, but no direct comparisons or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whatify_send_flowC

Send a WhatsApp Flow (interactive form) to a phone number via Whatify.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYesRecipient phone number, with or without country code
flow_idYesWhatify flow id or Meta flow_id_meta (see whatify_list_flows)
flow_ctaNoCall-to-action button text, defaults to 'Open Form'
whatsapp_account_idNo

TDQS

C2.7/5.0
Behavior1/5

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

No annotations provided, and the description gives zero behavioral context: no mention of success/failure behavior, error handling, authentication needs, rate limits, or what happens on invalid inputs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is a single concise sentence, but it omits essential details, making it under-specified for a tool with no annotations and multiple parameters.

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

Completeness1/5

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

Given the lack of annotations and output schema, and the presence of sibling send tools, the description fails to provide complete context for correct invocation, such as expected behavior, return format, or integration details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 75% with descriptions for phone (format), flow_id (alternative value), and flow_cta (default). The tool description itself adds no additional value beyond the schema's param descriptions, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the action (Send), the resource (WhatsApp Flow), and the target (to a phone number via Whatify). It effectively distinguishes from sibling tools like send_message and send_template by specifying 'flow'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., send_message, send_template). No prerequisites or when-not-to-use conditions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whatify_send_messageB

Send a free-form WhatsApp text message to a phone number via Whatify.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYesRecipient phone number, with or without country code
messageYesText message body
whatsapp_account_idNoSpecific connected WhatsApp account id; defaults to the first connected account

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description bears full burden. It only mentions 'free-form' and repeats schema constraints, failing to disclose rate limits, delivery guarantees, or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

Single sentence, front-loaded with key action and resource; no excess words, though could incorporate more context.

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?

Absent output schema and annotations, the description omits important context like return value, error handling, and account identification behavior, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 100% so baseline is 3; description adds no new meaning beyond schema descriptions (e.g., 'free-form' is not tied to a parameter).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description uses specific verb 'Send' and resource 'free-form WhatsApp text message', clearly differentiating from siblings like whatify_send_template and whatify_send_flow.

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 such as whatify_send_template or whatify_send_flow, leaving the agent without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whatify_send_templateB

Send an approved WhatsApp message template to a phone number via Whatify.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYesRecipient phone number, with or without country code
body_paramsNoOrdered values for the template body's {{1}}, {{2}}, ... placeholders
header_paramsNoOrdered values for the template header placeholders, if any
template_nameYesName of an approved message template
whatsapp_account_idNo

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as authentication requirements, rate limits, template approval status checks, or whether sending is synchronous. It carries the full burden but fails to add needed context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is a single concise sentence (14 words) that quickly conveys the tool's purpose. It is front-loaded but could include a brief usage hint. Still, it is appropriately sized for its role.

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 5 parameters, no output schema, and no annotations, the description is insufficiently complete. It omits details about return values, prerequisites (e.g., template must be approved), and potential side effects, leaving the agent with significant gaps.

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 80% (4 of 5 parameters described). The tool description adds no parameter-specific meaning beyond the schema; it merely restates the tool's purpose. Baseline for high coverage is 3, and no extra value is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states 'Send an approved WhatsApp message template to a phone number via Whatify,' using a specific verb ('Send') and resource ('approved WhatsApp message template, phone number'). It distinguishes this tool from siblings like whatify_send_message (free-form message) and whatify_send_flow (flow-based send) by focusing on templates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., whatify_send_message). The description simply states what it does without specifying context, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whatify_update_contactC

Update an existing contact.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
tagsNo
emailNo
statusNo
contact_idYes
custom_attributesNo

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations, the description carries full transparency burden. It states the tool updates an existing contact (mutation), but gives no details on side effects, permissions, idempotency, or response format, leaving agent uninformed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

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

The description is a single vague sentence, which is too brief to be effective. While it is concise, the lack of structure and missing details make it less useful than a longer, well-organized description.

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

Completeness1/5

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

Given 6 parameters, including nested objects and an enum, and the absence of annotations and output schema, the description is grossly incomplete. It fails to provide essential context for the agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning beyond the parameter names (e.g., 'name', 'tags', 'email', 'status', 'custom_attributes'). No guidance on usage, constraints, or relationships among 6 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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

The description 'Update an existing contact' clearly states the action and resource, and distinguishes from the sibling 'create_contact' by indicating an existing contact is modified. However, it lacks specificity on which attributes are updatable, limiting clarity.

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 'create_contact' or other update tools. No prerequisites, exclusions, or context are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whatify_wallet_balanceB

Get the account's WhatsApp messaging wallet balance.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are present, so the description must fully convey behavioral traits. It only states it gets a balance, with no mention of read-only nature, rate limits, authentication needs, or what happens if the balance is unavailable. 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.

Conciseness4/5

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

The description is a single, concise sentence. It is front-loaded with the core action. However, it could benefit from additional context without being verbose.

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

Completeness3/5

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

For a simple tool with no parameters and no output schema, the description is minimally adequate. However, lack of behavioral transparency and usage guidance reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

There are no parameters, so the description has no burden to explain them. It adds meaning by specifying the exact resource (WhatsApp messaging wallet) and the property (balance).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the action ('Get'), the resource ('WhatsApp messaging wallet balance'), and the scope ('account's'). This distinguishes it from sibling tools like whatify_create_contact or whatify_send_message.

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 does not specify context such as 'use to check remaining credits before sending' or any conditions for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.2/5.0
Disambiguation5/5

Each tool targets a distinct resource or action (e.g., contacts, campaigns, messages, flows) with no overlap. Tools like send_message, send_flow, and send_template are clearly different in purpose.

Naming Consistency5/5

All tools use a consistent 'whatify_' prefix followed by an action_noun pattern (e.g., create_contact, list_campaigns, send_message). The naming is predictable and uniform.

Tool Count5/5

16 tools provide a comprehensive yet focused set for a WhatsApp messaging server without being overwhelming. Each tool serves a clear purpose within the domain.

Completeness3/5

Core operations like sending messages and managing contacts are covered, but missing create/update/delete for campaigns, templates, and flows. This leaves gaps for full lifecycle management.

Maintenance

ActivitySlowing
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

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/ashusingh1/whatify-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server