@zavudev/sdk-mcp 0.14.0 → 0.15.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 +3 -0
- package/code-tool.d.mts.map +1 -1
- package/code-tool.d.ts.map +1 -1
- package/code-tool.js +4 -1
- package/code-tool.js.map +1 -1
- package/code-tool.mjs +4 -1
- package/code-tool.mjs.map +1 -1
- package/package.json +2 -2
- package/server.js +1 -1
- package/server.mjs +1 -1
- package/src/code-tool.ts +4 -1
- package/src/server.ts +1 -1
- package/src/tools/index.ts +6 -0
- package/src/tools/senders/create-senders.ts +1 -1
- package/src/tools/senders/get-profile-senders.ts +54 -0
- package/src/tools/senders/list-senders.ts +1 -1
- package/src/tools/senders/retrieve-senders.ts +1 -1
- package/src/tools/senders/update-profile-senders.ts +107 -0
- package/src/tools/senders/update-senders.ts +1 -1
- package/src/tools/senders/upload-profile-picture-senders.ts +63 -0
- package/tools/index.d.mts.map +1 -1
- package/tools/index.d.ts.map +1 -1
- package/tools/index.js +6 -0
- package/tools/index.js.map +1 -1
- package/tools/index.mjs +6 -0
- package/tools/index.mjs.map +1 -1
- package/tools/senders/create-senders.js +1 -1
- package/tools/senders/create-senders.js.map +1 -1
- package/tools/senders/create-senders.mjs +1 -1
- package/tools/senders/create-senders.mjs.map +1 -1
- package/tools/senders/get-profile-senders.d.mts +51 -0
- package/tools/senders/get-profile-senders.d.mts.map +1 -0
- package/tools/senders/get-profile-senders.d.ts +51 -0
- package/tools/senders/get-profile-senders.d.ts.map +1 -0
- package/tools/senders/get-profile-senders.js +54 -0
- package/tools/senders/get-profile-senders.js.map +1 -0
- package/tools/senders/get-profile-senders.mjs +47 -0
- package/tools/senders/get-profile-senders.mjs.map +1 -0
- package/tools/senders/list-senders.js +1 -1
- package/tools/senders/list-senders.js.map +1 -1
- package/tools/senders/list-senders.mjs +1 -1
- package/tools/senders/list-senders.mjs.map +1 -1
- package/tools/senders/retrieve-senders.js +1 -1
- package/tools/senders/retrieve-senders.js.map +1 -1
- package/tools/senders/retrieve-senders.mjs +1 -1
- package/tools/senders/retrieve-senders.mjs.map +1 -1
- package/tools/senders/update-profile-senders.d.mts +51 -0
- package/tools/senders/update-profile-senders.d.mts.map +1 -0
- package/tools/senders/update-profile-senders.d.ts +51 -0
- package/tools/senders/update-profile-senders.d.ts.map +1 -0
- package/tools/senders/update-profile-senders.js +105 -0
- package/tools/senders/update-profile-senders.js.map +1 -0
- package/tools/senders/update-profile-senders.mjs +98 -0
- package/tools/senders/update-profile-senders.mjs.map +1 -0
- package/tools/senders/update-senders.js +1 -1
- package/tools/senders/update-senders.js.map +1 -1
- package/tools/senders/update-senders.mjs +1 -1
- package/tools/senders/update-senders.mjs.map +1 -1
- package/tools/senders/upload-profile-picture-senders.d.mts +51 -0
- package/tools/senders/upload-profile-picture-senders.d.mts.map +1 -0
- package/tools/senders/upload-profile-picture-senders.d.ts +51 -0
- package/tools/senders/upload-profile-picture-senders.d.ts.map +1 -0
- package/tools/senders/upload-profile-picture-senders.js +61 -0
- package/tools/senders/upload-profile-picture-senders.js.map +1 -0
- package/tools/senders/upload-profile-picture-senders.mjs +54 -0
- package/tools/senders/upload-profile-picture-senders.mjs.map +1 -0
package/README.md
CHANGED
|
@@ -273,7 +273,10 @@ The following tools are available in this MCP server.
|
|
|
273
273
|
- `update_senders` (`write`): Update sender
|
|
274
274
|
- `list_senders` (`read`): List senders
|
|
275
275
|
- `delete_senders` (`write`): Delete sender
|
|
276
|
+
- `get_profile_senders` (`read`): Get the WhatsApp Business profile for a sender. The sender must have a WhatsApp Business Account connected.
|
|
276
277
|
- `regenerate_webhook_secret_senders` (`write`): Regenerate the webhook secret for a sender. The old secret will be invalidated immediately.
|
|
278
|
+
- `update_profile_senders` (`write`): Update the WhatsApp Business profile for a sender. The sender must have a WhatsApp Business Account connected.
|
|
279
|
+
- `upload_profile_picture_senders` (`write`): Upload a new profile picture for the WhatsApp Business profile. The image will be uploaded to Meta and set as the profile picture.
|
|
277
280
|
|
|
278
281
|
### Resource `contacts`:
|
|
279
282
|
|
package/code-tool.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-tool.d.mts","sourceRoot":"","sources":["src/code-tool.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,cAAc,EAAuB;AAIxD;;;;;;;;GAQG;AACH,wBAAsB,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQF,OAAO,QAAQ,GAAG,KAAG,OAAO,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"code-tool.d.mts","sourceRoot":"","sources":["src/code-tool.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,cAAc,EAAuB;AAIxD;;;;;;;;GAQG;AACH,wBAAsB,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQF,OAAO,QAAQ,GAAG,KAAG,OAAO,CAAC,cAAc,CAAC;GAsCvE"}
|
package/code-tool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-tool.d.ts","sourceRoot":"","sources":["src/code-tool.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,cAAc,EAAuB;AAIxD;;;;;;;;GAQG;AACH,wBAAsB,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQF,OAAO,QAAQ,GAAG,KAAG,OAAO,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"code-tool.d.ts","sourceRoot":"","sources":["src/code-tool.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,cAAc,EAAuB;AAIxD;;;;;;;;GAQG;AACH,wBAAsB,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQF,OAAO,QAAQ,GAAG,KAAG,OAAO,CAAC,cAAc,CAAC;GAsCvE"}
|
package/code-tool.js
CHANGED
|
@@ -31,7 +31,10 @@ async function codeTool() {
|
|
|
31
31
|
headers: {
|
|
32
32
|
...(stainlessAPIKey && { Authorization: stainlessAPIKey }),
|
|
33
33
|
'Content-Type': 'application/json',
|
|
34
|
-
client_envs: JSON.stringify({
|
|
34
|
+
client_envs: JSON.stringify({
|
|
35
|
+
ZAVUDEV_API_KEY: (0, server_1.readEnv)('ZAVUDEV_API_KEY'),
|
|
36
|
+
ZAVUDEV_BASE_URL: (0, server_1.readEnv)('ZAVUDEV_BASE_URL'),
|
|
37
|
+
}),
|
|
35
38
|
},
|
|
36
39
|
body: JSON.stringify({
|
|
37
40
|
project_name: 'zavudev',
|
package/code-tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-tool.js","sourceRoot":"","sources":["src/code-tool.ts"],"names":[],"mappings":";AAAA,sFAAsF;;AAetF,
|
|
1
|
+
{"version":3,"file":"code-tool.js","sourceRoot":"","sources":["src/code-tool.ts"],"names":[],"mappings":";AAAA,sFAAsF;;AAetF,4BA8CC;AA3DD,4CAA8E;AAE9E,wCAAmC;AAEnC;;;;;;;;GAQG;AACI,KAAK,UAAU,QAAQ;IAC5B,MAAM,QAAQ,GAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC7E,MAAM,IAAI,GAAS;QACjB,IAAI,EAAE,SAAS;QACf,WAAW,EACT,iiCAAiiC;QACniC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;KAC1E,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,EAAE,CAAU,EAAE,IAAS,EAA2B,EAAE;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAC;QAEjC,sFAAsF;QACtF,sFAAsF;QACtF,MAAM,eAAe,GAAG,IAAA,gBAAO,EAAC,mBAAmB,CAAC,CAAC;QACrD,MAAM,gBAAgB,GACpB,IAAA,gBAAO,EAAC,wBAAwB,CAAC,IAAI,4CAA4C,CAAC;QAEpF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE;YACxC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,GAAG,CAAC,eAAe,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;gBAC1D,cAAc,EAAE,kBAAkB;gBAClC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;oBAC1B,eAAe,EAAE,IAAA,gBAAO,EAAC,iBAAiB,CAAC;oBAC3C,gBAAgB,EAAE,IAAA,gBAAO,EAAC,kBAAkB,CAAC;iBAC9C,CAAC;aACH;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,YAAY,EAAE,SAAS;gBACvB,WAAW,EAAE,EAAE;gBACf,IAAI;aACL,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,GAAG,GAAG,CAAC,MAAM,KACX,GAAG,CAAC,UACN,4DAA4D,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAC/E,CAAC;QACJ,CAAC;QAED,OAAO,IAAA,2BAAmB,EAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAkB,CAAC,CAAC;IAClE,CAAC,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACrC,CAAC"}
|
package/code-tool.mjs
CHANGED
|
@@ -28,7 +28,10 @@ export async function codeTool() {
|
|
|
28
28
|
headers: {
|
|
29
29
|
...(stainlessAPIKey && { Authorization: stainlessAPIKey }),
|
|
30
30
|
'Content-Type': 'application/json',
|
|
31
|
-
client_envs: JSON.stringify({
|
|
31
|
+
client_envs: JSON.stringify({
|
|
32
|
+
ZAVUDEV_API_KEY: readEnv('ZAVUDEV_API_KEY'),
|
|
33
|
+
ZAVUDEV_BASE_URL: readEnv('ZAVUDEV_BASE_URL'),
|
|
34
|
+
}),
|
|
32
35
|
},
|
|
33
36
|
body: JSON.stringify({
|
|
34
37
|
project_name: 'zavudev',
|
package/code-tool.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-tool.mjs","sourceRoot":"","sources":["src/code-tool.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAA4B,mBAAmB,EAAE;OAEjD,EAAE,OAAO,EAAE;AAElB;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,MAAM,QAAQ,GAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC7E,MAAM,IAAI,GAAS;QACjB,IAAI,EAAE,SAAS;QACf,WAAW,EACT,iiCAAiiC;QACniC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;KAC1E,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,EAAE,CAAU,EAAE,IAAS,EAA2B,EAAE;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAC;QAEjC,sFAAsF;QACtF,sFAAsF;QACtF,MAAM,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACrD,MAAM,gBAAgB,GACpB,OAAO,CAAC,wBAAwB,CAAC,IAAI,4CAA4C,CAAC;QAEpF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE;YACxC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,GAAG,CAAC,eAAe,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;gBAC1D,cAAc,EAAE,kBAAkB;gBAClC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"code-tool.mjs","sourceRoot":"","sources":["src/code-tool.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAA4B,mBAAmB,EAAE;OAEjD,EAAE,OAAO,EAAE;AAElB;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,MAAM,QAAQ,GAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC7E,MAAM,IAAI,GAAS;QACjB,IAAI,EAAE,SAAS;QACf,WAAW,EACT,iiCAAiiC;QACniC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;KAC1E,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,EAAE,CAAU,EAAE,IAAS,EAA2B,EAAE;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAC;QAEjC,sFAAsF;QACtF,sFAAsF;QACtF,MAAM,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACrD,MAAM,gBAAgB,GACpB,OAAO,CAAC,wBAAwB,CAAC,IAAI,4CAA4C,CAAC;QAEpF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE;YACxC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,GAAG,CAAC,eAAe,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;gBAC1D,cAAc,EAAE,kBAAkB;gBAClC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;oBAC1B,eAAe,EAAE,OAAO,CAAC,iBAAiB,CAAC;oBAC3C,gBAAgB,EAAE,OAAO,CAAC,kBAAkB,CAAC;iBAC9C,CAAC;aACH;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,YAAY,EAAE,SAAS;gBACvB,WAAW,EAAE,EAAE;gBACf,IAAI;aACL,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,GAAG,GAAG,CAAC,MAAM,KACX,GAAG,CAAC,UACN,4DAA4D,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAC/E,CAAC;QACJ,CAAC;QAED,OAAO,mBAAmB,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAkB,CAAC,CAAC;IAClE,CAAC,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACrC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zavudev/sdk-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.1",
|
|
4
4
|
"description": "The official MCP Server for the Zavudev API",
|
|
5
5
|
"author": "Zavudev <hi@zavu.dev>",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"access": "public"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@zavudev/sdk": "^0.
|
|
21
|
+
"@zavudev/sdk": "^0.15.1",
|
|
22
22
|
"@cloudflare/cabidela": "^0.2.4",
|
|
23
23
|
"@modelcontextprotocol/sdk": "^1.24.0",
|
|
24
24
|
"@valtown/deno-http-worker": "^0.0.21",
|
package/server.js
CHANGED
|
@@ -22,7 +22,7 @@ var tools_2 = require("./tools.js");
|
|
|
22
22
|
Object.defineProperty(exports, "endpoints", { enumerable: true, get: function () { return tools_2.endpoints; } });
|
|
23
23
|
const newMcpServer = () => new mcp_js_1.McpServer({
|
|
24
24
|
name: 'zavudev_sdk_api',
|
|
25
|
-
version: '0.
|
|
25
|
+
version: '0.15.1',
|
|
26
26
|
}, { capabilities: { tools: {}, logging: {} } });
|
|
27
27
|
exports.newMcpServer = newMcpServer;
|
|
28
28
|
// Create server instance
|
package/server.mjs
CHANGED
|
@@ -11,7 +11,7 @@ export { ClientType } from "./compat.mjs";
|
|
|
11
11
|
export { endpoints } from "./tools.mjs";
|
|
12
12
|
export const newMcpServer = () => new McpServer({
|
|
13
13
|
name: 'zavudev_sdk_api',
|
|
14
|
-
version: '0.
|
|
14
|
+
version: '0.15.1',
|
|
15
15
|
}, { capabilities: { tools: {}, logging: {} } });
|
|
16
16
|
// Create server instance
|
|
17
17
|
export const server = newMcpServer();
|
package/src/code-tool.ts
CHANGED
|
@@ -35,7 +35,10 @@ export async function codeTool() {
|
|
|
35
35
|
headers: {
|
|
36
36
|
...(stainlessAPIKey && { Authorization: stainlessAPIKey }),
|
|
37
37
|
'Content-Type': 'application/json',
|
|
38
|
-
client_envs: JSON.stringify({
|
|
38
|
+
client_envs: JSON.stringify({
|
|
39
|
+
ZAVUDEV_API_KEY: readEnv('ZAVUDEV_API_KEY'),
|
|
40
|
+
ZAVUDEV_BASE_URL: readEnv('ZAVUDEV_BASE_URL'),
|
|
41
|
+
}),
|
|
39
42
|
},
|
|
40
43
|
body: JSON.stringify({
|
|
41
44
|
project_name: 'zavudev',
|
package/src/server.ts
CHANGED
package/src/tools/index.ts
CHANGED
|
@@ -18,7 +18,10 @@ import retrieve_senders from './senders/retrieve-senders';
|
|
|
18
18
|
import update_senders from './senders/update-senders';
|
|
19
19
|
import list_senders from './senders/list-senders';
|
|
20
20
|
import delete_senders from './senders/delete-senders';
|
|
21
|
+
import get_profile_senders from './senders/get-profile-senders';
|
|
21
22
|
import regenerate_webhook_secret_senders from './senders/regenerate-webhook-secret-senders';
|
|
23
|
+
import update_profile_senders from './senders/update-profile-senders';
|
|
24
|
+
import upload_profile_picture_senders from './senders/upload-profile-picture-senders';
|
|
22
25
|
import retrieve_contacts from './contacts/retrieve-contacts';
|
|
23
26
|
import update_contacts from './contacts/update-contacts';
|
|
24
27
|
import list_contacts from './contacts/list-contacts';
|
|
@@ -62,7 +65,10 @@ addEndpoint(retrieve_senders);
|
|
|
62
65
|
addEndpoint(update_senders);
|
|
63
66
|
addEndpoint(list_senders);
|
|
64
67
|
addEndpoint(delete_senders);
|
|
68
|
+
addEndpoint(get_profile_senders);
|
|
65
69
|
addEndpoint(regenerate_webhook_secret_senders);
|
|
70
|
+
addEndpoint(update_profile_senders);
|
|
71
|
+
addEndpoint(upload_profile_picture_senders);
|
|
66
72
|
addEndpoint(retrieve_contacts);
|
|
67
73
|
addEndpoint(update_contacts);
|
|
68
74
|
addEndpoint(list_contacts);
|
|
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
|
|
|
18
18
|
export const tool: Tool = {
|
|
19
19
|
name: 'create_senders',
|
|
20
20
|
description:
|
|
21
|
-
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCreate sender\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/sender',\n $defs: {\n sender: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n phoneNumber: {\n type: 'string',\n description: 'Phone number in E.164 format.'\n },\n createdAt: {\n type: 'string',\n format: 'date-time'\n },\n isDefault: {\n type: 'boolean',\n description: 'Whether this sender is the project\\'s default.'\n },\n updatedAt: {\n type: 'string',\n format: 'date-time'\n },\n webhook: {\n $ref: '#/$defs/sender_webhook'\n }\n },\n required: [ 'id',\n 'name',\n 'phoneNumber'\n ]\n },\n sender_webhook: {\n type: 'object',\n description: 'Webhook configuration for the sender.',\n properties: {\n active: {\n type: 'boolean',\n description: 'Whether the webhook is active.'\n },\n events: {\n type: 'array',\n description: 'List of events the webhook is subscribed to.',\n items: {\n $ref: '#/$defs/webhook_event'\n }\n },\n url: {\n type: 'string',\n description: 'HTTPS URL that will receive webhook events.'\n },\n secret: {\n type: 'string',\n description: 'Webhook secret for signature verification. Only returned on create or regenerate.'\n }\n },\n required: [ 'active',\n 'events',\n 'url'\n ]\n },\n webhook_event: {\n type: 'string',\n description: 'Type of event that triggers the webhook. Note: Reactions are delivered as message.inbound with messageType=\\'reaction\\'.',\n enum: [ 'message.queued',\n 'message.sent',\n 'message.delivered',\n 'message.failed',\n 'message.inbound',\n 'message.unsupported',\n 'conversation.new',\n 'template.status_changed'\n ]\n }\n }\n}\n```",
|
|
21
|
+
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCreate sender\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/sender',\n $defs: {\n sender: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n phoneNumber: {\n type: 'string',\n description: 'Phone number in E.164 format.'\n },\n createdAt: {\n type: 'string',\n format: 'date-time'\n },\n isDefault: {\n type: 'boolean',\n description: 'Whether this sender is the project\\'s default.'\n },\n updatedAt: {\n type: 'string',\n format: 'date-time'\n },\n webhook: {\n $ref: '#/$defs/sender_webhook'\n },\n whatsapp: {\n type: 'object',\n description: 'WhatsApp Business Account information. Only present if a WABA is connected.',\n properties: {\n displayPhoneNumber: {\n type: 'string',\n description: 'Display phone number.'\n },\n paymentStatus: {\n type: 'object',\n description: 'Payment configuration status from Meta.',\n properties: {\n canSendTemplates: {\n type: 'boolean',\n description: 'Whether template messages can be sent. Requires setupStatus=COMPLETE and methodStatus=VALID.'\n },\n methodStatus: {\n type: 'string',\n description: 'Payment method status (VALID, NONE, etc.).'\n },\n setupStatus: {\n type: 'string',\n description: 'Payment setup status (COMPLETE, NOT_STARTED, etc.).'\n }\n }\n },\n phoneNumberId: {\n type: 'string',\n description: 'WhatsApp phone number ID from Meta.'\n }\n }\n }\n },\n required: [ 'id',\n 'name',\n 'phoneNumber'\n ]\n },\n sender_webhook: {\n type: 'object',\n description: 'Webhook configuration for the sender.',\n properties: {\n active: {\n type: 'boolean',\n description: 'Whether the webhook is active.'\n },\n events: {\n type: 'array',\n description: 'List of events the webhook is subscribed to.',\n items: {\n $ref: '#/$defs/webhook_event'\n }\n },\n url: {\n type: 'string',\n description: 'HTTPS URL that will receive webhook events.'\n },\n secret: {\n type: 'string',\n description: 'Webhook secret for signature verification. Only returned on create or regenerate.'\n }\n },\n required: [ 'active',\n 'events',\n 'url'\n ]\n },\n webhook_event: {\n type: 'string',\n description: 'Type of event that triggers the webhook. Note: Reactions are delivered as message.inbound with messageType=\\'reaction\\'.',\n enum: [ 'message.queued',\n 'message.sent',\n 'message.delivered',\n 'message.failed',\n 'message.inbound',\n 'message.unsupported',\n 'conversation.new',\n 'template.status_changed'\n ]\n }\n }\n}\n```",
|
|
22
22
|
inputSchema: {
|
|
23
23
|
type: 'object',
|
|
24
24
|
properties: {
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { isJqError, maybeFilter } from '@zavudev/sdk-mcp/filtering';
|
|
4
|
+
import { Metadata, asErrorResult, asTextContentResult } from '@zavudev/sdk-mcp/tools/types';
|
|
5
|
+
|
|
6
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
7
|
+
import Zavudev from '@zavudev/sdk';
|
|
8
|
+
|
|
9
|
+
export const metadata: Metadata = {
|
|
10
|
+
resource: 'senders',
|
|
11
|
+
operation: 'read',
|
|
12
|
+
tags: [],
|
|
13
|
+
httpMethod: 'get',
|
|
14
|
+
httpPath: '/v1/senders/{senderId}/profile',
|
|
15
|
+
operationId: 'getSenderProfile',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const tool: Tool = {
|
|
19
|
+
name: 'get_profile_senders',
|
|
20
|
+
description:
|
|
21
|
+
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nGet the WhatsApp Business profile for a sender. The sender must have a WhatsApp Business Account connected.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/whatsapp_business_profile_response',\n $defs: {\n whatsapp_business_profile_response: {\n type: 'object',\n properties: {\n profile: {\n $ref: '#/$defs/whatsapp_business_profile'\n }\n },\n required: [ 'profile'\n ]\n },\n whatsapp_business_profile: {\n type: 'object',\n description: 'WhatsApp Business profile information.',\n properties: {\n about: {\n type: 'string',\n description: 'Short description of the business (max 139 characters).'\n },\n address: {\n type: 'string',\n description: 'Physical address of the business (max 256 characters).'\n },\n description: {\n type: 'string',\n description: 'Extended description of the business (max 512 characters).'\n },\n email: {\n type: 'string',\n description: 'Business email address.'\n },\n profilePictureUrl: {\n type: 'string',\n description: 'URL of the business profile picture.'\n },\n vertical: {\n $ref: '#/$defs/whatsapp_business_profile_vertical'\n },\n websites: {\n type: 'array',\n description: 'Business website URLs (maximum 2).',\n items: {\n type: 'string'\n }\n }\n }\n },\n whatsapp_business_profile_vertical: {\n type: 'string',\n description: 'Business category for WhatsApp Business profile.',\n enum: [ 'UNDEFINED',\n 'OTHER',\n 'AUTO',\n 'BEAUTY',\n 'APPAREL',\n 'EDU',\n 'ENTERTAIN',\n 'EVENT_PLAN',\n 'FINANCE',\n 'GROCERY',\n 'GOVT',\n 'HOTEL',\n 'HEALTH',\n 'NONPROFIT',\n 'PROF_SERVICES',\n 'RETAIL',\n 'TRAVEL',\n 'RESTAURANT',\n 'NOT_A_BIZ'\n ]\n }\n }\n}\n```",
|
|
22
|
+
inputSchema: {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
senderId: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
},
|
|
28
|
+
jq_filter: {
|
|
29
|
+
type: 'string',
|
|
30
|
+
title: 'jq Filter',
|
|
31
|
+
description:
|
|
32
|
+
'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
required: ['senderId'],
|
|
36
|
+
},
|
|
37
|
+
annotations: {
|
|
38
|
+
readOnlyHint: true,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export const handler = async (client: Zavudev, args: Record<string, unknown> | undefined) => {
|
|
43
|
+
const { senderId, jq_filter, ...body } = args as any;
|
|
44
|
+
try {
|
|
45
|
+
return asTextContentResult(await maybeFilter(jq_filter, await client.senders.getProfile(senderId)));
|
|
46
|
+
} catch (error) {
|
|
47
|
+
if (error instanceof Zavudev.APIError || isJqError(error)) {
|
|
48
|
+
return asErrorResult(error.message);
|
|
49
|
+
}
|
|
50
|
+
throw error;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export default { metadata, tool, handler };
|
|
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
|
|
|
18
18
|
export const tool: Tool = {
|
|
19
19
|
name: 'list_senders',
|
|
20
20
|
description:
|
|
21
|
-
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nList senders\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/sender'\n }\n },\n nextCursor: {\n type: 'string'\n }\n },\n required: [ 'items'\n ],\n $defs: {\n sender: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n phoneNumber: {\n type: 'string',\n description: 'Phone number in E.164 format.'\n },\n createdAt: {\n type: 'string',\n format: 'date-time'\n },\n isDefault: {\n type: 'boolean',\n description: 'Whether this sender is the project\\'s default.'\n },\n updatedAt: {\n type: 'string',\n format: 'date-time'\n },\n webhook: {\n $ref: '#/$defs/sender_webhook'\n }\n },\n required: [ 'id',\n 'name',\n 'phoneNumber'\n ]\n },\n sender_webhook: {\n type: 'object',\n description: 'Webhook configuration for the sender.',\n properties: {\n active: {\n type: 'boolean',\n description: 'Whether the webhook is active.'\n },\n events: {\n type: 'array',\n description: 'List of events the webhook is subscribed to.',\n items: {\n $ref: '#/$defs/webhook_event'\n }\n },\n url: {\n type: 'string',\n description: 'HTTPS URL that will receive webhook events.'\n },\n secret: {\n type: 'string',\n description: 'Webhook secret for signature verification. Only returned on create or regenerate.'\n }\n },\n required: [ 'active',\n 'events',\n 'url'\n ]\n },\n webhook_event: {\n type: 'string',\n description: 'Type of event that triggers the webhook. Note: Reactions are delivered as message.inbound with messageType=\\'reaction\\'.',\n enum: [ 'message.queued',\n 'message.sent',\n 'message.delivered',\n 'message.failed',\n 'message.inbound',\n 'message.unsupported',\n 'conversation.new',\n 'template.status_changed'\n ]\n }\n }\n}\n```",
|
|
21
|
+
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nList senders\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n items: {\n type: 'array',\n items: {\n $ref: '#/$defs/sender'\n }\n },\n nextCursor: {\n type: 'string'\n }\n },\n required: [ 'items'\n ],\n $defs: {\n sender: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n phoneNumber: {\n type: 'string',\n description: 'Phone number in E.164 format.'\n },\n createdAt: {\n type: 'string',\n format: 'date-time'\n },\n isDefault: {\n type: 'boolean',\n description: 'Whether this sender is the project\\'s default.'\n },\n updatedAt: {\n type: 'string',\n format: 'date-time'\n },\n webhook: {\n $ref: '#/$defs/sender_webhook'\n },\n whatsapp: {\n type: 'object',\n description: 'WhatsApp Business Account information. Only present if a WABA is connected.',\n properties: {\n displayPhoneNumber: {\n type: 'string',\n description: 'Display phone number.'\n },\n paymentStatus: {\n type: 'object',\n description: 'Payment configuration status from Meta.',\n properties: {\n canSendTemplates: {\n type: 'boolean',\n description: 'Whether template messages can be sent. Requires setupStatus=COMPLETE and methodStatus=VALID.'\n },\n methodStatus: {\n type: 'string',\n description: 'Payment method status (VALID, NONE, etc.).'\n },\n setupStatus: {\n type: 'string',\n description: 'Payment setup status (COMPLETE, NOT_STARTED, etc.).'\n }\n }\n },\n phoneNumberId: {\n type: 'string',\n description: 'WhatsApp phone number ID from Meta.'\n }\n }\n }\n },\n required: [ 'id',\n 'name',\n 'phoneNumber'\n ]\n },\n sender_webhook: {\n type: 'object',\n description: 'Webhook configuration for the sender.',\n properties: {\n active: {\n type: 'boolean',\n description: 'Whether the webhook is active.'\n },\n events: {\n type: 'array',\n description: 'List of events the webhook is subscribed to.',\n items: {\n $ref: '#/$defs/webhook_event'\n }\n },\n url: {\n type: 'string',\n description: 'HTTPS URL that will receive webhook events.'\n },\n secret: {\n type: 'string',\n description: 'Webhook secret for signature verification. Only returned on create or regenerate.'\n }\n },\n required: [ 'active',\n 'events',\n 'url'\n ]\n },\n webhook_event: {\n type: 'string',\n description: 'Type of event that triggers the webhook. Note: Reactions are delivered as message.inbound with messageType=\\'reaction\\'.',\n enum: [ 'message.queued',\n 'message.sent',\n 'message.delivered',\n 'message.failed',\n 'message.inbound',\n 'message.unsupported',\n 'conversation.new',\n 'template.status_changed'\n ]\n }\n }\n}\n```",
|
|
22
22
|
inputSchema: {
|
|
23
23
|
type: 'object',
|
|
24
24
|
properties: {
|
|
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
|
|
|
18
18
|
export const tool: Tool = {
|
|
19
19
|
name: 'retrieve_senders',
|
|
20
20
|
description:
|
|
21
|
-
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nGet sender\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/sender',\n $defs: {\n sender: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n phoneNumber: {\n type: 'string',\n description: 'Phone number in E.164 format.'\n },\n createdAt: {\n type: 'string',\n format: 'date-time'\n },\n isDefault: {\n type: 'boolean',\n description: 'Whether this sender is the project\\'s default.'\n },\n updatedAt: {\n type: 'string',\n format: 'date-time'\n },\n webhook: {\n $ref: '#/$defs/sender_webhook'\n }\n },\n required: [ 'id',\n 'name',\n 'phoneNumber'\n ]\n },\n sender_webhook: {\n type: 'object',\n description: 'Webhook configuration for the sender.',\n properties: {\n active: {\n type: 'boolean',\n description: 'Whether the webhook is active.'\n },\n events: {\n type: 'array',\n description: 'List of events the webhook is subscribed to.',\n items: {\n $ref: '#/$defs/webhook_event'\n }\n },\n url: {\n type: 'string',\n description: 'HTTPS URL that will receive webhook events.'\n },\n secret: {\n type: 'string',\n description: 'Webhook secret for signature verification. Only returned on create or regenerate.'\n }\n },\n required: [ 'active',\n 'events',\n 'url'\n ]\n },\n webhook_event: {\n type: 'string',\n description: 'Type of event that triggers the webhook. Note: Reactions are delivered as message.inbound with messageType=\\'reaction\\'.',\n enum: [ 'message.queued',\n 'message.sent',\n 'message.delivered',\n 'message.failed',\n 'message.inbound',\n 'message.unsupported',\n 'conversation.new',\n 'template.status_changed'\n ]\n }\n }\n}\n```",
|
|
21
|
+
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nGet sender\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/sender',\n $defs: {\n sender: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n phoneNumber: {\n type: 'string',\n description: 'Phone number in E.164 format.'\n },\n createdAt: {\n type: 'string',\n format: 'date-time'\n },\n isDefault: {\n type: 'boolean',\n description: 'Whether this sender is the project\\'s default.'\n },\n updatedAt: {\n type: 'string',\n format: 'date-time'\n },\n webhook: {\n $ref: '#/$defs/sender_webhook'\n },\n whatsapp: {\n type: 'object',\n description: 'WhatsApp Business Account information. Only present if a WABA is connected.',\n properties: {\n displayPhoneNumber: {\n type: 'string',\n description: 'Display phone number.'\n },\n paymentStatus: {\n type: 'object',\n description: 'Payment configuration status from Meta.',\n properties: {\n canSendTemplates: {\n type: 'boolean',\n description: 'Whether template messages can be sent. Requires setupStatus=COMPLETE and methodStatus=VALID.'\n },\n methodStatus: {\n type: 'string',\n description: 'Payment method status (VALID, NONE, etc.).'\n },\n setupStatus: {\n type: 'string',\n description: 'Payment setup status (COMPLETE, NOT_STARTED, etc.).'\n }\n }\n },\n phoneNumberId: {\n type: 'string',\n description: 'WhatsApp phone number ID from Meta.'\n }\n }\n }\n },\n required: [ 'id',\n 'name',\n 'phoneNumber'\n ]\n },\n sender_webhook: {\n type: 'object',\n description: 'Webhook configuration for the sender.',\n properties: {\n active: {\n type: 'boolean',\n description: 'Whether the webhook is active.'\n },\n events: {\n type: 'array',\n description: 'List of events the webhook is subscribed to.',\n items: {\n $ref: '#/$defs/webhook_event'\n }\n },\n url: {\n type: 'string',\n description: 'HTTPS URL that will receive webhook events.'\n },\n secret: {\n type: 'string',\n description: 'Webhook secret for signature verification. Only returned on create or regenerate.'\n }\n },\n required: [ 'active',\n 'events',\n 'url'\n ]\n },\n webhook_event: {\n type: 'string',\n description: 'Type of event that triggers the webhook. Note: Reactions are delivered as message.inbound with messageType=\\'reaction\\'.',\n enum: [ 'message.queued',\n 'message.sent',\n 'message.delivered',\n 'message.failed',\n 'message.inbound',\n 'message.unsupported',\n 'conversation.new',\n 'template.status_changed'\n ]\n }\n }\n}\n```",
|
|
22
22
|
inputSchema: {
|
|
23
23
|
type: 'object',
|
|
24
24
|
properties: {
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { isJqError, maybeFilter } from '@zavudev/sdk-mcp/filtering';
|
|
4
|
+
import { Metadata, asErrorResult, asTextContentResult } from '@zavudev/sdk-mcp/tools/types';
|
|
5
|
+
|
|
6
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
7
|
+
import Zavudev from '@zavudev/sdk';
|
|
8
|
+
|
|
9
|
+
export const metadata: Metadata = {
|
|
10
|
+
resource: 'senders',
|
|
11
|
+
operation: 'write',
|
|
12
|
+
tags: [],
|
|
13
|
+
httpMethod: 'patch',
|
|
14
|
+
httpPath: '/v1/senders/{senderId}/profile',
|
|
15
|
+
operationId: 'updateSenderProfile',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const tool: Tool = {
|
|
19
|
+
name: 'update_profile_senders',
|
|
20
|
+
description:
|
|
21
|
+
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nUpdate the WhatsApp Business profile for a sender. The sender must have a WhatsApp Business Account connected.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/sender_update_profile_response',\n $defs: {\n sender_update_profile_response: {\n type: 'object',\n properties: {\n profile: {\n $ref: '#/$defs/whatsapp_business_profile'\n },\n success: {\n type: 'boolean'\n }\n },\n required: [ 'profile',\n 'success'\n ]\n },\n whatsapp_business_profile: {\n type: 'object',\n description: 'WhatsApp Business profile information.',\n properties: {\n about: {\n type: 'string',\n description: 'Short description of the business (max 139 characters).'\n },\n address: {\n type: 'string',\n description: 'Physical address of the business (max 256 characters).'\n },\n description: {\n type: 'string',\n description: 'Extended description of the business (max 512 characters).'\n },\n email: {\n type: 'string',\n description: 'Business email address.'\n },\n profilePictureUrl: {\n type: 'string',\n description: 'URL of the business profile picture.'\n },\n vertical: {\n $ref: '#/$defs/whatsapp_business_profile_vertical'\n },\n websites: {\n type: 'array',\n description: 'Business website URLs (maximum 2).',\n items: {\n type: 'string'\n }\n }\n }\n },\n whatsapp_business_profile_vertical: {\n type: 'string',\n description: 'Business category for WhatsApp Business profile.',\n enum: [ 'UNDEFINED',\n 'OTHER',\n 'AUTO',\n 'BEAUTY',\n 'APPAREL',\n 'EDU',\n 'ENTERTAIN',\n 'EVENT_PLAN',\n 'FINANCE',\n 'GROCERY',\n 'GOVT',\n 'HOTEL',\n 'HEALTH',\n 'NONPROFIT',\n 'PROF_SERVICES',\n 'RETAIL',\n 'TRAVEL',\n 'RESTAURANT',\n 'NOT_A_BIZ'\n ]\n }\n }\n}\n```",
|
|
22
|
+
inputSchema: {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
senderId: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
},
|
|
28
|
+
about: {
|
|
29
|
+
type: 'string',
|
|
30
|
+
description: 'Short description of the business (max 139 characters).',
|
|
31
|
+
},
|
|
32
|
+
address: {
|
|
33
|
+
type: 'string',
|
|
34
|
+
description: 'Physical address of the business (max 256 characters).',
|
|
35
|
+
},
|
|
36
|
+
description: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
description: 'Extended description of the business (max 512 characters).',
|
|
39
|
+
},
|
|
40
|
+
email: {
|
|
41
|
+
type: 'string',
|
|
42
|
+
description: 'Business email address.',
|
|
43
|
+
},
|
|
44
|
+
vertical: {
|
|
45
|
+
$ref: '#/$defs/whatsapp_business_profile_vertical',
|
|
46
|
+
},
|
|
47
|
+
websites: {
|
|
48
|
+
type: 'array',
|
|
49
|
+
description: 'Business website URLs (maximum 2).',
|
|
50
|
+
items: {
|
|
51
|
+
type: 'string',
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
jq_filter: {
|
|
55
|
+
type: 'string',
|
|
56
|
+
title: 'jq Filter',
|
|
57
|
+
description:
|
|
58
|
+
'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
required: ['senderId'],
|
|
62
|
+
$defs: {
|
|
63
|
+
whatsapp_business_profile_vertical: {
|
|
64
|
+
type: 'string',
|
|
65
|
+
description: 'Business category for WhatsApp Business profile.',
|
|
66
|
+
enum: [
|
|
67
|
+
'UNDEFINED',
|
|
68
|
+
'OTHER',
|
|
69
|
+
'AUTO',
|
|
70
|
+
'BEAUTY',
|
|
71
|
+
'APPAREL',
|
|
72
|
+
'EDU',
|
|
73
|
+
'ENTERTAIN',
|
|
74
|
+
'EVENT_PLAN',
|
|
75
|
+
'FINANCE',
|
|
76
|
+
'GROCERY',
|
|
77
|
+
'GOVT',
|
|
78
|
+
'HOTEL',
|
|
79
|
+
'HEALTH',
|
|
80
|
+
'NONPROFIT',
|
|
81
|
+
'PROF_SERVICES',
|
|
82
|
+
'RETAIL',
|
|
83
|
+
'TRAVEL',
|
|
84
|
+
'RESTAURANT',
|
|
85
|
+
'NOT_A_BIZ',
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
annotations: {},
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export const handler = async (client: Zavudev, args: Record<string, unknown> | undefined) => {
|
|
94
|
+
const { senderId, jq_filter, ...body } = args as any;
|
|
95
|
+
try {
|
|
96
|
+
return asTextContentResult(
|
|
97
|
+
await maybeFilter(jq_filter, await client.senders.updateProfile(senderId, body)),
|
|
98
|
+
);
|
|
99
|
+
} catch (error) {
|
|
100
|
+
if (error instanceof Zavudev.APIError || isJqError(error)) {
|
|
101
|
+
return asErrorResult(error.message);
|
|
102
|
+
}
|
|
103
|
+
throw error;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
export default { metadata, tool, handler };
|
|
@@ -18,7 +18,7 @@ export const metadata: Metadata = {
|
|
|
18
18
|
export const tool: Tool = {
|
|
19
19
|
name: 'update_senders',
|
|
20
20
|
description:
|
|
21
|
-
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nUpdate sender\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/sender',\n $defs: {\n sender: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n phoneNumber: {\n type: 'string',\n description: 'Phone number in E.164 format.'\n },\n createdAt: {\n type: 'string',\n format: 'date-time'\n },\n isDefault: {\n type: 'boolean',\n description: 'Whether this sender is the project\\'s default.'\n },\n updatedAt: {\n type: 'string',\n format: 'date-time'\n },\n webhook: {\n $ref: '#/$defs/sender_webhook'\n }\n },\n required: [ 'id',\n 'name',\n 'phoneNumber'\n ]\n },\n sender_webhook: {\n type: 'object',\n description: 'Webhook configuration for the sender.',\n properties: {\n active: {\n type: 'boolean',\n description: 'Whether the webhook is active.'\n },\n events: {\n type: 'array',\n description: 'List of events the webhook is subscribed to.',\n items: {\n $ref: '#/$defs/webhook_event'\n }\n },\n url: {\n type: 'string',\n description: 'HTTPS URL that will receive webhook events.'\n },\n secret: {\n type: 'string',\n description: 'Webhook secret for signature verification. Only returned on create or regenerate.'\n }\n },\n required: [ 'active',\n 'events',\n 'url'\n ]\n },\n webhook_event: {\n type: 'string',\n description: 'Type of event that triggers the webhook. Note: Reactions are delivered as message.inbound with messageType=\\'reaction\\'.',\n enum: [ 'message.queued',\n 'message.sent',\n 'message.delivered',\n 'message.failed',\n 'message.inbound',\n 'message.unsupported',\n 'conversation.new',\n 'template.status_changed'\n ]\n }\n }\n}\n```",
|
|
21
|
+
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nUpdate sender\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/sender',\n $defs: {\n sender: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n phoneNumber: {\n type: 'string',\n description: 'Phone number in E.164 format.'\n },\n createdAt: {\n type: 'string',\n format: 'date-time'\n },\n isDefault: {\n type: 'boolean',\n description: 'Whether this sender is the project\\'s default.'\n },\n updatedAt: {\n type: 'string',\n format: 'date-time'\n },\n webhook: {\n $ref: '#/$defs/sender_webhook'\n },\n whatsapp: {\n type: 'object',\n description: 'WhatsApp Business Account information. Only present if a WABA is connected.',\n properties: {\n displayPhoneNumber: {\n type: 'string',\n description: 'Display phone number.'\n },\n paymentStatus: {\n type: 'object',\n description: 'Payment configuration status from Meta.',\n properties: {\n canSendTemplates: {\n type: 'boolean',\n description: 'Whether template messages can be sent. Requires setupStatus=COMPLETE and methodStatus=VALID.'\n },\n methodStatus: {\n type: 'string',\n description: 'Payment method status (VALID, NONE, etc.).'\n },\n setupStatus: {\n type: 'string',\n description: 'Payment setup status (COMPLETE, NOT_STARTED, etc.).'\n }\n }\n },\n phoneNumberId: {\n type: 'string',\n description: 'WhatsApp phone number ID from Meta.'\n }\n }\n }\n },\n required: [ 'id',\n 'name',\n 'phoneNumber'\n ]\n },\n sender_webhook: {\n type: 'object',\n description: 'Webhook configuration for the sender.',\n properties: {\n active: {\n type: 'boolean',\n description: 'Whether the webhook is active.'\n },\n events: {\n type: 'array',\n description: 'List of events the webhook is subscribed to.',\n items: {\n $ref: '#/$defs/webhook_event'\n }\n },\n url: {\n type: 'string',\n description: 'HTTPS URL that will receive webhook events.'\n },\n secret: {\n type: 'string',\n description: 'Webhook secret for signature verification. Only returned on create or regenerate.'\n }\n },\n required: [ 'active',\n 'events',\n 'url'\n ]\n },\n webhook_event: {\n type: 'string',\n description: 'Type of event that triggers the webhook. Note: Reactions are delivered as message.inbound with messageType=\\'reaction\\'.',\n enum: [ 'message.queued',\n 'message.sent',\n 'message.delivered',\n 'message.failed',\n 'message.inbound',\n 'message.unsupported',\n 'conversation.new',\n 'template.status_changed'\n ]\n }\n }\n}\n```",
|
|
22
22
|
inputSchema: {
|
|
23
23
|
type: 'object',
|
|
24
24
|
properties: {
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { isJqError, maybeFilter } from '@zavudev/sdk-mcp/filtering';
|
|
4
|
+
import { Metadata, asErrorResult, asTextContentResult } from '@zavudev/sdk-mcp/tools/types';
|
|
5
|
+
|
|
6
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
7
|
+
import Zavudev from '@zavudev/sdk';
|
|
8
|
+
|
|
9
|
+
export const metadata: Metadata = {
|
|
10
|
+
resource: 'senders',
|
|
11
|
+
operation: 'write',
|
|
12
|
+
tags: [],
|
|
13
|
+
httpMethod: 'post',
|
|
14
|
+
httpPath: '/v1/senders/{senderId}/profile/picture',
|
|
15
|
+
operationId: 'uploadSenderProfilePicture',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const tool: Tool = {
|
|
19
|
+
name: 'upload_profile_picture_senders',
|
|
20
|
+
description:
|
|
21
|
+
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nUpload a new profile picture for the WhatsApp Business profile. The image will be uploaded to Meta and set as the profile picture.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/sender_upload_profile_picture_response',\n $defs: {\n sender_upload_profile_picture_response: {\n type: 'object',\n properties: {\n profile: {\n $ref: '#/$defs/whatsapp_business_profile'\n },\n success: {\n type: 'boolean'\n }\n },\n required: [ 'profile',\n 'success'\n ]\n },\n whatsapp_business_profile: {\n type: 'object',\n description: 'WhatsApp Business profile information.',\n properties: {\n about: {\n type: 'string',\n description: 'Short description of the business (max 139 characters).'\n },\n address: {\n type: 'string',\n description: 'Physical address of the business (max 256 characters).'\n },\n description: {\n type: 'string',\n description: 'Extended description of the business (max 512 characters).'\n },\n email: {\n type: 'string',\n description: 'Business email address.'\n },\n profilePictureUrl: {\n type: 'string',\n description: 'URL of the business profile picture.'\n },\n vertical: {\n $ref: '#/$defs/whatsapp_business_profile_vertical'\n },\n websites: {\n type: 'array',\n description: 'Business website URLs (maximum 2).',\n items: {\n type: 'string'\n }\n }\n }\n },\n whatsapp_business_profile_vertical: {\n type: 'string',\n description: 'Business category for WhatsApp Business profile.',\n enum: [ 'UNDEFINED',\n 'OTHER',\n 'AUTO',\n 'BEAUTY',\n 'APPAREL',\n 'EDU',\n 'ENTERTAIN',\n 'EVENT_PLAN',\n 'FINANCE',\n 'GROCERY',\n 'GOVT',\n 'HOTEL',\n 'HEALTH',\n 'NONPROFIT',\n 'PROF_SERVICES',\n 'RETAIL',\n 'TRAVEL',\n 'RESTAURANT',\n 'NOT_A_BIZ'\n ]\n }\n }\n}\n```",
|
|
22
|
+
inputSchema: {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
senderId: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
},
|
|
28
|
+
imageUrl: {
|
|
29
|
+
type: 'string',
|
|
30
|
+
description: 'URL of the image to upload.',
|
|
31
|
+
},
|
|
32
|
+
mimeType: {
|
|
33
|
+
type: 'string',
|
|
34
|
+
description: 'MIME type of the image.',
|
|
35
|
+
enum: ['image/jpeg', 'image/png'],
|
|
36
|
+
},
|
|
37
|
+
jq_filter: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
title: 'jq Filter',
|
|
40
|
+
description:
|
|
41
|
+
'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
required: ['senderId', 'imageUrl', 'mimeType'],
|
|
45
|
+
},
|
|
46
|
+
annotations: {},
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export const handler = async (client: Zavudev, args: Record<string, unknown> | undefined) => {
|
|
50
|
+
const { senderId, jq_filter, ...body } = args as any;
|
|
51
|
+
try {
|
|
52
|
+
return asTextContentResult(
|
|
53
|
+
await maybeFilter(jq_filter, await client.senders.uploadProfilePicture(senderId, body)),
|
|
54
|
+
);
|
|
55
|
+
} catch (error) {
|
|
56
|
+
if (error instanceof Zavudev.APIError || isJqError(error)) {
|
|
57
|
+
return asErrorResult(error.message);
|
|
58
|
+
}
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export default { metadata, tool, handler };
|
package/tools/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE;AAE9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE;AAE9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;AA2C/C,eAAO,MAAM,SAAS,EAAE,QAAQ,EAAO,CAAC;AA+CxC,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC;IAChD,EAAE,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CA4B1E"}
|
package/tools/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE;AAE9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE;AAE9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;AA2C/C,eAAO,MAAM,SAAS,EAAE,QAAQ,EAAO,CAAC;AA+CxC,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC;IAChD,EAAE,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CA4B1E"}
|
package/tools/index.js
CHANGED
|
@@ -20,7 +20,10 @@ const retrieve_senders_1 = __importDefault(require("./senders/retrieve-senders.j
|
|
|
20
20
|
const update_senders_1 = __importDefault(require("./senders/update-senders.js"));
|
|
21
21
|
const list_senders_1 = __importDefault(require("./senders/list-senders.js"));
|
|
22
22
|
const delete_senders_1 = __importDefault(require("./senders/delete-senders.js"));
|
|
23
|
+
const get_profile_senders_1 = __importDefault(require("./senders/get-profile-senders.js"));
|
|
23
24
|
const regenerate_webhook_secret_senders_1 = __importDefault(require("./senders/regenerate-webhook-secret-senders.js"));
|
|
25
|
+
const update_profile_senders_1 = __importDefault(require("./senders/update-profile-senders.js"));
|
|
26
|
+
const upload_profile_picture_senders_1 = __importDefault(require("./senders/upload-profile-picture-senders.js"));
|
|
24
27
|
const retrieve_contacts_1 = __importDefault(require("./contacts/retrieve-contacts.js"));
|
|
25
28
|
const update_contacts_1 = __importDefault(require("./contacts/update-contacts.js"));
|
|
26
29
|
const list_contacts_1 = __importDefault(require("./contacts/list-contacts.js"));
|
|
@@ -61,7 +64,10 @@ addEndpoint(retrieve_senders_1.default);
|
|
|
61
64
|
addEndpoint(update_senders_1.default);
|
|
62
65
|
addEndpoint(list_senders_1.default);
|
|
63
66
|
addEndpoint(delete_senders_1.default);
|
|
67
|
+
addEndpoint(get_profile_senders_1.default);
|
|
64
68
|
addEndpoint(regenerate_webhook_secret_senders_1.default);
|
|
69
|
+
addEndpoint(update_profile_senders_1.default);
|
|
70
|
+
addEndpoint(upload_profile_picture_senders_1.default);
|
|
65
71
|
addEndpoint(retrieve_contacts_1.default);
|
|
66
72
|
addEndpoint(update_contacts_1.default);
|
|
67
73
|
addEndpoint(list_contacts_1.default);
|
package/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"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"}
|
package/tools/index.mjs
CHANGED
|
@@ -13,7 +13,10 @@ import retrieve_senders from "./senders/retrieve-senders.mjs";
|
|
|
13
13
|
import update_senders from "./senders/update-senders.mjs";
|
|
14
14
|
import list_senders from "./senders/list-senders.mjs";
|
|
15
15
|
import delete_senders from "./senders/delete-senders.mjs";
|
|
16
|
+
import get_profile_senders from "./senders/get-profile-senders.mjs";
|
|
16
17
|
import regenerate_webhook_secret_senders from "./senders/regenerate-webhook-secret-senders.mjs";
|
|
18
|
+
import update_profile_senders from "./senders/update-profile-senders.mjs";
|
|
19
|
+
import upload_profile_picture_senders from "./senders/upload-profile-picture-senders.mjs";
|
|
17
20
|
import retrieve_contacts from "./contacts/retrieve-contacts.mjs";
|
|
18
21
|
import update_contacts from "./contacts/update-contacts.mjs";
|
|
19
22
|
import list_contacts from "./contacts/list-contacts.mjs";
|
|
@@ -54,7 +57,10 @@ addEndpoint(retrieve_senders);
|
|
|
54
57
|
addEndpoint(update_senders);
|
|
55
58
|
addEndpoint(list_senders);
|
|
56
59
|
addEndpoint(delete_senders);
|
|
60
|
+
addEndpoint(get_profile_senders);
|
|
57
61
|
addEndpoint(regenerate_webhook_secret_senders);
|
|
62
|
+
addEndpoint(update_profile_senders);
|
|
63
|
+
addEndpoint(upload_profile_picture_senders);
|
|
58
64
|
addEndpoint(retrieve_contacts);
|
|
59
65
|
addEndpoint(update_contacts);
|
|
60
66
|
addEndpoint(list_contacts);
|
package/tools/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ exports.metadata = {
|
|
|
18
18
|
};
|
|
19
19
|
exports.tool = {
|
|
20
20
|
name: 'create_senders',
|
|
21
|
-
description: "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCreate sender\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/sender',\n $defs: {\n sender: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n phoneNumber: {\n type: 'string',\n description: 'Phone number in E.164 format.'\n },\n createdAt: {\n type: 'string',\n format: 'date-time'\n },\n isDefault: {\n type: 'boolean',\n description: 'Whether this sender is the project\\'s default.'\n },\n updatedAt: {\n type: 'string',\n format: 'date-time'\n },\n webhook: {\n $ref: '#/$defs/sender_webhook'\n }\n },\n required: [ 'id',\n 'name',\n 'phoneNumber'\n ]\n },\n sender_webhook: {\n type: 'object',\n description: 'Webhook configuration for the sender.',\n properties: {\n active: {\n type: 'boolean',\n description: 'Whether the webhook is active.'\n },\n events: {\n type: 'array',\n description: 'List of events the webhook is subscribed to.',\n items: {\n $ref: '#/$defs/webhook_event'\n }\n },\n url: {\n type: 'string',\n description: 'HTTPS URL that will receive webhook events.'\n },\n secret: {\n type: 'string',\n description: 'Webhook secret for signature verification. Only returned on create or regenerate.'\n }\n },\n required: [ 'active',\n 'events',\n 'url'\n ]\n },\n webhook_event: {\n type: 'string',\n description: 'Type of event that triggers the webhook. Note: Reactions are delivered as message.inbound with messageType=\\'reaction\\'.',\n enum: [ 'message.queued',\n 'message.sent',\n 'message.delivered',\n 'message.failed',\n 'message.inbound',\n 'message.unsupported',\n 'conversation.new',\n 'template.status_changed'\n ]\n }\n }\n}\n```",
|
|
21
|
+
description: "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCreate sender\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/sender',\n $defs: {\n sender: {\n type: 'object',\n properties: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n phoneNumber: {\n type: 'string',\n description: 'Phone number in E.164 format.'\n },\n createdAt: {\n type: 'string',\n format: 'date-time'\n },\n isDefault: {\n type: 'boolean',\n description: 'Whether this sender is the project\\'s default.'\n },\n updatedAt: {\n type: 'string',\n format: 'date-time'\n },\n webhook: {\n $ref: '#/$defs/sender_webhook'\n },\n whatsapp: {\n type: 'object',\n description: 'WhatsApp Business Account information. Only present if a WABA is connected.',\n properties: {\n displayPhoneNumber: {\n type: 'string',\n description: 'Display phone number.'\n },\n paymentStatus: {\n type: 'object',\n description: 'Payment configuration status from Meta.',\n properties: {\n canSendTemplates: {\n type: 'boolean',\n description: 'Whether template messages can be sent. Requires setupStatus=COMPLETE and methodStatus=VALID.'\n },\n methodStatus: {\n type: 'string',\n description: 'Payment method status (VALID, NONE, etc.).'\n },\n setupStatus: {\n type: 'string',\n description: 'Payment setup status (COMPLETE, NOT_STARTED, etc.).'\n }\n }\n },\n phoneNumberId: {\n type: 'string',\n description: 'WhatsApp phone number ID from Meta.'\n }\n }\n }\n },\n required: [ 'id',\n 'name',\n 'phoneNumber'\n ]\n },\n sender_webhook: {\n type: 'object',\n description: 'Webhook configuration for the sender.',\n properties: {\n active: {\n type: 'boolean',\n description: 'Whether the webhook is active.'\n },\n events: {\n type: 'array',\n description: 'List of events the webhook is subscribed to.',\n items: {\n $ref: '#/$defs/webhook_event'\n }\n },\n url: {\n type: 'string',\n description: 'HTTPS URL that will receive webhook events.'\n },\n secret: {\n type: 'string',\n description: 'Webhook secret for signature verification. Only returned on create or regenerate.'\n }\n },\n required: [ 'active',\n 'events',\n 'url'\n ]\n },\n webhook_event: {\n type: 'string',\n description: 'Type of event that triggers the webhook. Note: Reactions are delivered as message.inbound with messageType=\\'reaction\\'.',\n enum: [ 'message.queued',\n 'message.sent',\n 'message.delivered',\n 'message.failed',\n 'message.inbound',\n 'message.unsupported',\n 'conversation.new',\n 'template.status_changed'\n ]\n }\n }\n}\n```",
|
|
22
22
|
inputSchema: {
|
|
23
23
|
type: 'object',
|
|
24
24
|
properties: {
|