Skip to main content
Glama
jevil25

WhatsApp Messaging API by Retention Stack

by jevil25

WhatsApp Messaging API — MCP Server

Send WhatsApp messages from Claude, Cursor, or any MCP client. Create a session, scan a QR code, and send text, images and files — no Meta Business approval and no WhatsApp Business account required.

Wraps the WhatsApp Messaging API.

Quick start

  1. Get a free API key from RapidAPI — no credit card.

  2. Add this to your MCP client config (Claude Desktop: claude_desktop_config.json):

    {
      "mcpServers": {
        "whatsapp": {
          "command": "npx",
          "args": ["-y", "whatsapp-messaging-api-mcp"],
          "env": {
            "WHATSAPP_API_KEY": "your-rapidapi-key"
          }
        }
      }
    }
  3. Restart the client. Ask it to create a WhatsApp session and show you the QR code.

Nothing to install or build — npx fetches the package on first run.

Related MCP server: MCP WhatsApp

Tools

Tool

Description

list_sessions

List all sessions on this API key

create_session

Create a new session

get_session_status

Check a session's current status

get_qr_code

Get the QR code to authenticate a session

request_pairing_code

Get an 8-digit pairing code instead of a QR

check_contact_exists

Check if a phone number is on WhatsApp before sending

send_text_message

Send a text message

send_image

Send an image via URL

send_file

Send a file (PDF, document) via URL

Typical flow

  1. create_sessionget_qr_code → scan with WhatsApp (Settings → Linked Devices)

  2. get_session_status until it reports WORKING

  3. check_contact_exists, then send_text_message / send_image / send_file

Sessions stay authenticated between runs, so steps 1-2 are one-time per number.

Configuration

Variable

Required

Description

WHATSAPP_API_KEY

yes

Your RapidAPI key. The server exits on startup if it is missing.

The key is read from the environment and sent only to the API host. It is never logged.

Local development

git clone https://github.com/jevil25/whatsapp-messaging-api-mcp.git
cd whatsapp-messaging-api-mcp
npm install
npm run dev      # runs src/index.ts directly via tsx, no build step
npm run build    # compile to dist/
npm test         # boots the built server and drives a real MCP handshake

npm test needs no credentials — it passes a dummy key, which gets far enough to list tools because nothing in the handshake makes an API call.

To point an MCP client at your local build, use "command": "node" with "args": ["/absolute/path/to/dist/index.js"].

See DEVELOPING.md for the release process.

License

MIT

Available Tools

9 tools
check_contact_existsA

Check whether a phone number is registered on WhatsApp before sending to it.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYesPhone number, 10-15 digits, no + or spaces
sessionYesSession name

TDQS

A4/5.0
Behavior3/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 clearly communicates that this is a read-only check rather than a send operation, but it does not disclose the return format, error behavior, or whether it has no side effects beyond checking. The behavior is not contradicted, but the disclosure is incomplete.

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 with no filler or repetition. The core purpose and usage timing are front-loaded, making it easy for an agent to parse quickly.

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

Completeness4/5

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

For a simple two-parameter check tool with a complete schema and a clear purpose, the description is largely sufficient. The main gap is that there is no output schema and the description does not state what the check actually returns, but an agent can reasonably infer a boolean or status result from 'check whether.'

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 parameters are already well documented. The description adds no additional parameter-level meaning, leaving the baseline score of 3 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 a specific verb ('Check') and a clear resource ('whether a phone number is registered on WhatsApp'), and it adds the intent 'before sending to it,' which distinguishes it from the send_* siblings. The tool's role as a pre-send verification step is immediately obvious.

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

Usage Guidelines4/5

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

The phrase 'before sending to it' clearly indicates when this tool should be used, placing it in the workflow prior to send_text_message, send_image, or send_file. It does not explicitly name alternatives or exclusions, but the context is strong enough to guide selection.

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

create_sessionA

Create a new WhatsApp session. Returns a session name and STARTING status — pair it with get_qr_code next.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional session name. Auto-generated if omitted.

TDQS

A4/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 full behavioral burden. It discloses the operation ('create') and the immediate return behavior (session name and STARTING status), but it does not mention potential side effects, duplicate name handling, error conditions, or whether the session persists. This is adequate but not rich.

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?

Two short sentences with no filler. The core action is stated first, followed by the return value and the logical next step. Every sentence earns its place.

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?

For a simple creation tool with one optional parameter and no output schema, the description gives enough: what it does, what it returns, and the next tool to call. It could mention failure modes or prerequisites, but the essential context for correct invocation is present.

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 single optional 'name' parameter as auto-generated if omitted. The description adds the output relevance of the session name but does not go beyond the schema's parameter documentation. 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 a specific verb and resource: 'Create a new WhatsApp session.' It clearly distinguishes itself from sibling tools like list_sessions and get_session_status by stating its unique action, and it adds the return value context (session name and STARTING status).

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

Usage Guidelines4/5

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

The description clearly positions this tool as the entry point: create a session, then pair it with get_qr_code next. It does not explicitly state when not to use it or mention alternatives like request_pairing_code, but the sequential guidance is enough to convey the intended usage context.

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

