@codespar/mcp-whatsapp-cloud 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -13
- package/dist/index.js +2 -2
- package/package.json +2 -2
- package/server.json +2 -2
- package/src/index.ts +2 -2
package/README.md
CHANGED
|
@@ -14,21 +14,32 @@ MCP server for the [WhatsApp Cloud API](https://developers.facebook.com/docs/wha
|
|
|
14
14
|
| take-blip | Brazilian BSP wrapper | Enterprise Brazil, CCaaS features |
|
|
15
15
|
| zenvia | Brazilian BSP wrapper | Brazil omnichannel (SMS + WhatsApp) |
|
|
16
16
|
|
|
17
|
-
## Tools
|
|
17
|
+
## Tools (22)
|
|
18
18
|
|
|
19
19
|
| Tool | Purpose |
|
|
20
|
-
|
|
21
|
-
| `send_text_message` | Send a plain text message |
|
|
22
|
-
| `send_template_message` | Send an approved template
|
|
23
|
-
| `send_media_message` | Send image, video, document, or audio
|
|
24
|
-
| `send_interactive_message` | Send reply buttons or list |
|
|
25
|
-
| `
|
|
26
|
-
| `
|
|
27
|
-
| `
|
|
28
|
-
| `
|
|
29
|
-
| `
|
|
30
|
-
| `
|
|
31
|
-
| `
|
|
20
|
+
|---|---|
|
|
21
|
+
| `send_text_message` | Send a plain text message. |
|
|
22
|
+
| `send_template_message` | Send an approved message template. |
|
|
23
|
+
| `send_media_message` | Send an image, video, document, or audio. |
|
|
24
|
+
| `send_interactive_message` | Send an interactive message (reply buttons or list). |
|
|
25
|
+
| `send_interactive_cta_url` | Send an interactive message with a single CTA URL button. |
|
|
26
|
+
| `send_interactive_flow` | Send a WhatsApp Flow message. |
|
|
27
|
+
| `send_location_message` | Send a location pin with latitude/longitude and optional name/address. |
|
|
28
|
+
| `send_contacts_message` | Send one or more contact cards (vCard-like). |
|
|
29
|
+
| `send_reaction_message` | Send an emoji reaction on a previously received/sent message. |
|
|
30
|
+
| `send_typing_indicator` | Show a typing indicator on a received message. |
|
|
31
|
+
| `mark_message_as_read` | Mark an incoming message as read so the sender sees the blue double-check. |
|
|
32
|
+
| `upload_media` | Upload a media file and get back a media_id reusable in send_media_message. |
|
|
33
|
+
| `retrieve_media_url` | Resolve a media_id to a short-lived downloadable URL. |
|
|
34
|
+
| `delete_media` | Delete an uploaded media asset by id. |
|
|
35
|
+
| `list_templates` | List message templates on the WhatsApp Business Account. |
|
|
36
|
+
| `create_template` | Submit a new template for Meta review. |
|
|
37
|
+
| `delete_template` | Delete a message template from the WABA by name. |
|
|
38
|
+
| `get_business_profile` | Read the WhatsApp business profile (about, description, email, websites, vertical, address) for the configu... |
|
|
39
|
+
| `update_business_profile` | Update the business profile on the configured phone number. |
|
|
40
|
+
| `list_phone_numbers` | List all phone numbers registered under the WhatsApp Business Account, including display name, quality rati... |
|
|
41
|
+
| `request_verification_code` | Request Meta to send a verification code to the configured phone number via SMS or voice. |
|
|
42
|
+
| `verify_code` | Submit the verification code received via SMS/voice after request_verification_code. |
|
|
32
43
|
|
|
33
44
|
## Install
|
|
34
45
|
|
package/dist/index.js
CHANGED
|
@@ -97,7 +97,7 @@ async function whatsappRequest(method, path, body, opts = {}) {
|
|
|
97
97
|
const text = await res.text();
|
|
98
98
|
return text ? JSON.parse(text) : {};
|
|
99
99
|
}
|
|
100
|
-
const server = new Server({ name: "mcp-whatsapp-cloud", version: "0.2.
|
|
100
|
+
const server = new Server({ name: "mcp-whatsapp-cloud", version: "0.2.1" }, { capabilities: { tools: {} } });
|
|
101
101
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
102
102
|
tools: [
|
|
103
103
|
{
|
|
@@ -686,7 +686,7 @@ async function main() {
|
|
|
686
686
|
const t = new StreamableHTTPServerTransport({ sessionIdGenerator: () => randomUUID(), onsessioninitialized: (id) => { transports.set(id, t); } });
|
|
687
687
|
t.onclose = () => { if (t.sessionId)
|
|
688
688
|
transports.delete(t.sessionId); };
|
|
689
|
-
const s = new Server({ name: "mcp-whatsapp-cloud", version: "0.2.
|
|
689
|
+
const s = new Server({ name: "mcp-whatsapp-cloud", version: "0.2.1" }, { capabilities: { tools: {} } });
|
|
690
690
|
server._requestHandlers.forEach((v, k) => s._requestHandlers.set(k, v));
|
|
691
691
|
server._notificationHandlers?.forEach((v, k) => s._notificationHandlers.set(k, v));
|
|
692
692
|
await s.connect(t);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codespar/mcp-whatsapp-cloud",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "MCP server for WhatsApp Cloud API (Meta direct)
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "MCP server for WhatsApp Cloud API (Meta direct) \u2014 official Graph API integration for messages, media, and templates",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"bin": {
|
package/server.json
CHANGED
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"source": "github",
|
|
8
8
|
"subfolder": "packages/communication/whatsapp-cloud"
|
|
9
9
|
},
|
|
10
|
-
"version": "0.2.
|
|
10
|
+
"version": "0.2.1",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"identifier": "@codespar/mcp-whatsapp-cloud",
|
|
15
|
-
"version": "0.2.
|
|
15
|
+
"version": "0.2.1",
|
|
16
16
|
"transport": {
|
|
17
17
|
"type": "stdio"
|
|
18
18
|
},
|
package/src/index.ts
CHANGED
|
@@ -114,7 +114,7 @@ async function whatsappRequest(
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
const server = new Server(
|
|
117
|
-
{ name: "mcp-whatsapp-cloud", version: "0.2.
|
|
117
|
+
{ name: "mcp-whatsapp-cloud", version: "0.2.1" },
|
|
118
118
|
{ capabilities: { tools: {} } }
|
|
119
119
|
);
|
|
120
120
|
|
|
@@ -684,7 +684,7 @@ async function main() {
|
|
|
684
684
|
if (!sid && isInitializeRequest(req.body)) {
|
|
685
685
|
const t = new StreamableHTTPServerTransport({ sessionIdGenerator: () => randomUUID(), onsessioninitialized: (id) => { transports.set(id, t); } });
|
|
686
686
|
t.onclose = () => { if (t.sessionId) transports.delete(t.sessionId); };
|
|
687
|
-
const s = new Server({ name: "mcp-whatsapp-cloud", version: "0.2.
|
|
687
|
+
const s = new Server({ name: "mcp-whatsapp-cloud", version: "0.2.1" }, { capabilities: { tools: {} } });
|
|
688
688
|
(server as unknown as { _requestHandlers: Map<unknown, unknown> })._requestHandlers.forEach((v, k) => (s as unknown as { _requestHandlers: Map<unknown, unknown> })._requestHandlers.set(k, v));
|
|
689
689
|
(server as unknown as { _notificationHandlers?: Map<unknown, unknown> })._notificationHandlers?.forEach((v, k) => (s as unknown as { _notificationHandlers: Map<unknown, unknown> })._notificationHandlers.set(k, v));
|
|
690
690
|
await s.connect(t);
|