Meta Cloud API MCP Server

Meta Cloud API MCP Server

Enables Claude to manage WhatsApp templates, flows, and send messages through the WhatsApp Cloud API.

Category
Visit Server

README

<p align="center"> <img src="assets/README.svg" alt="Meta Cloud API" width="400"> </p>

<h1 align="center">Meta Cloud API MCP Server</h1>

<p align="center"> A Model Context Protocol (MCP) server that lets Claude manage WhatsApp templates, flows, and send messages through the WhatsApp Cloud API. </p>

<p align="center"> <a href="https://www.npmjs.com/package/meta-cloud-api-mcp"><img src="https://img.shields.io/npm/v/meta-cloud-api-mcp.svg" alt="npm version"></a> <a href="https://www.npmjs.com/package/meta-cloud-api"><img src="https://img.shields.io/badge/SDK-meta--cloud--api-blue" alt="SDK"></a> <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-brightgreen" alt="MCP Compatible"></a> <a href="https://github.com/froggy1014/meta-cloud-api-mcp/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License"></a> </p>


What is this?

This MCP server wraps the meta-cloud-api SDK, giving Claude (and other MCP-compatible clients) direct access to the WhatsApp Business Platform. You can ask Claude to:

  • "Create a welcome template in English and Spanish"
  • "List all my flows and publish the draft one"
  • "Send a template message to +1-555-123-4567"
  • "Update my business profile description"

Quick Start

1. Install

npm install -g meta-cloud-api-mcp

2. Get Your Credentials

You need three values from the Meta Developer Portal:

Variable Where to find it
CLOUD_API_ACCESS_TOKEN App Dashboard > WhatsApp > API Setup
WA_PHONE_NUMBER_ID App Dashboard > WhatsApp > API Setup > Phone number ID
WA_BUSINESS_ACCOUNT_ID App Dashboard > WhatsApp > API Setup > WhatsApp Business Account ID

3. Configure Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "whatsapp": {
      "command": "npx",
      "args": ["-y", "meta-cloud-api-mcp"],
      "env": {
        "CLOUD_API_ACCESS_TOKEN": "your_access_token",
        "WA_PHONE_NUMBER_ID": "your_phone_number_id",
        "WA_BUSINESS_ACCOUNT_ID": "your_business_account_id"
      }
    }
  }
}

4. Configure Claude Code

claude mcp add whatsapp -- npx -y meta-cloud-api-mcp

# Then set environment variables in your .claude/settings.json

Available Tools (31)

Templates (5 tools)

Tool Description
list_templates List templates with filters (name, status, category, language)
get_template Get a single template by ID with full component definition
create_template Create a new message template (MARKETING, UTILITY, AUTHENTICATION)
update_template Update template components (resubmits for review)
delete_template Delete a template by name or specific language version

Flows (8 tools)

Tool Description
list_flows List all flows for your WhatsApp Business Account
get_flow Get flow details including status and validation errors
create_flow Create a new flow (optionally with inline JSON or clone)
update_flow_metadata Update flow name, categories, or endpoint URI
update_flow_json Upload or update the flow JSON definition
delete_flow Delete a draft flow
publish_flow Publish a draft flow (makes it live)
deprecate_flow Deprecate a published flow (irreversible)

Messages (3 tools)

Tool Description
send_text_message Send a text message to a phone number
send_template_message Send a pre-approved template message
send_image_message Send an image (by media ID or public URL)

Media (4 tools)

Tool Description
get_media_info Get media metadata (URL, MIME type, size, hash)
upload_media Upload a file to WhatsApp (returns media ID)
delete_media Delete media from WhatsApp servers
download_media Download media content to a local file

Business Profile (2 tools)

Tool Description
get_business_profile Get profile (about, address, email, websites, etc.)
update_business_profile Update profile fields

WABA (3 tools)

Tool Description
get_waba_account Get account info (status, health, verification, limits)
subscribe_waba_webhook Subscribe to WABA webhooks with optional callback override
unsubscribe_waba_webhook Unsubscribe from WABA webhooks

Phone Numbers (4 tools)

Tool Description
get_phone_number Get phone number info (display number, quality, status)
list_phone_numbers List all phone numbers in the WABA
request_verification_code Request verification code via SMS or voice
verify_phone_code Verify phone number with received code

Registration (2 tools)

Tool Description
register_phone Register a phone number with a 6-digit PIN
deregister_phone Deregister a phone number

Example Conversations

Managing Templates:

"List all my approved marketing templates"

"Create a template called order_update with a body that says 'Your order has been confirmed. Order number: {{1}}'"

"Delete the old_promo template"

Managing Flows:

"Show me all my flows and their statuses"

"Create a new customer support flow called support_v2"

"Update the flow JSON for flow ID 12345 with this definition: { ... }"

"Publish flow 12345"

Sending Messages:

"Send 'Hello!' to +15551234567"

"Send the hello_world template in English to +15551234567"

Development

git clone https://github.com/froggy1014/meta-cloud-api-mcp.git
cd meta-cloud-api-mcp
npm install
npm run build

Testing with MCP Inspector

npx @modelcontextprotocol/inspector node dist/index.js

Set environment variables in the Inspector UI, then browse and test all 31 tools interactively.

Requirements

  • Node.js 18 or later
  • Meta Developer Account with WhatsApp Business API access
  • MCP-compatible client (Claude Desktop, Claude Code, etc.)

Related

License

MIT - see LICENSE for details.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured