Skip to main content
Glama

WhaTools — WhatsApp tools

Server Details

WhatsApp tools: wa.me links, QR codes, share widgets, phone validation, API rate card & limits.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
procom-dev/whatools
GitHub Stars
0

TDQS

A4.2/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct WhatsApp utility: widget building, cost estimation, single/bulk link generation, QR code, limits, rates, and phone validation. No overlap or ambiguity; an agent can easily select the right tool for a specific task.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., generate_whatsapp_link, get_whatsapp_rates, validate_phone_number). The verbs (build, estimate, generate, get, validate) are distinct and correspond to their actions, making the pattern predictable and readable.

Tool Count5/5

With 8 tools, the set is well-scoped for a WhatsApp utility server. Each tool covers a different practical need (links, QR, validation, cost, limits, rates, widget) without redundancy, and the count is neither thin nor overwhelming.

Completeness5/5

The tool surface covers the core WhatsApp utility workflows: generating click-to-chat links (single and bulk), QR codes, phone validation, cost estimation, and reference lookups for limits and rates. It intentionally avoids message sending (stated clearly), so there are no dead ends or obvious gaps within its stated purpose.

Available Tools

8 tools
build_whatsapp_share_widgetAInspect

Build embeddable "Share on WhatsApp" widget HTML (web and email variants) with a link preview card and a pre-filled message. Returns self-contained HTML.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL being shared.
titleYesTitle shown on the preview card.
domainNoDomain label shown on the card (optional).
thumbnailNoPreview image URL (optional).
buttonTextNoCall-to-action button text (optional; defaults to "Share on WhatsApp").
descriptionYesMessage text shown above the card (supports *bold*, _italic_, ~strike~).
includeCreditNoAppend a small "Widget by wha.tools" credit line under the widget (optional; default false).
buttonPlacementNoWhere to place the share button relative to the card (optional).

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description must carry the full transparency burden. It discloses that the tool builds HTML, includes a preview card and pre-filled message, and returns self-contained HTML. However, it leaves 'web and email variants' vague—no parameter controls the variant—and doesn't describe potential external dependencies or defaults.

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?

One dense sentence that front-loads the core function ('Build embeddable Share on WhatsApp widget HTML') and ends with the output type. No filler words; every phrase 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?

Given the tool has 8 parameters, no output schema, and no annotations, the description provides a high-level purpose and output, but omits how the 'web and email variants' are selected and offers no usage context beyond a builder. It is minimally adequate but has 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 parameters are already well-documented (e.g., 'description' supports bold/italic/strikethrough). The description's 'pre-filled message' adds only minimal extra meaning, so a baseline score of 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 'Build' with a clear resource 'embeddable Share on WhatsApp widget HTML' and specifies the output ('Returns self-contained HTML'). This clearly distinguishes it from siblings like generate_whatsapp_link, which produce links rather than widget markup.

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 through 'embeddable' and 'web and email variants', suggesting it's for embedding share buttons, but it never explicitly states when to choose this tool over generate_whatsapp_link or when not to use it. No alternatives are named.

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

estimate_whatsapp_api_costAInspect

Estimate the monthly WhatsApp Business (Cloud) API cost under Meta's per-message pricing (in effect since 1 July 2025). Given a country/market and monthly volumes of marketing, utility, authentication and (optionally) service messages, returns an itemized breakdown and total in USD. Marketing is always billed; utility and authentication are billed with volume-tier discounts in many markets. As of 1 October 2026 utility is billed even inside the customer-service window (previously free there), and service messages are billed at the utility rate with the first 1,000 per phone number each month free. Pass service to include them; omit it to leave service out. Runs locally. This is Meta's platform fee only: a BSP/provider adds its own fee on top, so treat it as a floor, not a quote.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYesRecipient market as a 2-letter code (e.g. "US", "IN", "BR", "GB", "DE"), or "ROW" for rest of world. Rates vary widely by market.
serviceNoMonthly count of service messages (free-form replies inside a customer-opened window). Optional. When given, the first 1,000 per phone number each month are free and the rest bill at the market's utility rate; omit to leave service out of the estimate.
utilityNoMonthly count of utility template messages (order updates, receipts, reminders).
marketingNoMonthly count of marketing template messages (promotions, offers).
authenticationNoMonthly count of authentication template messages (one-time passcodes).

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries full burden and exceeds it: it discloses the billing changes ('As of 1 October 2026 utility is billed even inside the customer-service window'), the volume-tier discounts, the free tier for service messages, and the fact that the calculation runs locally. It also sets expectations about the output being a floor, not a quote. This is comprehensive behavioral disclosure for a local calculator.

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 dense paragraph, but every sentence earns its place: purpose, billing rules, parameter handling, execution, and a caveat. It is technically longer than ideal, yet not bloated—each clause adds necessary information. The front-loaded purpose makes it scannable despite its length.

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 calculator with five parameters and no output schema, the description adequately covers output ('itemized breakdown and total in USD'), parameter semantics, and edge cases (optional service, market variants). It doesn't describe the exact breakdown structure or rounding behavior, but that is minor given the tool's straightforward nature and the absence of an output schema requirement.

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?

