{"_id":"@codespar/mcp-whatsapp-cloud","_rev":"5-6c894bd9e193487409eb3b056235707a","name":"@codespar/mcp-whatsapp-cloud","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"@codespar/mcp-whatsapp-cloud","version":"0.1.0","keywords":["mcp","whatsapp","whatsapp-cloud","meta","graph-api","messaging","waba","business"],"license":"MIT","_id":"@codespar/mcp-whatsapp-cloud@0.1.0","maintainers":[{"name":"codespar-npm","email":"contact@codespar.dev"}],"bin":{"mcp-whatsapp-cloud":"dist/index.js"},"dist":{"shasum":"4932d1cb7d69e7890fb1dd91d004d5705028f250","tarball":"https://registry.npmjs.org/@codespar/mcp-whatsapp-cloud/-/mcp-whatsapp-cloud-0.1.0.tgz","fileCount":6,"integrity":"sha512-psXOnEP9lrkTIQdk+MYn02x0X1VRxClQ6QTyXAGAXBJ1cI+fu1YhahN3OCqlGckJhpMVBuZnbNetr6NwcOfVqA==","signatures":[{"sig":"MEUCIEPZiO8SCii58L2AhGWY8tTcRg7ucaF/0c1vBN2Juw8uAiEAz+56GNJMjnyT0L8cB4XPeRursQxAXyWKnDrB/uFDdtY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47762},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"9529bebc044ae16a46a6722419594f660d719c2e","mcpName":"io.github.codespar/mcp-whatsapp-cloud","scripts":{"build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"codespar-npm","email":"contact@codespar.dev"},"_npmVersion":"11.8.0","description":"MCP server for WhatsApp Cloud API (Meta direct) — official Graph API integration for messages, media, and templates","directories":{},"_nodeVersion":"25.5.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-whatsapp-cloud_0.1.0_1777031872691_0.7425489422030085","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@codespar/mcp-whatsapp-cloud","version":"0.2.0","keywords":["mcp","whatsapp","whatsapp-cloud","meta","graph-api","messaging","waba","business"],"license":"MIT","_id":"@codespar/mcp-whatsapp-cloud@0.2.0","maintainers":[{"name":"codespar-npm","email":"contact@codespar.dev"}],"bin":{"mcp-whatsapp-cloud":"dist/index.js"},"dist":{"shasum":"565afa1fba6ebcf3bfa9fabed55b9bfe1525c3ff","tarball":"https://registry.npmjs.org/@codespar/mcp-whatsapp-cloud/-/mcp-whatsapp-cloud-0.2.0.tgz","fileCount":6,"integrity":"sha512-SEb8Qz+oJPmCBJyHMFSh253cqrS3P0YrHrpMAjAY8lm4ayQy6ZHOL3a3kQ7WYOiqwGj8+eQzAuLUy12DmkqJNg==","signatures":[{"sig":"MEYCIQCyYBVI9W+xFRemp9Zj4fkucBLHarOqjYDH/rvn02ErrQIhAO0cJWP7KU0SI/8tK3MJaLKQL2VbR+hvy20swidmmOAu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76318},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"4e5eee18d53ee8475a69a3fb27a8d2cde35c99f9","mcpName":"io.github.codespar/mcp-whatsapp-cloud","scripts":{"build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"codespar-npm","email":"contact@codespar.dev"},"_npmVersion":"11.8.0","description":"MCP server for WhatsApp Cloud API (Meta direct) — official Graph API integration for messages, media, and templates","directories":{},"_nodeVersion":"25.5.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-whatsapp-cloud_0.2.0_1777042154728_0.2598799889625496","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@codespar/mcp-whatsapp-cloud","version":"0.2.1","keywords":["mcp","whatsapp","whatsapp-cloud","meta","graph-api","messaging","waba","business"],"license":"MIT","_id":"@codespar/mcp-whatsapp-cloud@0.2.1","maintainers":[{"name":"codespar-npm","email":"contact@codespar.dev"}],"bin":{"mcp-whatsapp-cloud":"dist/index.js"},"dist":{"shasum":"550795ce6d9c3957c97824b6a44d55bd41248757","tarball":"https://registry.npmjs.org/@codespar/mcp-whatsapp-cloud/-/mcp-whatsapp-cloud-0.2.1.tgz","fileCount":6,"integrity":"sha512-KVSA3H6Vkk0MMLCVrSA7k5zQqPn47bd/OUnOGCsI19OGQMunGaXeAiLvfgq/2wL0C+cVKsWLjEQoF2xCwNB8AA==","signatures":[{"sig":"MEQCIB0pqhkYenq5Cv9544kRFHce0iiHy9QFqKKHClanoJENAiArKNsfOBwQsv/0iglxuWvirr3wlA94qvt4dHOoRBb0pQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77522},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"0ab801a863239f0cb986bbda65abbaee3c621b44","mcpName":"io.github.codespar/mcp-whatsapp-cloud","scripts":{"build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"codespar-npm","email":"contact@codespar.dev"},"_npmVersion":"11.8.0","description":"MCP server for WhatsApp Cloud API (Meta direct) — official Graph API integration for messages, media, and templates","directories":{},"_nodeVersion":"25.5.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-whatsapp-cloud_0.2.1_1777122991463_0.80082744377394","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@codespar/mcp-whatsapp-cloud","version":"0.2.2","description":"MCP server for WhatsApp Cloud API (Meta direct) — official Graph API integration for messages, media, and templates","type":"module","main":"./dist/index.js","bin":{"mcp-whatsapp-cloud":"dist/index.js"},"scripts":{"build":"tsc","start":"node dist/index.js"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"devDependencies":{"@types/node":"^25.5.0","typescript":"^5.8.0"},"license":"MIT","keywords":["mcp","whatsapp","whatsapp-cloud","meta","graph-api","messaging","waba","business"],"mcpName":"io.github.codespar/mcp-whatsapp-cloud","_id":"@codespar/mcp-whatsapp-cloud@0.2.2","gitHead":"e8f2ad023876683538fe7b66a2fc88ab8d8ef92f","types":"./dist/index.d.ts","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-4tjJ7w/DKApEXe98y0AubupMvz0x6unGv+iFl80ZbR3hl5t2PRQf1qSXZwsse4t50aPkiM2bTVYZ13Khhz7Ekg==","shasum":"24863fe5d201eb37fd08cd4872358f3ed5bbc9db","tarball":"https://registry.npmjs.org/@codespar/mcp-whatsapp-cloud/-/mcp-whatsapp-cloud-0.2.2.tgz","fileCount":6,"unpackedSize":79057,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC9EV7E0Nh/8TQenEc1J2MED6hzzD0uUiS3sU6bVwrEJQIhANtyuT09pfnKt3Gq0G6aYZz+JtE6vPQnj+bU3MiRR0IY"}]},"_npmUser":{"name":"codespar-npm","email":"fabiano@codespar.dev"},"directories":{},"maintainers":[{"name":"codespar-npm","email":"fabiano@codespar.dev"},{"name":"dangazineu","email":"daniel.gazineu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-whatsapp-cloud_0.2.2_1782153479229_0.17190748322423843"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-24T11:57:52.595Z","modified":"2026-06-22T18:37:59.487Z","0.1.0":"2026-04-24T11:57:52.847Z","0.2.0":"2026-04-24T14:49:14.864Z","0.2.1":"2026-04-25T13:16:31.593Z","0.2.2":"2026-06-22T18:37:59.364Z"},"license":"MIT","keywords":["mcp","whatsapp","whatsapp-cloud","meta","graph-api","messaging","waba","business"],"description":"MCP server for WhatsApp Cloud API (Meta direct) — official Graph API integration for messages, media, and templates","maintainers":[{"name":"codespar-npm","email":"fabiano@codespar.dev"},{"name":"dangazineu","email":"daniel.gazineu@gmail.com"}],"readme":"# @codespar/mcp-whatsapp-cloud\n\nMCP server for the [WhatsApp Cloud API](https://developers.facebook.com/docs/whatsapp/cloud-api) — Meta's official WhatsApp Business API, self-hosted on Meta infrastructure.\n\n**Direct Meta integration.** No middleman, no provider markup. For merchants with an approved WhatsApp Business Account (WABA) who want Meta-direct pricing and full control over conversation, pricing category, and template lifecycle.\n\n## WhatsApp servers in this catalog\n\n| Server | What it is | When to pick it |\n|--------|------------|-----------------|\n| **whatsapp-cloud** (this) | Direct Meta Cloud API | Large merchants with approved WABA; lower cost at scale, no intermediary fees |\n| z-api | Wrapper on top of Meta Cloud | Easy onboarding, instant QR-pair, extra helpers |\n| evolution-api | Open-source wrapper | Self-hosted, community-driven |\n| take-blip | Brazilian BSP wrapper | Enterprise Brazil, CCaaS features |\n| zenvia | Brazilian BSP wrapper | Brazil omnichannel (SMS + WhatsApp) |\n\n## Tools (22)\n\n| Tool | Purpose |\n|---|---|\n| `send_text_message` | Send a plain text message. |\n| `send_template_message` | Send an approved message template. |\n| `send_media_message` | Send an image, video, document, or audio. |\n| `send_interactive_message` | Send an interactive message (reply buttons or list). |\n| `send_interactive_cta_url` | Send an interactive message with a single CTA URL button. |\n| `send_interactive_flow` | Send a WhatsApp Flow message. |\n| `send_location_message` | Send a location pin with latitude/longitude and optional name/address. |\n| `send_contacts_message` | Send one or more contact cards (vCard-like). |\n| `send_reaction_message` | Send an emoji reaction on a previously received/sent message. |\n| `send_typing_indicator` | Show a typing indicator on a received message. |\n| `mark_message_as_read` | Mark an incoming message as read so the sender sees the blue double-check. |\n| `upload_media` | Upload a media file and get back a media_id reusable in send_media_message. |\n| `retrieve_media_url` | Resolve a media_id to a short-lived downloadable URL. |\n| `delete_media` | Delete an uploaded media asset by id. |\n| `list_templates` | List message templates on the WhatsApp Business Account. |\n| `create_template` | Submit a new template for Meta review. |\n| `delete_template` | Delete a message template from the WABA by name. |\n| `get_business_profile` | Read the WhatsApp business profile (about, description, email, websites, vertical, address) for the configu... |\n| `update_business_profile` | Update the business profile on the configured phone number. |\n| `list_phone_numbers` | List all phone numbers registered under the WhatsApp Business Account, including display name, quality rati... |\n| `request_verification_code` | Request Meta to send a verification code to the configured phone number via SMS or voice. |\n| `verify_code` | Submit the verification code received via SMS/voice after request_verification_code. |\n\n## Install\n\n```bash\nnpm install @codespar/mcp-whatsapp-cloud\n```\n\n## Environment\n\n```bash\nWHATSAPP_ACCESS_TOKEN=\"EAAG...\"           # required (secret) — Meta system-user token\nWHATSAPP_PHONE_NUMBER_ID=\"1234567890\"     # required — WABA phone number id\nWHATSAPP_BUSINESS_ACCOUNT_ID=\"9876543210\" # required — WABA id (for templates)\nWHATSAPP_GRAPH_VERSION=\"v21.0\"            # optional — Meta bumps quarterly\n```\n\n## Authentication\n\nBearer token against the Graph API. Use a **permanent system-user token** from Meta Business Manager — user access tokens expire and will break production.\n\n```\nAuthorization: Bearer <WHATSAPP_ACCESS_TOKEN>\n```\n\n## Messaging rules (important)\n\n- **Customer-service window** — You can freely send any message type for 24h after the user last messaged you.\n- **Business-initiated** — Outside that window you must send an approved **template**. Use `send_template_message` with a name + language + components.\n- **Templates** — Create with `create_template`, wait for Meta approval (minutes to hours), then use.\n- Phone numbers are **E.164 without the leading `+`** (e.g. `5511999999999`).\n\n## Media\n\nTwo paths:\n\n1. **Public URL** — pass `link` to `send_media_message`. Fastest, but Meta fetches on every send.\n2. **Uploaded media_id** — call `upload_media` once, reuse `id` on subsequent sends. Recommended for catalog assets.\n\nUploaded media expires after ~30 days.\n\n## Interactive messages\n\n`send_interactive_message` expects a fully-formed `interactive` object. Example button payload:\n\n```json\n{\n  \"type\": \"button\",\n  \"body\": { \"text\": \"Confirma seu pedido?\" },\n  \"action\": {\n    \"buttons\": [\n      { \"type\": \"reply\", \"reply\": { \"id\": \"confirm\", \"title\": \"Confirmar\" } },\n      { \"type\": \"reply\", \"reply\": { \"id\": \"cancel\", \"title\": \"Cancelar\" } }\n    ]\n  }\n}\n```\n\nSee the [Cloud API interactive reference](https://developers.facebook.com/docs/whatsapp/cloud-api/guides/send-message-templates) for list payloads.\n\n## Run\n\n```bash\n# stdio (default — for Claude Desktop, Cursor, etc)\nnpx @codespar/mcp-whatsapp-cloud\n\n# HTTP (for server-to-server)\nMCP_HTTP=true MCP_PORT=3000 npx @codespar/mcp-whatsapp-cloud\n```\n\n## Enterprise\n\nNeed governance, budget limits, and audit trails for agent payments? [CodeSpar Enterprise](https://codespar.dev/enterprise) adds policy engine, payment routing, and compliance templates on top of these MCP servers.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}