Skip to main content
Glama
EvandroSchechtel

WhatsApp Business MCP Server

Server Quality Checklist

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

  • Disambiguation5/5

    Every tool has a clearly distinct purpose with no ambiguity. For example, send_text_message, send_media_message, and send_template_message each handle different message types, while get_business_profile and update_business_profile are clearly separate read and write operations. The descriptions reinforce these distinctions, making tool selection straightforward.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with clear, descriptive verbs like create, delete, get, list, mark, send, and update. There are no deviations in style (e.g., no camelCase or mixed conventions), making the naming highly predictable and readable throughout the set.

    Tool Count5/5

    With 16 tools, the server is well-scoped for managing a WhatsApp Business Account, covering key areas like messaging (text, media, templates, interactive), profile management, analytics, and media handling. Each tool earns its place without feeling excessive or thin, aligning well with the domain's complexity.

    Completeness5/5

    The tool set provides complete CRUD/lifecycle coverage for the WhatsApp Business domain. It includes creation (e.g., create_template, upload_media), retrieval (e.g., get_business_profile, list_templates), updates (e.g., update_business_profile, mark_message_read), and deletion (delete_template), with no obvious gaps that would hinder agent workflows.

  • Average 3.3/5 across 16 of 16 tools scored.

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

  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • 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.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • 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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves analytics but doesn't mention permissions needed, rate limits, pagination, error handling, or data freshness. For a read operation with no annotation coverage, this is insufficient to inform safe and effective use.

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

    Conciseness5/5

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

    The description is a single, efficient sentence with zero waste. It front-loads key information ('Get messaging analytics') and includes essential details (metrics and date range) without redundancy, making it easy to parse quickly.

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

    Completeness2/5

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

    Given no annotations, no output schema, and a read operation with three parameters, the description is incomplete. It doesn't explain what the output looks like (e.g., format of counts), error conditions, or behavioral constraints, leaving significant gaps for agent invocation.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema fully documents parameters like 'start_date' and 'granularity' with enums. The description adds minimal value by implying date-range filtering but doesn't explain parameter interactions or semantics beyond what's in the schema, meeting the baseline for high coverage.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get messaging analytics (sent, delivered, read counts) for a date range.' It specifies the verb ('Get'), resource ('messaging analytics'), and key metrics, making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_business_profile' or 'get_phone_numbers', which prevents a perfect score.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It mentions a date range but doesn't specify prerequisites, exclusions, or compare it to other analytics-related tools (none listed in siblings). This leaves the agent without context for tool selection.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('send') but doesn't reveal whether this is a mutating operation (likely yes), what permissions are required, whether it's synchronous/asynchronous, error conditions, or what happens on success/failure. For a messaging tool with zero annotation coverage, this is a significant 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, efficient sentence that front-loads the core purpose with zero wasted words. It immediately communicates what the tool does without unnecessary elaboration.

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

    Completeness2/5

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

    Given this is a mutating tool (sending messages) with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like success responses, error handling, authentication needs, or rate limits. The agent lacks critical context for proper invocation.

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

    Parameters3/5

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

    Schema description coverage is 100%, with both parameters ('to' and 'contacts') clearly documented in the schema. The description adds no additional parameter semantics beyond implying the 'contacts' parameter contains contact cards. This meets the baseline of 3 when the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the action ('send') and resource ('contact card to a WhatsApp number'), making the purpose immediately understandable. It distinguishes this from other messaging tools (like send_text_message or send_media_message) by specifying it's for contact cards. However, it doesn't explicitly differentiate from all siblings (e.g., send_interactive_message might also involve 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?

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing WhatsApp Business API access), when contact cards are appropriate versus text messages, or any constraints like rate limits. The agent must infer usage from the tool name alone.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It states the tool sends a message but lacks details on behavioral traits such as permissions required, rate limits, delivery guarantees, error handling, or what happens upon invocation (e.g., does it trigger notifications?). This is inadequate for a mutation tool with zero annotation coverage.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that front-loads the core purpose without redundancy. Every word earns its place, making it easy to parse quickly.

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

    Completeness2/5

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

    Given the complexity (8 parameters, mutation operation, no output schema, and no annotations), the description is incomplete. It lacks information on behavioral aspects, usage context, and expected outcomes, leaving significant gaps for an AI agent to understand how to invoke this tool effectively.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema fully documents all 8 parameters. The description adds minimal value beyond the schema by hinting at the interactive_type options ('buttons or a selection list'), but it doesn't explain parameter interactions or provide additional context. Baseline 3 is appropriate when the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the action ('send') and resource ('interactive message'), specifying it includes 'buttons or a selection list'. It distinguishes from siblings like send_text_message or send_template_message by focusing on interactivity. However, it doesn't explicitly contrast with all sibling tools (e.g., send_contact_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 explicit guidance on when to use this tool versus alternatives is provided. The description mentions 'buttons or a selection list', which implies usage for interactive content, but it doesn't specify scenarios, prerequisites, or exclusions compared to other send_* tools in the sibling list.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Send') but lacks details on permissions required, rate limits, whether it's asynchronous, error handling, or what happens on success (e.g., message ID returned). For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that directly states the tool's purpose without redundancy. It is front-loaded with the core action and target, making it easy to parse. There is no wasted verbiage or unnecessary elaboration.

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

    Completeness2/5

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

    Given the complexity of a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., side effects, error cases), output expectations, and usage context. While the schema covers parameters well, the overall context for safe and effective use is insufficient.

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

    Parameters3/5

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

    Schema description coverage is 100%, with clear descriptions for all parameters (e.g., 'Recipient phone number', 'Location latitude'). The description adds no additional semantic context beyond the schema, such as format requirements for 'to' (e.g., E.164) or that 'name' and 'address' are optional metadata. Baseline 3 is appropriate since the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the action ('Send a location pin') and target ('to a WhatsApp number'), which is specific and unambiguous. It distinguishes itself from siblings like send_text_message or send_media_message by focusing on location sharing. However, it doesn't explicitly mention the resource (e.g., 'via WhatsApp Business API') or differentiate from send_contact_message in terms of content type beyond the name.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a verified business account), exclusions (e.g., not for group chats), or comparisons to siblings like send_text_message for non-location messages. Usage is implied by the name but not explicitly stated.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('send') but doesn't mention critical details like required permissions, rate limits, error conditions, or what happens on success (e.g., message ID returned). This is inadequate for a mutation tool with zero annotation coverage.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that directly states the tool's function without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy to parse quickly.

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

    Completeness2/5

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

    Given the complexity of sending media (a mutation operation with multiple parameters) and the absence of both annotations and an output schema, the description is incomplete. It doesn't cover behavioral aspects like authentication needs, response format, or error handling, which are crucial for effective tool use.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain media URL requirements or caption limitations further), meeting the baseline for high schema coverage.

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

    Purpose4/5

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

    The description clearly states the action ('send') and resource ('image, video, audio, or document to a WhatsApp number'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like send_text_message or send_template_message, which prevents a perfect score.

    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 send_text_message or send_template_message. It also doesn't mention prerequisites such as needing a media URL or ID, or when to use upload_media first, leaving usage context unclear.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. While 'Update' implies a mutation operation, the description fails to disclose important behavioral traits: whether this requires specific permissions, if changes are reversible, what happens to existing fields not mentioned, rate limits, or error conditions. It provides only the basic action without operational context.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that states the core action without unnecessary words. It's appropriately sized for a tool with good schema documentation and gets straight to the point with zero wasted verbiage.

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

    Completeness2/5

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

    For a mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what happens after the update, what the response looks like, error conditions, or important constraints. The combination of mutation operation + zero annotation coverage + no output schema requires more descriptive context than provided.

    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 100% schema description coverage, the input schema already documents all 5 parameters thoroughly with descriptions and constraints. The description adds no parameter-specific information beyond the generic 'profile information' phrase, so it doesn't enhance understanding of what each parameter controls or their relationships.

    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 ('Update') and resource ('WhatsApp Business profile information'), making the purpose immediately understandable. However, it doesn't distinguish this tool from potential alternatives like 'get_business_profile' or explain what specific aspects of the profile can be updated beyond the generic 'information' term.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like needing an existing profile), doesn't contrast with the sibling 'get_business_profile' tool, and offers no context about appropriate use cases or limitations.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. While 'Get' implies a read-only operation, it doesn't explicitly state this is safe/non-destructive, mention authentication requirements, rate limits, error conditions, or what happens if the profile doesn't exist. It provides minimal behavioral context beyond the basic operation.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that immediately states the tool's purpose and enumerates the returned fields. Every word contributes value with no redundancy or unnecessary elaboration. It's perfectly front-loaded and appropriately sized for this simple retrieval tool.

    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 zero-parameter read tool with no output schema, the description adequately covers what information is retrieved. However, it lacks details about the return format (structure, data types), potential errors, or authentication requirements. Given the simplicity of the tool, the description is minimally complete but could benefit from slightly more behavioral context.

    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 with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't discuss parameters, maintaining focus on what the tool returns. This meets the baseline expectation for zero-parameter tools.

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

    Purpose4/5

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

    The description clearly states the action ('Get') and the resource ('WhatsApp Business profile'), and lists specific profile fields (about, address, description, email, websites, profile picture). It distinguishes this read operation from sibling tools like update_business_profile, but doesn't explicitly contrast with other read tools like get_analytics or get_phone_numbers.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, appropriate contexts, or compare it to other profile-related tools like update_business_profile. The agent must infer usage from the tool name and description alone.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions listing and optional filtering, but fails to describe critical traits such as pagination behavior (implied by 'limit' parameter), rate limits, authentication needs, or whether it's a read-only operation. This leaves significant gaps for agent understanding.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that front-loads the core action ('List all message templates') and adds optional functionality ('optionally filtered by status') without any wasted words. It is appropriately sized for the tool's complexity.

    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 lack of annotations and output schema, the description is incomplete. It does not cover behavioral aspects like pagination, error handling, or response format, which are crucial for a list operation with filtering. The description should provide more context to compensate for missing structured data.

    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 parameters ('status' and 'limit') with descriptions and enums. The description adds no additional meaning beyond what the schema provides, such as explaining parameter interactions or usage examples, meeting the baseline for high coverage.

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

    Purpose4/5

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

    The description clearly states the verb ('List') and resource ('message templates in the WhatsApp Business Account'), making the purpose specific and understandable. However, it does not explicitly distinguish this tool from sibling tools like 'get_usiness_profile' or 'get_phone_numbers', which might also list resources, so it misses 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 description implies usage by mentioning optional filtering by status, but it does not provide explicit guidance on when to use this tool versus alternatives like 'get_analytics' or 'send_template_message'. There is no mention of prerequisites, exclusions, or specific contexts for selection.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the return value ('media_id') and that the file is uploaded 'for later sending,' which hints at storage and delayed use. However, it fails to disclose critical behavioral traits such as authentication requirements, rate limits, file size constraints, supported MIME types beyond examples, or whether the upload is permanent or temporary, leaving significant gaps for a mutation tool.

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

    Conciseness5/5

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

    The description is extremely concise and front-loaded, consisting of only two sentences that efficiently convey the core purpose and outcome. Every sentence earns its place: the first explains the action and intent, and the second clarifies the return value and its usage, with zero wasted words or redundancy.

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

    Completeness2/5

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

    Given the tool's complexity as a mutation operation with no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects like permissions, error handling, or response format beyond 'media_id,' and doesn't address how the uploaded media integrates with sibling tools. While it states the basic purpose, it doesn't provide enough context for safe and effective use in a broader workflow.

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

    Parameters3/5

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

    The input schema has 100% description coverage, with clear documentation for both parameters ('file_url' and 'type'). The description adds no additional parameter semantics beyond what the schema provides, such as format details or constraints. According to the rules, with high schema coverage (>80%), the baseline score is 3, as the description doesn't need to compensate but also doesn't add value here.

    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's purpose: 'Upload a media file for later sending.' It specifies the verb ('upload') and resource ('media file'), and distinguishes it from siblings like 'send_media_message' by indicating it's for preparation rather than direct sending. However, it doesn't explicitly differentiate from 'get_media_url' or other media-related tools, preventing a perfect score.

    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 by stating the tool returns a 'media_id that can be used with send_media_message,' suggesting it's a prerequisite for sending media. However, it lacks explicit guidance on when to use this versus alternatives like 'send_media_message' directly (if available) or other upload methods, and doesn't mention any exclusions or prerequisites beyond the implied workflow.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It states the tool marks messages as read, implying a mutation operation, but doesn't disclose behavioral traits like required permissions, side effects (e.g., notifications), rate limits, or error conditions. The mention of 'blue checkmarks' adds minor context about visual feedback.

    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 two sentences with zero waste: the first states the purpose and visual outcome, the second provides usage guidance. It's appropriately sized and front-loaded, with every sentence earning 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?

    Given no annotations, no output schema, and a simple single-parameter tool, the description is adequate but incomplete. It covers the basic purpose and usage hint but lacks details on behavioral aspects like permissions or error handling, which are important for a mutation tool. The context signals indicate low complexity, so this is minimally viable.

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

    Parameters3/5

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

    Schema description coverage is 100%, with the parameter 'message_id' fully documented in the schema as 'The wamid of the message to mark as read.' The description adds no additional meaning beyond this, such as format examples or constraints, so it meets the baseline for high schema coverage.

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

    Purpose4/5

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

    The description clearly states the action ('Mark a received message as read') and the resource ('message'), with specific visual feedback ('blue checkmarks'). It distinguishes from siblings by focusing on read status updates rather than sending messages or managing templates, though it doesn't explicitly contrast with other tools.

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

    Usage Guidelines3/5

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

    The description provides implied usage context by specifying 'Use the message_id from a received webhook,' which suggests this tool is for processing incoming messages. However, it doesn't explicitly state when to use it versus alternatives or mention any prerequisites beyond having a message_id.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It mentions that templates must be 'approved by Meta before use,' which adds important context about prerequisites. However, it lacks details about rate limits, error conditions, response format, or what happens if an unapproved template is used—significant gaps for a messaging tool.

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

    Conciseness5/5

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

    The description is two sentences with zero waste—each sentence adds critical information (what the tool does and when to use it). It's front-loaded with the core purpose and efficiently includes the key constraint about Meta approval.

    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 messaging tool with no annotations and no output schema, the description covers the basic purpose and a key usage constraint. However, it lacks details about behavioral aspects like authentication needs, error handling, or what the tool returns, leaving gaps that could hinder an agent's ability to use it correctly.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain template_name format or components structure). Baseline 3 is appropriate when the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the action ('Send a pre-approved template message') and identifies the resource (template messages). It distinguishes from siblings like send_text_message or send_media_message by specifying template-based sending, though it doesn't explicitly contrast with send_interactive_message which might also use templates.

    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 clear context for when to use this tool ('Required for initiating conversations outside the 24-hour window'), which is specific and actionable. It doesn't explicitly mention when not to use it or name alternatives, but the context strongly implies it's for outbound messaging beyond the standard window.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden. It mentions the approval requirement but doesn't disclose other behavioral traits like whether this is a write operation (implied by 'create'), what permissions are needed, rate limits, whether the template is immediately usable, or what happens on failure. For a creation tool with zero annotation coverage, this is insufficient.

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

    Conciseness5/5

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

    Two concise sentences with zero waste. The first sentence states the core purpose, the second provides crucial context about when templates are required. Every word earns its place and the information is front-loaded effectively.

    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 creation tool with no annotations and no output schema, the description provides basic purpose and context but lacks important details about behavioral characteristics, error conditions, or what the tool returns. The 100% schema coverage helps, but more behavioral transparency would be needed for full completeness.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. Baseline 3 is appropriate when the schema does the heavy lifting, though the description could have explained parameter relationships 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 verb 'create' and resource 'message template', specifies it's 'for approval by Meta', and distinguishes it from siblings by explaining templates are required for outbound messages outside the 24-hour window. This differentiates it from other messaging tools like send_text_message.

    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 clear context about when to use this tool ('for outbound messages outside the 24-hour window'), but doesn't explicitly state when NOT to use it or mention specific alternatives like send_template_message. It implies usage for template creation but lacks explicit exclusions.

    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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates the irreversible nature of the action, which is a critical behavioral trait beyond the basic 'delete' operation. However, it lacks details on permissions, error conditions, or confirmation requirements.

    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 sentences with zero waste. It front-loads the core action and follows with a critical warning, making it efficient and well-structured for quick comprehension.

    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 complexity (destructive operation with no annotations or output schema), the description is minimally adequate. It covers the irreversible nature but lacks details on permissions, error handling, or what happens post-deletion, leaving gaps in contextual understanding.

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

    Parameters3/5

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

    The schema description coverage is 100%, with the parameter 'template_name' fully documented in the schema. The description adds no additional semantic context beyond what the schema provides, such as format examples or constraints, meeting the baseline for high schema coverage.

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

    Purpose5/5

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

    The description clearly states the specific action ('Delete') and resource ('a message template by name'), distinguishing it from sibling tools like 'create_template' and 'list_templates'. It precisely communicates what the tool does without being vague or tautological.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as needing an existing template, or compare it to related tools like 'update_business_profile' or 'create_template'. Usage context is implied but not explicitly stated.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a list operation but doesn't mention whether it requires authentication, has rate limits, returns paginated results, or what format the output takes. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that front-loads the core purpose ('List all phone numbers') and adds valuable context about included data. Every word earns its place with no redundancy or wasted text.

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

    Completeness3/5

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

    For a read-only list tool with no parameters and no output schema, the description provides adequate purpose but lacks behavioral context about authentication, rate limits, or output format. Given the complexity is low (no parameters), it's minimally complete but could better address the missing annotation coverage.

    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 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, and instead focuses on what the tool returns.

    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 'all phone numbers registered on this WhatsApp Business Account', with specific details about included information (quality rating and messaging limits). It distinguishes itself from siblings like get_business_profile or get_analytics by focusing specifically on phone numbers.

    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 retrieving phone number details, but provides no explicit guidance on when to use this versus alternatives like get_business_profile (which might contain some contact info) or when not to use it. No prerequisites or exclusions are mentioned.

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

  • Behavior4/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 effectively adds critical context beyond the schema by specifying that 'URLs are valid for 5 minutes,' which is a key behavioral trait (temporary validity) not inferable from the input schema alone. However, it does not cover other potential behaviors like error conditions 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.

    Conciseness5/5

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

    The description is extremely concise with only two sentences, both of which earn their place by providing essential information (purpose and URL validity). It is front-loaded with the core function and wastes no 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?

    Given the tool's low complexity (one parameter, no output schema, no annotations), the description is reasonably complete. It covers the purpose and a key behavioral constraint (5-minute validity). However, without annotations or output schema, it could benefit from mentioning response format or error handling, but the gaps are minor for this simple tool.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents the single parameter (media_id) with its description. The description does not add any further meaning or details about the parameter beyond what the schema provides, meeting the baseline for high schema coverage.

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

    Purpose5/5

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

    The description clearly states the specific action ('Get the download URL') and resource ('for a received media file'), distinguishing it from sibling tools like upload_media or send_media_message. It precisely defines the tool's function without ambiguity.

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

    Usage Guidelines3/5

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

    The description implies usage context by specifying 'received media file' and mentioning webhook origin in the parameter description, but it does not explicitly state when to use this tool versus alternatives like send_media_message or upload_media. No exclusions or prerequisites are provided.

    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?

    No annotations are provided, so the description carries full burden. It discloses the 24-hour window constraint, which is valuable behavioral context. However, it doesn't mention authentication requirements, rate limits, error conditions, or what happens on success/failure. For a messaging tool with zero annotation coverage, this leaves significant gaps.

    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 sentences with zero waste - first states purpose, second provides critical usage guidance. Perfectly front-loaded and appropriately sized for the tool's complexity.

    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 no annotations and no output schema, the description provides good context about the 24-hour window constraint and alternative tool. However, for a messaging tool that presumably returns success/failure status, the lack of output information is a minor gap. The description is mostly complete for its purpose.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. This meets the baseline expectation when schema coverage is high.

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

    Purpose5/5

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

    The description clearly states the specific action ('Send a text message') and target resource ('to a WhatsApp number'), distinguishing it from siblings like send_template_message, send_media_message, etc. It provides precise scope without being tautological.

    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?

    Explicitly states when to use ('within the 24-hour conversation window') and when not to use ('outside this window'), with a clear alternative named ('use send_template_message instead'). This provides perfect guidance for tool selection.

    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

mcp-whatsapp MCP server

Copy to your README.md:

Score Badge

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

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