Although schema coverage is 100%, the description adds meaningful context beyond the field descriptions: it clarifies that marketing is always billed, utility/authentication have tier discounts, and service messages follow a specific free-1000 rule. The 'market' parameter's locality is also contextualized in the billing rules. Structural schema already defines enums/labels, so the added value is the pricing logic, which is significant.

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 verb ('Estimate') and resource ('monthly WhatsApp Business (Cloud) API cost'), and clearly differentiates from siblings like get_whatsapp_rates and get_whatsapp_limits by focusing on cost estimation with billing rules and a USD total. It also mentions the specific pricing model (in effect since 1 July 2025), leaving no ambiguity about what the tool computes.

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 explains the tool's scope ('Meta's platform fee only ... treat it as a floor, not a quote') and which parameters to include (e.g., 'Pass `service` to include them; omit it to leave service out'). It does not explicitly contrast against sibling tools, but the use case is evident from the stated purpose and the note about running locally. Minor gap: no explicit 'use this instead of get_whatsapp_rates for a full cost projection'.

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

generate_whatsapp_qrAInspect

Generate a scannable QR code (as an SVG) for a WhatsApp click-to-chat link with an optional phone number and pre-filled message.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneNoRecipient phone number in international format (digits only; optional).
messageNoThe message to pre-fill in the chat (optional).

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the SVG output format but does not clarify whether the tool returns the SVG content, saves it to a file, or how it handles invalid phone numbers. Given the lack of safety annotations, more detail is needed.

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 front-loaded with the primary action and output type. It avoids extraneous details and is easy to scan.

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 has no output schema, so the description needs to explain what the caller receives. It states 'as an SVG' but doesn't clarify whether the return is the SVG string, a download link, or something else. For a simple tool with optional inputs, this is a minor but meaningful gap.

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 provides complete descriptions for both optional parameters (phone and message), so the description adds no additional meaning. Baseline of 3 is appropriate since schema coverage is 100%.

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: generating a scannable QR code as SVG for WhatsApp click-to-chat links. It specifies the output format (SVG) and optional parameters (phone, message), distinguishing it from sibling tools like generate_whatsapp_link which likely produces the link itself.

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 a QR code for a WhatsApp chat link is needed—but does not explicitly state when to prefer this over alternatives or mention any exclusions. It lacks explicit comparison to siblings, but the purpose is clear enough to infer intended use.

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

get_whatsapp_limitsAInspect

Look up WhatsApp's current limits and rules from the site's dated reference table: group and community size, broadcast lists, message and media/file sizes, character counts, forwarding, calls, Channels, linked devices, and WhatsApp Business app and Business API limits. Each value is single-sourced and dated. Returns the limits (optionally filtered to one area), the last-verified date, the source and the CC BY licence. Prefer this over recalling limits from memory. They change over time. Runs locally.

ParametersJSON Schema
NameRequiredDescriptionDefault
areaNoRestrict the result to one area (e.g. "groups", "messages", "calls", "channels", "account", "business", "api"). Optional; omit for every area.

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that the tool runs locally, returns limits with a last-verified date and source, includes a CC BY licence, and that values are single-sourced and dated. These are the key behavioral traits for a read-only lookup, though it does not address auth or error cases, which are less relevant here.

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?

Four sentences, each earning its place: the purpose, the content scope, the return payload and provenance, and the usage advice. Slightly long but information-dense with no redundancy.

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?

For a simple read-only tool with one optional parameter and no output schema, the description covers the operation, the return contents, the data source, licensing, local execution, and when to use it. Nothing essential for an agent to invoke it correctly is missing.

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 'area' parameter fully. The description only says 'optionally filtered to one area', which adds no meaning beyond the enum and description in the schema. Baseline 3 applies.

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?

