MCP tools — Templates
Six tools to list, inspect, create, update, delete, and sync WhatsApp templates with Meta.
Templates round-trip with Meta. Create and update tools submit to Meta; the approval state arrives asynchronously. Use sync_templates to pull the latest state.
| Tool | Annotation | Purpose |
|---|---|---|
list_templates |
IsReadOnly, IsIdempotent |
Filter by status / category |
get_template |
IsReadOnly, IsIdempotent |
All translations |
create_template |
IsDestructive(false) |
Submit new to Meta |
update_template |
IsDestructive(false), IsIdempotent |
Re-submit translations |
delete_template |
IsDestructive |
Delete on Meta + locally |
sync_templates |
IsDestructive(false), IsIdempotent |
Pull latest approval state |
list_templates
List WhatsApp message templates. Filter by approval status or category.
| Input | Type | Notes |
|---|---|---|
status |
string | APPROVED, PENDING, REJECTED |
category |
string | UTILITY, MARKETING, AUTHENTICATION |
page, per_page |
integer |
get_template
Get full template details including all translations with header, body, footer, buttons.
| Input | Type |
|---|---|
id |
UUID |
Returns every translation regardless of approval state.
create_template
Create a WhatsApp template and submit it to Meta for approval. Supports text headers and buttons (quick_reply, call_to_action_url, call_to_action_phone). For media headers (image/video/document) provide a public header_url. Use {{1}}, {{2}} placeholders in body/header for variables. Templates are created as pending until Meta approves them.
| Input | Type | Notes |
|---|---|---|
name |
string | snake_case, unique per tenant |
category |
string | UTILITY, MARKETING, AUTHENTICATION |
language |
string | en, fr, … |
body |
string | required, may contain {{1}}, {{2}} |
header_type |
string | TEXT, IMAGE, VIDEO, DOCUMENT (optional) |
header_content |
string | text for TEXT |
header_url |
string | required for IMAGE/VIDEO/DOCUMENT — must be public HTTPS |
footer |
string | up to 60 chars |
buttons |
array | `{type: 'quick_reply' |
Returns the created template with status: PENDING. Meta typically approves utility templates in minutes; marketing templates can take hours.
update_template
Update a template's translations (body, header, footer, buttons). Each provided translation is upserted by language; existing languages not in the payload are kept. Submits the changes back to Meta. Name and category cannot be changed on Meta.
Use this to add a new language, fix a typo, or re-submit a rejected translation.
delete_template
Delete a template both on Meta/360Dialog and locally. The template name will be released and can be reused after Meta processes the deletion.
IsDestructive — name release on Meta is asynchronous (a few minutes).
sync_templates
Force sync templates with Meta/360Dialog. Pulls latest statuses.
Use it after submitting a template to refresh its PENDING → APPROVED transition without waiting for the next scheduled sync.
