Skip to main content
Glama

Draft a WhatsApp template

draft_whatsapp_template
Destructive

Stores a WhatsApp template draft for a number this account owns. Pass name, category, language, and body. Category and language codes come from the config in the result. Variables look like {{1}}. Pass examples in order. Pass draft_id to replace an open draft. This does not submit the template and does not charge.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "did_id": "<did_id>"
    },
    "name": "draft_whatsapp_template"
  }
}

Input Schema

NameRequiredDescriptionDefault
bodyNo
nameNo
did_idYes
footerNo
buttonsNo
purposeNo
categoryNoA category code from the config on a draft or list result.
draft_idNo
examplesNo
languageNoA language code from the config on a draft or list result.
componentsNo
header_textNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and non-idempotency, so the bar is lower, and the description adds genuinely new context: it does not submit, does not charge, and passing draft_id overwrites an open draft. The only gap is that it doesn't say what happens to an existing draft's fields when a partial replacement is made.

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 definition is short and front-loaded: purpose first, then parameter guidance, then behavioral caveats. The imperative fragments ('Pass name, category, language, and body.') are terse to the point of feeling like a checklist, but no sentence is wasted.

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?

With 12 parameters, no output schema and very low schema coverage, this tool needs more documentation than it gets — especially for buttons, components, header_text and footer, which are entirely unaddressed. Mentioning that category/language codes come from 'the config in the result' partially compensates for the missing output schema.

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

Parameters3/5

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

Schema coverage is only 17%, so the description carries most of the burden; it does explain name, category, language, body, examples ('in order') and draft_id, plus the {{1}} variable syntax convention. However, five parameters — footer, buttons, components, header_text and purpose — get no mention at all, and the required did_id is only indirectly referenced as 'a number this account owns'.

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 states a specific verb and resource ('Stores a WhatsApp template draft') and scopes it to 'a number this account owns', which separates it from template-submission tools by explicitly denying submission. It stops short of naming the sibling that does submit (submit_whatsapp_template) or the revision tool, so differentiation is implied rather than explicit.

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?

It gives one concrete usage condition ('Pass draft_id to replace an open draft') and rules out submission/charging, which is useful scoping. But it never says when to use this versus revise_whatsapp_template or submit_whatsapp_template, so the agent must infer the workflow position of a draft.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.