States a specific verb ('look up'), a specific resource (WhatsApp's current limits and rules), and the source ('dated reference table'). Lists the areas covered, making the scope clear. It does not explicitly name sibling tools like get_whatsapp_rates, but the subject matter is distinct enough that an agent can tell them apart.

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?

Provides explicit guidance to prefer this tool over recalling limits from memory because limits change over time. This is a clear use case, though it does not mention alternatives or exclusions like when to use get_whatsapp_rates instead.

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

get_whatsapp_ratesAInspect

Look up Meta's official WhatsApp Business (Cloud) API per-message rates from the site's dated rate card, the same figures the pricing calculator uses, so prefer this over recalling or guessing prices. Give a market to get one row, or omit it for every market in the chosen currency. Returns the current list price per template category (marketing, utility, authentication, and authentication-international where a market has one), the currency, the effective and last-verified dates, the source link and the CC BY licence. Optionally include the published volume-tier thresholds and rates for a single market. This is Meta's platform fee only: a BSP/provider adds its own fee on top, so treat it as a floor. Runs locally.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketNoRecipient market as a 2-letter code (e.g. "US"/"NA", "IN", "BR", "GB", "DE") or a "Rest of" region id. Omit to return the whole rate card for the chosen currency.
currencyNoOne of the 16 currencies Meta publishes a card in (USD, EUR, GBP, INR, IDR, BRL, MXN, ARS, COP, AED, SAR, AUD, MYR, PEN, CLP, SGD). Rates are stored per currency exactly as Meta prints them, never converted. Optional, default USD.
include_tiersNoWhen a single market is given, also return that market's published volume-tier thresholds and per-band rates for utility and authentication. Ignored when no market is given. Optional, default false.

TDQS

A4.5/5.0
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. It discloses key behaviors: 'Runs locally,' 'Rates are stored per currency exactly as Meta prints them, never converted,' and 'This is Meta's platform fee only... treat it as a floor.' It does not mention error handling or side effects, but 'Look up' implies read-only behavior.

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

Conciseness5/5

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

The description is a single dense paragraph that flows logically: purpose, usage, output contents, optional tier behavior, and a caveat about fees. Each sentence adds new information, and there is no fluff or redundancy despite the length.

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 there is no output schema, the description adequately describes the return contents: per-message rates by template category, currency, effective/last-verified dates, source link, and CC BY licence. It also clarifies the scope (platform fee only, local execution), but could be slightly more precise about the data structure (e.g., list vs object).

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

Parameters5/5

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

Schema descriptions cover 100% of parameters, and the prose adds extra meaning: omitting market returns the whole card, include_tiers is ignored without a market, and currency rates are never converted. This goes beyond the basic enum descriptions, clarifying exactly how each parameter affects the output.

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: 'Look up Meta's official WhatsApp Business (Cloud) API per-message rates from the site's dated rate card.' It distinguishes itself from siblings by noting it provides the same figures used by the pricing calculator and 'Runs locally,' differentiating it from cost estimation tools.

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?

It provides usage instructions such as 'Give a market to get one row, or omit it for every market in the chosen currency' and explains the optional include_tiers behavior. It also advises to 'prefer this over recalling or guessing prices,' but does not explicitly mention when to use alternative tools like estimate_whatsapp_api_cost, though this is inferable from the sibling context.

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

validate_phone_numberAInspect

Validate and inspect a phone number with libphonenumber: whether it is valid (a real, allocated number) and/or possible (right length), its country, calling code, line type (mobile / landline / VoIP / toll-free / …) and every standard format (E.164, international, national) plus a wa.me link. Runs locally and offline. Does NOT check whether the number is registered on WhatsApp. There is no such API here.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYesThe phone number to validate. International format with a leading "+" is best; otherwise also pass `country`.
countryNoISO 3166-1 alpha-2 country code (e.g. "GB", "US") assumed when the number has no country code. Optional.

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden. It transparently states the tool runs locally and offline, performs read-only inspection, and explicitly lists its outputs. It also clarifies what it does NOT check, providing complete behavioral transparency.

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, structured sentence that front-loads the core action and then enumerates output items. It is dense but not verbose, and the formatting in the provided description is clean. It could be slightly more concise, but it is well organized.

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 absence of an output schema, the description adequately summarizes the return content, including validity, country, line type, formats, and the wa.me link. It also provides context about offline execution and what is not covered. It does not specify the exact output structure, but the summary is sufficient for an agent.

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

Parameters4/5

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

Schema description coverage is 100% for both parameters, and the tool description adds meaningful guidance beyond the schema, such as the 'leading +' best practice and the conditional need for `country`. This enrichment justifies a score above the baseline of 3.

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 purpose: validate and inspect a phone number using libphonenumber, covering validity, possibility, country, calling code, line type, and formats. This specific verb-resource pairing distinguishes it from sibling tools that focus on WhatsApp link generation and cost estimation.

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 useful usage guidance, including the recommendation to use a leading '+' or pass `country`, and explicitly states what it does not do (check WhatsApp registration). It could more directly contrast with sibling tools, but the negative statement and parameter hints make the appropriate use case clear.

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.

  1. 1 tool update
    • Changedestimate_whatsapp_api_cost1 field changed
      • addedInput schema / properties / service
        Added value: +{
        +  "description": "Monthly count of service messages (free-form replies inside a customer-opened window). Optional. When given, the first 1,000 per phone number each month are free and the rest bill at the market's utility rate; omit to leave service out of the estimate.",
        +  "type": "number"
        +}

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides comprehensive WhatsApp Business API functionality with 18 tools for sending messages, media, interactive buttons/lists, templates, reactions, and managing message status through the PyWA library.
    18
    3
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Bridges the WhatsApp HTTP API with AI assistants to enable full control over messaging, chat management, and interactive workflows through 63 specialized tools. It allows users to automate WhatsApp tasks and receive real-time AI feedback directly on their mobile devices.
    63
    18 npm
    5
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.