get_qr_codeA

Get the QR code to authenticate a session by scanning with WhatsApp (Settings > Linked Devices).

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionYesSession name

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of disclosure. It accurately describes the action and purpose, but it does not mention session prerequisites, QR code expiration, or whether obtaining a new QR code invalidates an existing one. This is acceptable for a simple retrieval but lacks rich behavioral detail.

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 with no filler, front-loading the action and purpose. Every word contributes meaning, and it does not repeat schema details or add unnecessary caveats.

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?

For a single-parameter tool with no output schema, the description explains what the tool returns, why it is used, and how the QR code is consumed. It could explicitly state that the session must already exist, but the required 'session' parameter and sibling tools like create_session make that reasonably inferable.

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 already documents the only parameter, 'session', with 100% description coverage. The tool description adds no further parameter-level semantics, so the baseline score of 3 applies; the schema does the heavy lifting.

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 identifies the operation: 'Get the QR code' for a session, with an explicit purpose of authenticating by scanning with WhatsApp. This distinguishes it from siblings like request_pairing_code or get_session_status, which involve a different mechanism or different information.

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

Usage Guidelines4/5

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

The description gives a clear usage context: when a session needs to be authenticated via WhatsApp QR scanning, and even points to the Settings > Linked Devices flow. It does not explicitly name alternatives or exclusions, but the QR-based vs pairing-code-based distinction is strongly implied by the sibling tool set.

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

get_session_statusA

Get the current status of a session (STARTING, SCAN_QR_CODE, WORKING, FAILED, STOPPED).

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionYesSession name

TDQS

A3.6/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 behavioral disclosure burden. The verb 'get' implies a read-only operation, and the listed statuses provide useful context about possible outcomes. However, it does not mention behavior for nonexistent sessions, error handling, or whether the operation has any side effects.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no filler. The parenthetical status list adds useful information without bloating the text.

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?

For a simple one-parameter status lookup with no output schema, the description is reasonably complete: it names the input and the possible status outcomes. It could be more complete by stating what happens for unknown sessions, but this is a minor gap given the tool's simplicity.

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%: the 'session' parameter is described as 'Session name'. The description adds no further semantic detail about the parameter, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description uses a specific verb ('Get') and resource ('status of a session'), and it enumerates the possible status values, which clarifies the tool's purpose. It does not explicitly contrast itself with sibling tools like get_qr_code or list_sessions, so it stops short of full differentiation.

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 intended use is implied: call this tool when you need a session's current lifecycle status. However, there is no explicit guidance about when not to use it or which sibling tool should be chosen instead (for example, get_qr_code for QR image retrieval).

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

list_sessionsA

List all WhatsApp sessions belonging to this API key.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. 'List' clearly implies a read-only operation, and the scope 'belonging to this API key' is useful, but the description does not mention pagination, response format, or any rate-limit or authentication considerations.

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, well-structured sentence that front-loads the core action and resource. Every word adds necessary meaning, and there is no redundancy or filler.

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?

For a zero-parameter listing tool with no output schema, the description is reasonably complete: it identifies the resource, the action, and the ownership scope. It does not describe the exact shape of the returned list, but 'List all sessions' sufficiently sets expectations for a simple enumeration.

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?

The tool has zero parameters, so there is nothing for the description to clarify beyond the schema. The baseline of 4 applies because no parameter documentation is needed; the description accurately reflects that the operation requires no inputs.

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?

States the specific verb 'List', the resource 'WhatsApp sessions', and the scope 'belonging to this API key'. This clearly differentiates it from sibling tools like create_session, get_session_status, and get_qr_code, which perform different actions on the same resource.

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 makes the tool's purpose obvious but does not explicitly mention when to prefer it over alternatives such as get_session_status. There is no exclusion guidance or comparison to sibling tools, so usage context is implied rather than stated.

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

request_pairing_codeA

Request an 8-digit pairing code as an alternative to scanning a QR code.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionYesSession name
phoneNumberYesPhone number, 10-15 digits, no + or spaces

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It only states the tool's purpose and does not explain what happens after the request, whether the code is sent to the phone number, whether it expires, or what the response contains. For a tool that likely sends an out-of-band code, this is a meaningful gap.

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, focused sentence with no redundancy. It front-loads the core action and purpose, making it easy for an agent to quickly 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 low complexity, two clearly documented parameters, and simple purpose, the description is adequate for basic selection and invocation. However, the absence of annotations and output schema, combined with limited behavioral detail, leaves some uncertainty about the actual call flow and response.

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 both required parameters clearly. The description adds no additional parameter-level meaning, such as clarifying that phoneNumber is the destination for the code, but it does not need to compensate because the schema is sufficient.

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 states a specific action ('Request'), a specific resource ('an 8-digit pairing code'), and a clear purpose ('as an alternative to scanning a QR code'). This distinguishes it cleanly from the sibling tool get_qr_code without needing to inspect the schema.

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

Usage Guidelines4/5

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

The phrase 'as an alternative to scanning a QR code' provides clear context for when this tool should be used instead of get_qr_code. It does not explicitly list exclusions or mention when not to use it, but the intended usage scenario is understandable.

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

