mcp-evolution 0.0.0-stage → 0.8.0
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/CHANGELOG.md +62 -0
- package/LICENSE +21 -0
- package/README.md +377 -2
- package/dist/config.d.ts +23 -0
- package/dist/config.js +113 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +8 -0
- package/dist/errors.js +15 -0
- package/dist/errors.js.map +1 -0
- package/dist/evolution-client.d.ts +34 -0
- package/dist/evolution-client.js +84 -0
- package/dist/evolution-client.js.map +1 -0
- package/dist/guards/recipients.d.ts +40 -0
- package/dist/guards/recipients.js +135 -0
- package/dist/guards/recipients.js.map +1 -0
- package/dist/guards/tools.d.ts +16 -0
- package/dist/guards/tools.js +154 -0
- package/dist/guards/tools.js.map +1 -0
- package/dist/http.d.ts +19 -0
- package/dist/http.js +103 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/registry.d.ts +36 -0
- package/dist/registry.js +68 -0
- package/dist/registry.js.map +1 -0
- package/dist/schemas.d.ts +4 -0
- package/dist/schemas.js +16 -0
- package/dist/schemas.js.map +1 -0
- package/dist/server.d.ts +5 -0
- package/dist/server.js +74 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/accept-invite.d.ts +2 -0
- package/dist/tools/accept-invite.js +23 -0
- package/dist/tools/accept-invite.js.map +1 -0
- package/dist/tools/archive-chat.d.ts +2 -0
- package/dist/tools/archive-chat.js +35 -0
- package/dist/tools/archive-chat.js.map +1 -0
- package/dist/tools/check-number.d.ts +2 -0
- package/dist/tools/check-number.js +25 -0
- package/dist/tools/check-number.js.map +1 -0
- package/dist/tools/connection-state.d.ts +2 -0
- package/dist/tools/connection-state.js +19 -0
- package/dist/tools/connection-state.js.map +1 -0
- package/dist/tools/create-group.d.ts +2 -0
- package/dist/tools/create-group.js +31 -0
- package/dist/tools/create-group.js.map +1 -0
- package/dist/tools/delete-message.d.ts +2 -0
- package/dist/tools/delete-message.js +33 -0
- package/dist/tools/delete-message.js.map +1 -0
- package/dist/tools/download-media.d.ts +2 -0
- package/dist/tools/download-media.js +59 -0
- package/dist/tools/download-media.js.map +1 -0
- package/dist/tools/fetch-business-profile.d.ts +2 -0
- package/dist/tools/fetch-business-profile.js +25 -0
- package/dist/tools/fetch-business-profile.js.map +1 -0
- package/dist/tools/fetch-invite-code.d.ts +2 -0
- package/dist/tools/fetch-invite-code.js +23 -0
- package/dist/tools/fetch-invite-code.js.map +1 -0
- package/dist/tools/fetch-privacy.d.ts +2 -0
- package/dist/tools/fetch-privacy.js +19 -0
- package/dist/tools/fetch-privacy.js.map +1 -0
- package/dist/tools/fetch-profile-picture.d.ts +2 -0
- package/dist/tools/fetch-profile-picture.js +25 -0
- package/dist/tools/fetch-profile-picture.js.map +1 -0
- package/dist/tools/find-chats.d.ts +2 -0
- package/dist/tools/find-chats.js +74 -0
- package/dist/tools/find-chats.js.map +1 -0
- package/dist/tools/find-contacts.d.ts +2 -0
- package/dist/tools/find-contacts.js +74 -0
- package/dist/tools/find-contacts.js.map +1 -0
- package/dist/tools/find-group-by-invite.d.ts +2 -0
- package/dist/tools/find-group-by-invite.js +56 -0
- package/dist/tools/find-group-by-invite.js.map +1 -0
- package/dist/tools/find-labels.d.ts +2 -0
- package/dist/tools/find-labels.js +22 -0
- package/dist/tools/find-labels.js.map +1 -0
- package/dist/tools/find-messages.d.ts +2 -0
- package/dist/tools/find-messages.js +55 -0
- package/dist/tools/find-messages.js.map +1 -0
- package/dist/tools/find-webhook.d.ts +2 -0
- package/dist/tools/find-webhook.js +19 -0
- package/dist/tools/find-webhook.js.map +1 -0
- package/dist/tools/get-chat-history.d.ts +2 -0
- package/dist/tools/get-chat-history.js +55 -0
- package/dist/tools/get-chat-history.js.map +1 -0
- package/dist/tools/get-group-info.d.ts +2 -0
- package/dist/tools/get-group-info.js +58 -0
- package/dist/tools/get-group-info.js.map +1 -0
- package/dist/tools/get-group-resolved-participants.d.ts +2 -0
- package/dist/tools/get-group-resolved-participants.js +170 -0
- package/dist/tools/get-group-resolved-participants.js.map +1 -0
- package/dist/tools/get-settings.d.ts +2 -0
- package/dist/tools/get-settings.js +19 -0
- package/dist/tools/get-settings.js.map +1 -0
- package/dist/tools/handle-label.d.ts +2 -0
- package/dist/tools/handle-label.js +30 -0
- package/dist/tools/handle-label.js.map +1 -0
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/index.js +131 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/leave-group.d.ts +2 -0
- package/dist/tools/leave-group.js +23 -0
- package/dist/tools/leave-group.js.map +1 -0
- package/dist/tools/list-groups.d.ts +2 -0
- package/dist/tools/list-groups.js +53 -0
- package/dist/tools/list-groups.js.map +1 -0
- package/dist/tools/list-instances.d.ts +2 -0
- package/dist/tools/list-instances.js +37 -0
- package/dist/tools/list-instances.js.map +1 -0
- package/dist/tools/logout-instance.d.ts +2 -0
- package/dist/tools/logout-instance.js +19 -0
- package/dist/tools/logout-instance.js.map +1 -0
- package/dist/tools/mark-as-read.d.ts +2 -0
- package/dist/tools/mark-as-read.js +30 -0
- package/dist/tools/mark-as-read.js.map +1 -0
- package/dist/tools/remove-profile-picture.d.ts +2 -0
- package/dist/tools/remove-profile-picture.js +19 -0
- package/dist/tools/remove-profile-picture.js.map +1 -0
- package/dist/tools/restart-instance.d.ts +2 -0
- package/dist/tools/restart-instance.js +19 -0
- package/dist/tools/restart-instance.js.map +1 -0
- package/dist/tools/revoke-invite-code.d.ts +2 -0
- package/dist/tools/revoke-invite-code.js +23 -0
- package/dist/tools/revoke-invite-code.js.map +1 -0
- package/dist/tools/send-audio.d.ts +2 -0
- package/dist/tools/send-audio.js +32 -0
- package/dist/tools/send-audio.js.map +1 -0
- package/dist/tools/send-button.d.ts +2 -0
- package/dist/tools/send-button.js +43 -0
- package/dist/tools/send-button.js.map +1 -0
- package/dist/tools/send-contact.d.ts +2 -0
- package/dist/tools/send-contact.js +36 -0
- package/dist/tools/send-contact.js.map +1 -0
- package/dist/tools/send-group-invite.d.ts +2 -0
- package/dist/tools/send-group-invite.js +29 -0
- package/dist/tools/send-group-invite.js.map +1 -0
- package/dist/tools/send-list.d.ts +2 -0
- package/dist/tools/send-list.js +47 -0
- package/dist/tools/send-list.js.map +1 -0
- package/dist/tools/send-location.d.ts +2 -0
- package/dist/tools/send-location.js +37 -0
- package/dist/tools/send-location.js.map +1 -0
- package/dist/tools/send-media.d.ts +2 -0
- package/dist/tools/send-media.js +45 -0
- package/dist/tools/send-media.js.map +1 -0
- package/dist/tools/send-poll.d.ts +2 -0
- package/dist/tools/send-poll.js +32 -0
- package/dist/tools/send-poll.js.map +1 -0
- package/dist/tools/send-presence.d.ts +2 -0
- package/dist/tools/send-presence.js +33 -0
- package/dist/tools/send-presence.js.map +1 -0
- package/dist/tools/send-reaction.d.ts +2 -0
- package/dist/tools/send-reaction.js +31 -0
- package/dist/tools/send-reaction.js.map +1 -0
- package/dist/tools/send-status.d.ts +2 -0
- package/dist/tools/send-status.js +40 -0
- package/dist/tools/send-status.js.map +1 -0
- package/dist/tools/send-sticker.d.ts +2 -0
- package/dist/tools/send-sticker.js +28 -0
- package/dist/tools/send-sticker.js.map +1 -0
- package/dist/tools/send-text.d.ts +2 -0
- package/dist/tools/send-text.js +31 -0
- package/dist/tools/send-text.js.map +1 -0
- package/dist/tools/set-settings.d.ts +2 -0
- package/dist/tools/set-settings.js +44 -0
- package/dist/tools/set-settings.js.map +1 -0
- package/dist/tools/set-webhook.d.ts +2 -0
- package/dist/tools/set-webhook.js +39 -0
- package/dist/tools/set-webhook.js.map +1 -0
- package/dist/tools/update-block-status.d.ts +2 -0
- package/dist/tools/update-block-status.js +28 -0
- package/dist/tools/update-block-status.js.map +1 -0
- package/dist/tools/update-group-description.d.ts +2 -0
- package/dist/tools/update-group-description.js +24 -0
- package/dist/tools/update-group-description.js.map +1 -0
- package/dist/tools/update-group-picture.d.ts +2 -0
- package/dist/tools/update-group-picture.js +24 -0
- package/dist/tools/update-group-picture.js.map +1 -0
- package/dist/tools/update-group-setting.d.ts +2 -0
- package/dist/tools/update-group-setting.js +25 -0
- package/dist/tools/update-group-setting.js.map +1 -0
- package/dist/tools/update-group-subject.d.ts +2 -0
- package/dist/tools/update-group-subject.js +24 -0
- package/dist/tools/update-group-subject.js.map +1 -0
- package/dist/tools/update-participants.d.ts +2 -0
- package/dist/tools/update-participants.js +26 -0
- package/dist/tools/update-participants.js.map +1 -0
- package/dist/tools/update-privacy.d.ts +2 -0
- package/dist/tools/update-privacy.js +45 -0
- package/dist/tools/update-privacy.js.map +1 -0
- package/dist/tools/update-profile-name.d.ts +2 -0
- package/dist/tools/update-profile-name.js +25 -0
- package/dist/tools/update-profile-name.js.map +1 -0
- package/dist/tools/update-profile-picture.d.ts +2 -0
- package/dist/tools/update-profile-picture.js +25 -0
- package/dist/tools/update-profile-picture.js.map +1 -0
- package/dist/tools/update-profile-status.d.ts +2 -0
- package/dist/tools/update-profile-status.js +25 -0
- package/dist/tools/update-profile-status.js.map +1 -0
- package/dist/util/db.d.ts +3 -0
- package/dist/util/db.js +23 -0
- package/dist/util/db.js.map +1 -0
- package/dist/util/normalize.d.ts +44 -0
- package/dist/util/normalize.js +68 -0
- package/dist/util/normalize.js.map +1 -0
- package/dist/util/redact.d.ts +11 -0
- package/dist/util/redact.js +54 -0
- package/dist/util/redact.js.map +1 -0
- package/package.json +53 -4
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { McpError } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
import { PhoneOrJidSchema } from "../schemas.js";
|
|
4
|
+
const schema = {
|
|
5
|
+
number: PhoneOrJidSchema,
|
|
6
|
+
sticker: z.string().min(1).describe("URL or base64 of the sticker (webp format)"),
|
|
7
|
+
};
|
|
8
|
+
export function registerSendSticker(server) {
|
|
9
|
+
server.registerTool("send_sticker", {
|
|
10
|
+
title: "Send Sticker",
|
|
11
|
+
description: "Send a sticker message via the selected WhatsApp instance.",
|
|
12
|
+
inputSchema: schema,
|
|
13
|
+
}, async (args, { client }) => {
|
|
14
|
+
try {
|
|
15
|
+
const data = await client.post(`/message/sendSticker/${client.instanceName}`, {
|
|
16
|
+
number: args.number,
|
|
17
|
+
sticker: args.sticker,
|
|
18
|
+
});
|
|
19
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
if (e instanceof McpError)
|
|
23
|
+
return { isError: true, content: [{ type: "text", text: e.message }] };
|
|
24
|
+
throw e;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=send-sticker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-sticker.js","sourceRoot":"","sources":["../../src/tools/send-sticker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,MAAM,GAAG;IACb,MAAM,EAAE,gBAAgB;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;CAClF,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,MAAoB;IACtD,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,4DAA4D;QACzE,WAAW,EAAE,MAAM;KACpB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,YAAY,EAAE,EAAE;gBAC5E,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC3G,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { McpError } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
import { PhoneOrJidSchema } from "../schemas.js";
|
|
4
|
+
const schema = {
|
|
5
|
+
number: PhoneOrJidSchema,
|
|
6
|
+
text: z.string().min(1).describe("Message text to send"),
|
|
7
|
+
};
|
|
8
|
+
export function registerSendText(server) {
|
|
9
|
+
server.registerTool("send_text", {
|
|
10
|
+
title: "Send Text",
|
|
11
|
+
description: "Send a text message via the selected WhatsApp instance.",
|
|
12
|
+
inputSchema: schema,
|
|
13
|
+
}, async (args, { client }) => {
|
|
14
|
+
try {
|
|
15
|
+
const data = await client.post(`/message/sendText/${client.instanceName}`, {
|
|
16
|
+
number: args.number,
|
|
17
|
+
text: args.text,
|
|
18
|
+
});
|
|
19
|
+
return {
|
|
20
|
+
content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
if (e instanceof McpError) {
|
|
25
|
+
return { isError: true, content: [{ type: "text", text: e.message }] };
|
|
26
|
+
}
|
|
27
|
+
throw e;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=send-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-text.js","sourceRoot":"","sources":["../../src/tools/send-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,MAAM,GAAG;IACb,MAAM,EAAE,gBAAgB;IACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;CACzD,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IACnD,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,yDAAyD;QACtE,WAAW,EAAE,MAAM;KACpB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,YAAY,EAAE,EAAE;gBACzE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC1E,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;gBAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAClF,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { McpError } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
const schema = {
|
|
4
|
+
rejectCall: z.boolean().optional().describe("Automatically reject incoming calls"),
|
|
5
|
+
msgCall: z.string().optional().describe("Auto-reply message when rejecting calls"),
|
|
6
|
+
groupsIgnore: z.boolean().optional().describe("Ignore messages from groups"),
|
|
7
|
+
alwaysOnline: z.boolean().optional().describe("Always appear online"),
|
|
8
|
+
readMessages: z.boolean().optional().describe("Automatically mark messages as read"),
|
|
9
|
+
syncFullHistory: z.boolean().optional().describe("Sync full message history on connect"),
|
|
10
|
+
readStatus: z.boolean().optional().describe("Automatically read status updates"),
|
|
11
|
+
};
|
|
12
|
+
export function registerSetSettings(server) {
|
|
13
|
+
server.registerTool("set_settings", {
|
|
14
|
+
title: "Set Settings",
|
|
15
|
+
description: "Update settings for the selected WhatsApp instance.",
|
|
16
|
+
inputSchema: schema,
|
|
17
|
+
}, async (args, { client }) => {
|
|
18
|
+
try {
|
|
19
|
+
const payload = {};
|
|
20
|
+
if (args.rejectCall !== undefined)
|
|
21
|
+
payload["rejectCall"] = args.rejectCall;
|
|
22
|
+
if (args.msgCall !== undefined)
|
|
23
|
+
payload["msgCall"] = args.msgCall;
|
|
24
|
+
if (args.groupsIgnore !== undefined)
|
|
25
|
+
payload["groupsIgnore"] = args.groupsIgnore;
|
|
26
|
+
if (args.alwaysOnline !== undefined)
|
|
27
|
+
payload["alwaysOnline"] = args.alwaysOnline;
|
|
28
|
+
if (args.readMessages !== undefined)
|
|
29
|
+
payload["readMessages"] = args.readMessages;
|
|
30
|
+
if (args.syncFullHistory !== undefined)
|
|
31
|
+
payload["syncFullHistory"] = args.syncFullHistory;
|
|
32
|
+
if (args.readStatus !== undefined)
|
|
33
|
+
payload["readStatus"] = args.readStatus;
|
|
34
|
+
const data = await client.post(`/settings/set/${client.instanceName}`, payload);
|
|
35
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
if (e instanceof McpError)
|
|
39
|
+
return { isError: true, content: [{ type: "text", text: e.message }] };
|
|
40
|
+
throw e;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=set-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-settings.js","sourceRoot":"","sources":["../../src/tools/set-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,MAAM,MAAM,GAAG;IACb,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAClF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IAClF,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC5E,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACrE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IACpF,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACxF,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CACjF,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,MAAoB;IACtD,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,qDAAqD;QAClE,WAAW,EAAE,MAAM;KACpB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,OAAO,GAA4B,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;gBAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;YAC3E,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;gBAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;YAClE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;gBAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;YACjF,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;gBAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;YACjF,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;gBAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;YACjF,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;gBAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;YAC1F,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;gBAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;YAC3E,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;YAChF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC3G,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { McpError } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
const schema = {
|
|
4
|
+
enabled: z.boolean().describe("Enable or disable the webhook"),
|
|
5
|
+
url: z.string().url().describe("Webhook URL to receive events"),
|
|
6
|
+
byEvents: z.boolean().optional().describe("Send separate requests per event type"),
|
|
7
|
+
base64: z.boolean().optional().describe("Send media as base64 in webhook payload"),
|
|
8
|
+
events: z.array(z.string()).describe("Events to subscribe to. Examples: MESSAGES_UPSERT, MESSAGES_UPDATE, SEND_MESSAGE, CONNECTION_UPDATE, QRCODE_UPDATED, etc."),
|
|
9
|
+
headers: z.record(z.string()).optional().describe("Custom HTTP headers to include in webhook requests"),
|
|
10
|
+
};
|
|
11
|
+
export function registerSetWebhook(server) {
|
|
12
|
+
server.registerTool("set_webhook", {
|
|
13
|
+
title: "Set Webhook",
|
|
14
|
+
description: "Configure the webhook for the selected WhatsApp instance.",
|
|
15
|
+
inputSchema: schema,
|
|
16
|
+
}, async (args, { client }) => {
|
|
17
|
+
try {
|
|
18
|
+
const webhook = {
|
|
19
|
+
enabled: args.enabled,
|
|
20
|
+
url: args.url,
|
|
21
|
+
events: args.events,
|
|
22
|
+
};
|
|
23
|
+
if (args.byEvents !== undefined)
|
|
24
|
+
webhook["byEvents"] = args.byEvents;
|
|
25
|
+
if (args.base64 !== undefined)
|
|
26
|
+
webhook["base64"] = args.base64;
|
|
27
|
+
if (args.headers !== undefined)
|
|
28
|
+
webhook["headers"] = args.headers;
|
|
29
|
+
const data = await client.post(`/webhook/set/${client.instanceName}`, { webhook });
|
|
30
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
if (e instanceof McpError)
|
|
34
|
+
return { isError: true, content: [{ type: "text", text: e.message }] };
|
|
35
|
+
throw e;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=set-webhook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-webhook.js","sourceRoot":"","sources":["../../src/tools/set-webhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC9D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC/D,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAClF,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IAClF,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAClC,2HAA2H,CAC5H;IACD,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;CACxG,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,MAAoB;IACrD,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,2DAA2D;QACxE,WAAW,EAAE,MAAM;KACpB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,OAAO,GAA4B;gBACvC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC;YACF,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrE,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAC/D,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;gBAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;YAClE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACnF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC3G,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { McpError } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
import { PhoneOrJidSchema } from "../schemas.js";
|
|
4
|
+
const schema = {
|
|
5
|
+
number: PhoneOrJidSchema,
|
|
6
|
+
status: z.enum(["block", "unblock"]).describe("block: block the contact; unblock: unblock the contact"),
|
|
7
|
+
};
|
|
8
|
+
export function registerUpdateBlockStatus(server) {
|
|
9
|
+
server.registerTool("update_block_status", {
|
|
10
|
+
title: "Update Block Status",
|
|
11
|
+
description: "Block or unblock a WhatsApp contact via the selected instance.",
|
|
12
|
+
inputSchema: schema,
|
|
13
|
+
}, async (args, { client }) => {
|
|
14
|
+
try {
|
|
15
|
+
const data = await client.post(`/chat/updateBlockStatus/${client.instanceName}`, {
|
|
16
|
+
number: args.number,
|
|
17
|
+
status: args.status,
|
|
18
|
+
});
|
|
19
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
if (e instanceof McpError)
|
|
23
|
+
return { isError: true, content: [{ type: "text", text: e.message }] };
|
|
24
|
+
throw e;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=update-block-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-block-status.js","sourceRoot":"","sources":["../../src/tools/update-block-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,MAAM,GAAG;IACb,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,wDAAwD,CAAC;CACxG,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,MAAoB;IAC5D,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,gEAAgE;QAC7E,WAAW,EAAE,MAAM;KACpB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,2BAA2B,MAAM,CAAC,YAAY,EAAE,EAAE;gBAC/E,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC3G,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { McpError } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
const schema = {
|
|
4
|
+
groupJid: z.string().min(1).describe("Group JID (e.g. 120363000000000000@g.us)"),
|
|
5
|
+
description: z.string().describe("New group description (empty string to clear)"),
|
|
6
|
+
};
|
|
7
|
+
export function registerUpdateGroupDescription(server) {
|
|
8
|
+
server.registerTool("update_group_description", {
|
|
9
|
+
title: "Update Group Description",
|
|
10
|
+
description: "Update the description of a WhatsApp group via the selected instance.",
|
|
11
|
+
inputSchema: schema,
|
|
12
|
+
}, async (args, { client }) => {
|
|
13
|
+
try {
|
|
14
|
+
const data = await client.post(`/group/updateGroupDescription/${client.instanceName}?groupJid=${encodeURIComponent(args.groupJid)}`, { description: args.description });
|
|
15
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
if (e instanceof McpError)
|
|
19
|
+
return { isError: true, content: [{ type: "text", text: e.message }] };
|
|
20
|
+
throw e;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=update-group-description.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-group-description.js","sourceRoot":"","sources":["../../src/tools/update-group-description.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,MAAM,MAAM,GAAG;IACb,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAChF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;CAClF,CAAC;AAEF,MAAM,UAAU,8BAA8B,CAAC,MAAoB;IACjE,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE,MAAM;KACpB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAC5B,iCAAiC,MAAM,CAAC,YAAY,aAAa,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EACpG,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAClC,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC3G,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { McpError } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
const schema = {
|
|
4
|
+
groupJid: z.string().min(1).describe("Group JID (e.g. 120363000000000000@g.us)"),
|
|
5
|
+
image: z.string().min(1).describe("Base64 encoded image or URL for the group picture"),
|
|
6
|
+
};
|
|
7
|
+
export function registerUpdateGroupPicture(server) {
|
|
8
|
+
server.registerTool("update_group_picture", {
|
|
9
|
+
title: "Update Group Picture",
|
|
10
|
+
description: "Update the profile picture of a WhatsApp group via the selected instance.",
|
|
11
|
+
inputSchema: schema,
|
|
12
|
+
}, async (args, { client }) => {
|
|
13
|
+
try {
|
|
14
|
+
const data = await client.post(`/group/updateGroupPicture/${client.instanceName}?groupJid=${encodeURIComponent(args.groupJid)}`, { image: args.image });
|
|
15
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
if (e instanceof McpError)
|
|
19
|
+
return { isError: true, content: [{ type: "text", text: e.message }] };
|
|
20
|
+
throw e;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=update-group-picture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-group-picture.js","sourceRoot":"","sources":["../../src/tools/update-group-picture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,MAAM,MAAM,GAAG;IACb,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAChF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mDAAmD,CAAC;CACvF,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,MAAoB;IAC7D,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,2EAA2E;QACxF,WAAW,EAAE,MAAM;KACpB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAC5B,6BAA6B,MAAM,CAAC,YAAY,aAAa,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAChG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CACtB,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC3G,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { McpError } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
const schema = {
|
|
4
|
+
groupJid: z.string().min(1).describe("Group JID (e.g. 120363000000000000@g.us)"),
|
|
5
|
+
action: z.enum(["announcement", "not_announcement", "locked", "unlocked"])
|
|
6
|
+
.describe("announcement: only admins can send; not_announcement: all can send; locked/unlocked: group info edit"),
|
|
7
|
+
};
|
|
8
|
+
export function registerUpdateGroupSetting(server) {
|
|
9
|
+
server.registerTool("update_group_setting", {
|
|
10
|
+
title: "Update Group Setting",
|
|
11
|
+
description: "Update group settings (announcement mode, locked) via the selected instance.",
|
|
12
|
+
inputSchema: schema,
|
|
13
|
+
}, async (args, { client }) => {
|
|
14
|
+
try {
|
|
15
|
+
const data = await client.post(`/group/updateSetting/${client.instanceName}?groupJid=${encodeURIComponent(args.groupJid)}`, { action: args.action });
|
|
16
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
17
|
+
}
|
|
18
|
+
catch (e) {
|
|
19
|
+
if (e instanceof McpError)
|
|
20
|
+
return { isError: true, content: [{ type: "text", text: e.message }] };
|
|
21
|
+
throw e;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=update-group-setting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-group-setting.js","sourceRoot":"","sources":["../../src/tools/update-group-setting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,MAAM,MAAM,GAAG;IACb,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAChF,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,kBAAkB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;SACvE,QAAQ,CAAC,sGAAsG,CAAC;CACpH,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,MAAoB;IAC7D,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,8EAA8E;QAC3F,WAAW,EAAE,MAAM;KACpB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAC5B,wBAAwB,MAAM,CAAC,YAAY,aAAa,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAC3F,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACxB,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC3G,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { McpError } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
const schema = {
|
|
4
|
+
groupJid: z.string().min(1).describe("Group JID (e.g. 120363000000000000@g.us)"),
|
|
5
|
+
subject: z.string().min(1).describe("New group subject/name"),
|
|
6
|
+
};
|
|
7
|
+
export function registerUpdateGroupSubject(server) {
|
|
8
|
+
server.registerTool("update_group_subject", {
|
|
9
|
+
title: "Update Group Subject",
|
|
10
|
+
description: "Update the name/subject of a WhatsApp group via the selected instance.",
|
|
11
|
+
inputSchema: schema,
|
|
12
|
+
}, async (args, { client }) => {
|
|
13
|
+
try {
|
|
14
|
+
const data = await client.post(`/group/updateGroupSubject/${client.instanceName}?groupJid=${encodeURIComponent(args.groupJid)}`, { subject: args.subject });
|
|
15
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
if (e instanceof McpError)
|
|
19
|
+
return { isError: true, content: [{ type: "text", text: e.message }] };
|
|
20
|
+
throw e;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=update-group-subject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-group-subject.js","sourceRoot":"","sources":["../../src/tools/update-group-subject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,MAAM,MAAM,GAAG;IACb,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAChF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CAC9D,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,MAAoB;IAC7D,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,wEAAwE;QACrF,WAAW,EAAE,MAAM;KACpB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAC5B,6BAA6B,MAAM,CAAC,YAAY,aAAa,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAChG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAC1B,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC3G,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { McpError } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
const schema = {
|
|
4
|
+
groupJid: z.string().min(1).describe("Group JID (e.g. 120363000000000000@g.us)"),
|
|
5
|
+
action: z.enum(["add", "remove", "promote", "demote"])
|
|
6
|
+
.describe("Action: add/remove members, promote to admin, demote from admin"),
|
|
7
|
+
participants: z.array(z.string().min(1)).min(1).describe("Phone numbers or JIDs of participants"),
|
|
8
|
+
};
|
|
9
|
+
export function registerUpdateParticipants(server) {
|
|
10
|
+
server.registerTool("update_participants", {
|
|
11
|
+
title: "Update Participants",
|
|
12
|
+
description: "Add, remove, promote, or demote participants in a WhatsApp group via the selected instance.",
|
|
13
|
+
inputSchema: schema,
|
|
14
|
+
}, async (args, { client }) => {
|
|
15
|
+
try {
|
|
16
|
+
const data = await client.post(`/group/updateParticipant/${client.instanceName}?groupJid=${encodeURIComponent(args.groupJid)}`, { action: args.action, participants: args.participants });
|
|
17
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
18
|
+
}
|
|
19
|
+
catch (e) {
|
|
20
|
+
if (e instanceof McpError)
|
|
21
|
+
return { isError: true, content: [{ type: "text", text: e.message }] };
|
|
22
|
+
throw e;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=update-participants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-participants.js","sourceRoot":"","sources":["../../src/tools/update-participants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,MAAM,MAAM,GAAG;IACb,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAChF,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SACnD,QAAQ,CAAC,iEAAiE,CAAC;IAC9E,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;CAClG,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,MAAoB;IAC7D,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,6FAA6F;QAC1G,WAAW,EAAE,MAAM;KACpB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAC5B,4BAA4B,MAAM,CAAC,YAAY,aAAa,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAC/F,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CACzD,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC3G,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { McpError } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
const PrivacyValueSchema = z.enum(["all", "contacts", "contact_blacklist", "none"]);
|
|
4
|
+
const schema = {
|
|
5
|
+
readreceipts: PrivacyValueSchema.optional().describe("Who can see read receipts"),
|
|
6
|
+
profile: PrivacyValueSchema.optional().describe("Who can see the profile picture"),
|
|
7
|
+
status: PrivacyValueSchema.optional().describe("Who can see status updates"),
|
|
8
|
+
online: PrivacyValueSchema.optional().describe("Who can see online status"),
|
|
9
|
+
last: PrivacyValueSchema.optional().describe("Who can see last seen"),
|
|
10
|
+
groupadd: PrivacyValueSchema.optional().describe("Who can add to groups"),
|
|
11
|
+
calladd: PrivacyValueSchema.optional().describe("Who can call"),
|
|
12
|
+
};
|
|
13
|
+
export function registerUpdatePrivacy(server) {
|
|
14
|
+
server.registerTool("update_privacy", {
|
|
15
|
+
title: "Update Privacy Settings",
|
|
16
|
+
description: "Update privacy settings for the selected WhatsApp instance. Values: all, contacts, contact_blacklist, none.",
|
|
17
|
+
inputSchema: schema,
|
|
18
|
+
}, async (args, { client }) => {
|
|
19
|
+
try {
|
|
20
|
+
const payload = {};
|
|
21
|
+
if (args.readreceipts !== undefined)
|
|
22
|
+
payload["readreceipts"] = args.readreceipts;
|
|
23
|
+
if (args.profile !== undefined)
|
|
24
|
+
payload["profile"] = args.profile;
|
|
25
|
+
if (args.status !== undefined)
|
|
26
|
+
payload["status"] = args.status;
|
|
27
|
+
if (args.online !== undefined)
|
|
28
|
+
payload["online"] = args.online;
|
|
29
|
+
if (args.last !== undefined)
|
|
30
|
+
payload["last"] = args.last;
|
|
31
|
+
if (args.groupadd !== undefined)
|
|
32
|
+
payload["groupadd"] = args.groupadd;
|
|
33
|
+
if (args.calladd !== undefined)
|
|
34
|
+
payload["calladd"] = args.calladd;
|
|
35
|
+
const data = await client.post(`/chat/updatePrivacySettings/${client.instanceName}`, payload);
|
|
36
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
if (e instanceof McpError)
|
|
40
|
+
return { isError: true, content: [{ type: "text", text: e.message }] };
|
|
41
|
+
throw e;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=update-privacy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-privacy.js","sourceRoot":"","sources":["../../src/tools/update-privacy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC;AAEpF,MAAM,MAAM,GAAG;IACb,YAAY,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACjF,OAAO,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAClF,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC5E,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC3E,IAAI,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACrE,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACzE,OAAO,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;CAChE,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,MAAoB;IACxD,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,6GAA6G;QAC1H,WAAW,EAAE,MAAM;KACpB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,OAAO,GAA4B,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;gBAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;YACjF,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;gBAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;YAClE,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAC/D,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAC/D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;YACzD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;gBAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;YAClE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,+BAA+B,MAAM,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;YAC9F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC3G,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { McpError } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
const schema = {
|
|
4
|
+
name: z.string().min(1).describe("New display name for the WhatsApp profile"),
|
|
5
|
+
};
|
|
6
|
+
export function registerUpdateProfileName(server) {
|
|
7
|
+
server.registerTool("update_profile_name", {
|
|
8
|
+
title: "Update Profile Name",
|
|
9
|
+
description: "Update the display name of the selected WhatsApp instance's profile.",
|
|
10
|
+
inputSchema: schema,
|
|
11
|
+
}, async (args, { client }) => {
|
|
12
|
+
try {
|
|
13
|
+
const data = await client.post(`/chat/updateProfileName/${client.instanceName}`, {
|
|
14
|
+
name: args.name,
|
|
15
|
+
});
|
|
16
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
17
|
+
}
|
|
18
|
+
catch (e) {
|
|
19
|
+
if (e instanceof McpError)
|
|
20
|
+
return { isError: true, content: [{ type: "text", text: e.message }] };
|
|
21
|
+
throw e;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=update-profile-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-profile-name.js","sourceRoot":"","sources":["../../src/tools/update-profile-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;CAC9E,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,MAAoB;IAC5D,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,sEAAsE;QACnF,WAAW,EAAE,MAAM;KACpB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,2BAA2B,MAAM,CAAC,YAAY,EAAE,EAAE;gBAC/E,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC3G,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { McpError } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
const schema = {
|
|
4
|
+
picture: z.string().min(1).describe("Base64 encoded image or URL for the profile picture"),
|
|
5
|
+
};
|
|
6
|
+
export function registerUpdateProfilePicture(server) {
|
|
7
|
+
server.registerTool("update_profile_picture", {
|
|
8
|
+
title: "Update Profile Picture",
|
|
9
|
+
description: "Update the profile picture of the selected WhatsApp instance.",
|
|
10
|
+
inputSchema: schema,
|
|
11
|
+
}, async (args, { client }) => {
|
|
12
|
+
try {
|
|
13
|
+
const data = await client.post(`/chat/updateProfilePicture/${client.instanceName}`, {
|
|
14
|
+
picture: args.picture,
|
|
15
|
+
});
|
|
16
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
17
|
+
}
|
|
18
|
+
catch (e) {
|
|
19
|
+
if (e instanceof McpError)
|
|
20
|
+
return { isError: true, content: [{ type: "text", text: e.message }] };
|
|
21
|
+
throw e;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=update-profile-picture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-profile-picture.js","sourceRoot":"","sources":["../../src/tools/update-profile-picture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qDAAqD,CAAC;CAC3F,CAAC;AAEF,MAAM,UAAU,4BAA4B,CAAC,MAAoB;IAC/D,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,+DAA+D;QAC5E,WAAW,EAAE,MAAM;KACpB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,8BAA8B,MAAM,CAAC,YAAY,EAAE,EAAE;gBAClF,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC3G,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { McpError } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
const schema = {
|
|
4
|
+
status: z.string().min(1).describe("New status text (about) for the WhatsApp profile"),
|
|
5
|
+
};
|
|
6
|
+
export function registerUpdateProfileStatus(server) {
|
|
7
|
+
server.registerTool("update_profile_status", {
|
|
8
|
+
title: "Update Profile Status",
|
|
9
|
+
description: "Update the 'about' status text of the selected WhatsApp instance's profile.",
|
|
10
|
+
inputSchema: schema,
|
|
11
|
+
}, async (args, { client }) => {
|
|
12
|
+
try {
|
|
13
|
+
const data = await client.post(`/chat/updateProfileStatus/${client.instanceName}`, {
|
|
14
|
+
status: args.status,
|
|
15
|
+
});
|
|
16
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
17
|
+
}
|
|
18
|
+
catch (e) {
|
|
19
|
+
if (e instanceof McpError)
|
|
20
|
+
return { isError: true, content: [{ type: "text", text: e.message }] };
|
|
21
|
+
throw e;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=update-profile-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-profile-status.js","sourceRoot":"","sources":["../../src/tools/update-profile-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,MAAM,MAAM,GAAG;IACb,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC;CACvF,CAAC;AAEF,MAAM,UAAU,2BAA2B,CAAC,MAAoB;IAC9D,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,6EAA6E;QAC1F,WAAW,EAAE,MAAM;KACpB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,6BAA6B,MAAM,CAAC,YAAY,EAAE,EAAE;gBACjF,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC3G,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/util/db.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Pool } from "pg";
|
|
2
|
+
let pool = null;
|
|
3
|
+
export function getPool() {
|
|
4
|
+
if (pool)
|
|
5
|
+
return pool;
|
|
6
|
+
const url = process.env.EVOLUTION_DB_URL;
|
|
7
|
+
if (!url)
|
|
8
|
+
return null;
|
|
9
|
+
pool = new Pool({
|
|
10
|
+
connectionString: url,
|
|
11
|
+
max: 4,
|
|
12
|
+
idleTimeoutMillis: 30_000,
|
|
13
|
+
connectionTimeoutMillis: 5_000,
|
|
14
|
+
});
|
|
15
|
+
pool.on("error", (err) => {
|
|
16
|
+
console.error("[mcp-evolution] pg pool error:", err.message);
|
|
17
|
+
});
|
|
18
|
+
return pool;
|
|
19
|
+
}
|
|
20
|
+
export function isDbConfigured() {
|
|
21
|
+
return Boolean(process.env.EVOLUTION_DB_URL);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=db.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/util/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE1B,IAAI,IAAI,GAAgB,IAAI,CAAC;AAE7B,MAAM,UAAU,OAAO;IACrB,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACzC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,GAAG,IAAI,IAAI,CAAC;QACd,gBAAgB,EAAE,GAAG;QACrB,GAAG,EAAE,CAAC;QACN,iBAAiB,EAAE,MAAM;QACzB,uBAAuB,EAAE,KAAK;KAC/B,CAAC,CAAC;IACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACvB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC/C,CAAC"}
|