Skip to main content
Glama
Pl3ntz

whatsapp-mcp

Server Quality Checklist

75%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.3

  • Disambiguation5/5

    Each tool targets a distinct operation: sending (with a two-step confirmation), verifying, listing, reading, searching, exporting, and fetching chat metadata. The only potential overlap, get_messages and search_messages, is clearly separated by intent (read all vs. search by text).

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern (e.g., export_chat, send_message, list_chats, get_messages). Names are lowercase with underscores throughout, making the set predictable and easy to navigate.

    Tool Count5/5

    With 8 tools, the server is well-scoped for a WhatsApp integration. Each tool serves a clear core function without redundancy or bloat, making the set manageable and focused.

    Completeness4/5

    The tool set covers the major WhatsApp workflows: sending (with confirmation), verifying delivery, reading chats and messages, searching, exporting, and retrieving chat metadata. Minor gaps exist, such as lack of media sending or chat creation, but for the stated purpose it is largely complete.

  • Average 3.6/5 across 8 of 8 tools scored. Lowest: 2.9/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 1 commit in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • This server has been verified by its author.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, so the read-only nature is known. The description adds that the search uses LIKE and has broad coverage, which implies substring matching across chats, providing some value beyond annotations. However, it doesn't disclose return formats or pagination.

    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 zero wasted words. It efficiently conveys the core purpose and a key behavior (LIKE) in a compact format.

    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 low complexity but also sparse information, the description is incomplete. It fails to explain how chat_id scopes the search, what limit does, or the exact meaning of 'LIKE', leaving an agent uncertain about invocation. The readOnly annotation helps but doesn't cover these operational details.

    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%, so the description must compensate by explaining parameters. It does not mention query, limit, or chat_id, leaving the agent to infer their meanings from names and defaults. This is insufficient for a 3-parameter tool.

    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 tool performs a text search across messages with 'Busca texto nas mensagens', which is a specific verb+resource. It distinguishes from siblings like get_messages or list_chats by implying a content-based search, though it doesn't explicitly name alternatives.

    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 given on when to use this tool vs. alternatives. The phrase 'cobertura ampla' hints at broad applicability, but there is no explicit mention of when to prefer search_messages over get_messages or list_chats.

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

  • Behavior3/5

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

    The readOnlyHint annotation already covers safety, and the description adds the 'from_me=1' filter as useful context. However, it does not disclose behavior with an empty text_substring parameter or clarify the return value, leaving some behavioral aspects ambiguous.

    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, efficient sentence with no redundancy. However, its brevity comes at the cost of omitting key parameter semantics, so it is well-structured but not maximally informative.

    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?

    With only one optional parameter and no output schema, the description should clarify the role of text_substring and what 'verified' means (e.g., return type or behavior). It only describes the general action, which is insufficient for full contextual completeness.

    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?

    The description makes no mention of the 'text_substring' parameter, and the schema has 0% description coverage. This leaves the agent with no explanation of the argument's purpose or how it influences the query, so the description fails to compensate for the missing schema documentation.

    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 tool's function using the specific verb 'Verifica' (checks), identifies the resource (database), and includes the condition 'from_me=1'. This distinguishes it from siblings like send_message or search_messages, which focus on sending or general search.

    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, nor any mention of exclusions. The description only states what the tool does without contextualizing when it should be preferred over confirm_send or get_messages.

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

  • Behavior3/5

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

    The annotation readOnlyHint=true already indicates a safe read operation. The description adds minimal behavioral context by listing the metadata types returned (type, group), but does not disclose any side effects, error conditions, or additional constraints. Since the annotation covers the safety profile, the description adds only a small amount of value.

    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 phrase, directly stating the tool's output without redundant words. It is appropriately sized for a simple tool, though it is more of a fragment than a full structured sentence.

    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 one-parameter read-only tool with no output schema, the description adequately conveys the return content (metadata with type and group) and the annotation covers safety. The lack of details on formatting or errors is acceptable given the tool's simplicity, though a full sentence explaining the action would improve completeness.

    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 description does not mention the chat_id parameter at all, and schema description coverage is 0%. Although the parameter name is self-explanatory, the description fails to compensate for the lack of schema documentation, leaving the agent to infer the parameter's meaning solely from its name.

    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 'Metadados da conversa (tipo, grupo)' clearly identifies the tool as retrieving conversation metadata, specifying the fields 'type' and 'group'. This distinguishes it from sibling tools like get_messages or send_message, though it remains terse and could be more explicit about the action (e.g., 'retrieves').

    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 usage guidance is provided. The description does not mention when to use this tool versus alternatives (e.g., list_chats or get_messages), nor does it state any prerequisites or context where this tool is the appropriate choice.

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

  • Behavior4/5

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

    The annotations provide readOnlyHint=true, and the description adds behavioral detail about the output structure (name, unread, last message). This is consistent with the read-only annotation and gives useful context beyond the annotation alone.

    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, compact sentence that directly states the tool's purpose and output fields. It is front-loaded with the verb and contains no extraneous information.

    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 read-only list tool with two optional parameters, the description covers the core purpose and output. However, it lacks any usage context or explanation of parameter effects, leaving some gaps in completeness.

    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?

    The input schema has 0% description coverage, and the description does not mention the 'limit' or 'unread_only' parameters at all. The agent must rely solely on the parameter names and defaults, which is insufficient for fully understanding their semantics.

    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 tool's function: 'Lista as conversas do WhatsApp' (lists WhatsApp conversations) and specifies the returned fields (name, unread, last message). This distinguishes it from siblings that focus on messages or individual chat details.

    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 get_chat_info or search_messages. It simply states what it does without any context about suitable scenarios or exclusions.

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

  • Behavior3/5

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

    Annotations declare readOnlyHint=true, and the description adds context about writing to a local file and supported formats. However, it does not disclose other behavioral aspects like error handling, permissions, or return behavior. This is similar to the get_calls calibration example.

    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 fluff or redundancy. It efficiently communicates the core function and format options.

    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 tool is simple, but the description lacks information about the return value (does it return a file path or confirmation?) and error conditions. It relies on the schema for parameter requirements and annotations for safety, leaving some gaps for the agent.

    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 0%, and while the description mentions json|md (which hints at the fmt parameter), it does not explain the required chat_id parameter or clarify parameter semantics. The description adds minimal value over the raw 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 tool exports conversation history to a local file with format options (json|md), which is a specific verb+resource and distinguishes it from sibling tools like send_message or get_messages.

    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 you need to export a chat), but provides no explicit when-to-use guidance, exclusions, or alternative tool recommendations. The context is clear but not elaborated.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, reducing the need for safety disclosure. The description adds value by explaining the 'before' timestamp pagination behavior, which is not in the annotations. However, it omits details like ordering, limit behavior, or error cases.

    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 front-loads the core purpose and directly includes the key parameter context. No unnecessary words or repetition.

    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?

    Given the simple read-only nature (annotations) and the schema providing limits and defaults, the description sufficiently covers the main use case and pagination hint. It does not describe the response format, but the absence of an output schema makes that less critical. The pagination context adds completeness beyond a bare description.

    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?

    With 0% schema description coverage, the description must compensate. It explains chat_id as the conversation identifier and before as a unix timestamp for pagination, but does not explain the 'limit' parameter. The schema provides default values, but the description lacks complete parameter 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 verb and resource: 'Lê mensagens de uma conversa (chat_id)' (reads messages from a conversation), which distinguishes it from siblings like send_message and export_chat by specifying the read action on conversation messages.

    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 implies the use case (reading messages for a specific chat) by referencing chat_id and adds a practical pagination guideline with 'before' (unix ts). It does not explicitly exclude alternatives, but the clear scope makes it easy to select.

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

  • Behavior5/5

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

    The description reveals crucial behavioral traits beyond the annotations: 'NADA é enviado' on the first call, returns a preview, and actual sending only occurs via confirm_send(). This adds important nuance to the destructiveHint=true annotation and clarifies the deferred destructiveness.

    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 concise and front-loaded. It leads with the action, then uses a clear step structure (Passo 1/Passo 2) to convey the workflow precisely without wasting 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?

    While the two-phase workflow is well explained, the description omits essential details: parameter usage, what the preview contains, and how confirm_send() receives the preview. Given no output schema and 4 ambiguous optional parameters, this leaves an agent under-informed for reliable invocation.

    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?

    With 0% schema description coverage, the description must explain parameters but only mentions 'texto pre-preenchido.' It fails to define jid, phone, or chat_id, leaving the agent without any guidance on which to use or how they relate to the action.

    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 'ENVIA uma mensagem (com confirmação)'—a specific verb and resource—and immediately explains the two-step process, distinguishing this tool from confirm_send by showing it only pre-fills and does not send.

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

    Usage Guidelines5/5

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

    It explicitly provides a step-by-step usage: call this first, then call confirm_send() to press Enter. It names the alternative (confirm_send) and clarifies when to use each step, giving clear usage context.

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

  • Behavior4/5

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

    The description discloses behavioral traits beyond the annotations by detailing the mechanism ('pressiona Enter') and the necessary precondition ('após aprovação explícita'). The destructiveHint annotation is consistent with this action, and the description adds context about the approval requirement, enhancing transparency without contradiction.

    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 extremely concise: two short sentences that are front-loaded with the core purpose. Every phrase adds value: the action, the mechanism, and the usage condition. No wasted words.

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

    Completeness5/5

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

    Given the tool's simplicity (zero parameters, no output schema), the description is complete. It states what the tool does, how it does it, and when to use it. The destructive annotation covers safety, and no further explanation of return values is necessary.

    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 to explain (schema coverage is trivially 100%). The description adds context about the 'campo pre-preenchido' (pre-filled field), which helps the agent understand what the tool acts on, even though no parameters exist. This is appropriate for a zero-parameter tool.

    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 tool's function with a specific verb and resource: 'CONFIRMA o envio' (confirms the sending). It also explains the mechanism, 'pressiona Enter no campo pre-preenchido' (presses Enter in the pre-filled field), which differentiates it from siblings like send_message or verify_sent by describing the action as a final confirmation step.

    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 provides a clear usage condition: 'Só após aprovação explícita' (Only after explicit approval). This tells the agent when this tool should be used, but it does not explicitly mention alternatives or when-not-to-use scenarios, so it stops short of a full 5.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

whatsapp-mcp MCP server

Copy to your README.md:

Score Badge

whatsapp-mcp MCP server

Copy to your README.md:

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/Pl3ntz/whatsapp-mcp'

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