send_fileB

Send a file (PDF, document, etc.) to a contact, group, or channel via a public URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesRecipient: phone number, group ID, or channel ID
fileUrlYesPublic URL of the file
sessionYesSession name
filenameNoFilename to display in the chat

TDQS

B3.3/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 of behavioral disclosure. It only states the action and the public-URL constraint; it does not mention potential failure modes (inaccessible URL, unsupported file type/size), side effects, or how the filename parameter is used.

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?

A single, front-loaded sentence with no filler. Every element adds value: action, resource, recipients, and the URL constraint.

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?

The description captures the core operation and schema descriptions cover all parameters, but the absence of annotations and any mention of failure handling or return behavior leaves moderate gaps. For a low-complexity tool this is minimally adequate.

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 baseline is 3. The description adds no parameter-level detail beyond what the schema already provides, but that is acceptable given full schema 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?

States a specific verb ('Send'), resource ('file'), recipient types ('contact, group, or channel'), and delivery method ('via a public URL'). It clearly distinguishes from sibling tools like send_text_message and send_image by focusing on arbitrary file types.

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 send_image or send_text_message. No prerequisites (e.g., active session) or exclusions are mentioned, leaving the agent to infer usage from the tool name alone.

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

send_imageB

Send an image to a contact, group, or channel via a public URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIdYesRecipient: phone number, group ID, or channel ID
captionNoOptional caption
sessionYesSession name
imageUrlYesPublic URL of the image

TDQS

B3.1/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 does state the public-URL constraint, but it does not disclose whether the URL is fetched server-side, whether a caption is permitted, error cases, or any permission requirements. This is thin for a mutation 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?

A single, front-loaded sentence that states the action, object, recipients, and method in 14 words. There is no filler or redundancy, so every word earns its place.

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 four-parameter send tool with a complete schema, the description covers the core action but lacks guidance relative to sibling send_file and does not disclose return or error behavior. With no output schema and no annotations, this leaves the agent with some uncertainty, though the schema fills most parameter 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 100%, so all four parameters are already documented with meaningful descriptions. The text adds no parameter-specific meaning beyond what the schema already states: 'public URL' and destination types appear in the schema's property descriptions.

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 names a specific verb ('Send'), resource ('an image'), and destination types ('contact, group, or channel') plus the transport method ('public URL'). It is clear and specific, but it does not explicitly differentiate from the sibling send_file tool, which may also handle images.

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 gives no guidance about when to use this tool instead of send_text_message or send_file. There are no exclusions, prerequisites like an active session, or conditions that would help an agent choose among siblings.

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

send_text_messageA

Send a WhatsApp text message to a contact, group, or channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesMessage text
chatIdYesRecipient: a phone number (e.g. "14155552671"), a group ID, or a channel ID
sessionYesSession name

TDQS

A3.5/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden. It states the primary side effect ('Send ... message') but does not disclose prerequisites like an active session, delivery behavior, failure modes, or any limits, which matter for a tool with a required 'session' 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 front-loaded sentence with no filler. Every phrase ('WhatsApp text message', 'contact, group, or channel') adds operational 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 simple 3-parameter tool with full schema coverage, the description plus schema is mostly sufficient to invoke the tool. However, the absence of any behavioral context (e.g., needing an active session, or that media should use send_image/send_file) leaves minor 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 coverage is 100%, so the input schema already documents text, chatId, and session sufficiently. The description adds no parameter-level meaning, but it does not need to compensate because the schema descriptions are clear.

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 a specific verb ('Send') and resource ('WhatsApp text message'), and explicitly lists target types ('contact, group, or channel'). This clearly distinguishes it from sibling tools like send_image and send_file based on message type.

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 for text messages and identifies recipient categories, but it does not explicitly state when not to use this tool or point to send_image/send_file for media. No prerequisites, such as needing an active session, are mentioned.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 9 tool updatesv1.0.3
    • First observedcheck_contact_exists
    • First observedcreate_session
    • First observedget_qr_code
    • First observedget_session_status
    • First observedlist_sessions
    • First observedrequest_pairing_code
    • First observedsend_file
    • First observedsend_image
    • First observedsend_text_message

TDQS

A3.8/5.0
Disambiguation4/5

Most tools target distinct actions: session creation/auth vs. sending messages vs. contact checks. There is slight overlap between list_sessions and get_session_status, since list_sessions may reveal statuses too, but the descriptions keep them reasonably separated.

Naming Consistency5/5

All tool names follow a clear lowercase snake_case verb_noun pattern: list_sessions, create_session, get_qr_code, send_text_message, etc. The naming is predictable and consistent across the set.

Tool Count5/5

Nine tools is well-scoped for a WhatsApp messaging API: session lifecycle management, authentication, contact validation, and message sending. Each tool serves a clear purpose without excessive redundancy.

Completeness4/5

The core workflow is covered: create and authenticate sessions, check contacts, and send text/image/file messages. Minor gaps exist such as no delete/stop session tool and no video/audio sending, but the essential use cases are supported.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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/jevil25/whatsapp-messaging-api-mcp'

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