@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 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 (required for business-initiated > 24h) |
23
- | `send_media_message` | Send image, video, document, or audio (link or media_id) |
24
- | `send_interactive_message` | Send reply buttons or list |
25
- | `send_location_message` | Send a latitude/longitude pin |
26
- | `mark_message_as_read` | Mark an inbound message as read |
27
- | `upload_media` | Upload a file and get a reusable media_id (multipart) |
28
- | `retrieve_media_url` | Resolve a media_id to a downloadable URL |
29
- | `delete_media` | Delete an uploaded media asset |
30
- | `list_templates` | List templates on the WABA |
31
- | `create_template` | Submit a new template for Meta review |
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.0" }, { capabilities: { tools: {} } });
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.0" }, { capabilities: { tools: {} } });
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.0",
4
- "description": "MCP server for WhatsApp Cloud API (Meta direct) official Graph API integration for messages, media, and templates",
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.0",
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.0",
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.0" },
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.0" }, { capabilities: { tools: {} } });
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);