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.
Files changed (211) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/LICENSE +21 -0
  3. package/README.md +377 -2
  4. package/dist/config.d.ts +23 -0
  5. package/dist/config.js +113 -0
  6. package/dist/config.js.map +1 -0
  7. package/dist/errors.d.ts +8 -0
  8. package/dist/errors.js +15 -0
  9. package/dist/errors.js.map +1 -0
  10. package/dist/evolution-client.d.ts +34 -0
  11. package/dist/evolution-client.js +84 -0
  12. package/dist/evolution-client.js.map +1 -0
  13. package/dist/guards/recipients.d.ts +40 -0
  14. package/dist/guards/recipients.js +135 -0
  15. package/dist/guards/recipients.js.map +1 -0
  16. package/dist/guards/tools.d.ts +16 -0
  17. package/dist/guards/tools.js +154 -0
  18. package/dist/guards/tools.js.map +1 -0
  19. package/dist/http.d.ts +19 -0
  20. package/dist/http.js +103 -0
  21. package/dist/http.js.map +1 -0
  22. package/dist/index.d.ts +2 -0
  23. package/dist/index.js +7 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/registry.d.ts +36 -0
  26. package/dist/registry.js +68 -0
  27. package/dist/registry.js.map +1 -0
  28. package/dist/schemas.d.ts +4 -0
  29. package/dist/schemas.js +16 -0
  30. package/dist/schemas.js.map +1 -0
  31. package/dist/server.d.ts +5 -0
  32. package/dist/server.js +74 -0
  33. package/dist/server.js.map +1 -0
  34. package/dist/tools/accept-invite.d.ts +2 -0
  35. package/dist/tools/accept-invite.js +23 -0
  36. package/dist/tools/accept-invite.js.map +1 -0
  37. package/dist/tools/archive-chat.d.ts +2 -0
  38. package/dist/tools/archive-chat.js +35 -0
  39. package/dist/tools/archive-chat.js.map +1 -0
  40. package/dist/tools/check-number.d.ts +2 -0
  41. package/dist/tools/check-number.js +25 -0
  42. package/dist/tools/check-number.js.map +1 -0
  43. package/dist/tools/connection-state.d.ts +2 -0
  44. package/dist/tools/connection-state.js +19 -0
  45. package/dist/tools/connection-state.js.map +1 -0
  46. package/dist/tools/create-group.d.ts +2 -0
  47. package/dist/tools/create-group.js +31 -0
  48. package/dist/tools/create-group.js.map +1 -0
  49. package/dist/tools/delete-message.d.ts +2 -0
  50. package/dist/tools/delete-message.js +33 -0
  51. package/dist/tools/delete-message.js.map +1 -0
  52. package/dist/tools/download-media.d.ts +2 -0
  53. package/dist/tools/download-media.js +59 -0
  54. package/dist/tools/download-media.js.map +1 -0
  55. package/dist/tools/fetch-business-profile.d.ts +2 -0
  56. package/dist/tools/fetch-business-profile.js +25 -0
  57. package/dist/tools/fetch-business-profile.js.map +1 -0
  58. package/dist/tools/fetch-invite-code.d.ts +2 -0
  59. package/dist/tools/fetch-invite-code.js +23 -0
  60. package/dist/tools/fetch-invite-code.js.map +1 -0
  61. package/dist/tools/fetch-privacy.d.ts +2 -0
  62. package/dist/tools/fetch-privacy.js +19 -0
  63. package/dist/tools/fetch-privacy.js.map +1 -0
  64. package/dist/tools/fetch-profile-picture.d.ts +2 -0
  65. package/dist/tools/fetch-profile-picture.js +25 -0
  66. package/dist/tools/fetch-profile-picture.js.map +1 -0
  67. package/dist/tools/find-chats.d.ts +2 -0
  68. package/dist/tools/find-chats.js +74 -0
  69. package/dist/tools/find-chats.js.map +1 -0
  70. package/dist/tools/find-contacts.d.ts +2 -0
  71. package/dist/tools/find-contacts.js +74 -0
  72. package/dist/tools/find-contacts.js.map +1 -0
  73. package/dist/tools/find-group-by-invite.d.ts +2 -0
  74. package/dist/tools/find-group-by-invite.js +56 -0
  75. package/dist/tools/find-group-by-invite.js.map +1 -0
  76. package/dist/tools/find-labels.d.ts +2 -0
  77. package/dist/tools/find-labels.js +22 -0
  78. package/dist/tools/find-labels.js.map +1 -0
  79. package/dist/tools/find-messages.d.ts +2 -0
  80. package/dist/tools/find-messages.js +55 -0
  81. package/dist/tools/find-messages.js.map +1 -0
  82. package/dist/tools/find-webhook.d.ts +2 -0
  83. package/dist/tools/find-webhook.js +19 -0
  84. package/dist/tools/find-webhook.js.map +1 -0
  85. package/dist/tools/get-chat-history.d.ts +2 -0
  86. package/dist/tools/get-chat-history.js +55 -0
  87. package/dist/tools/get-chat-history.js.map +1 -0
  88. package/dist/tools/get-group-info.d.ts +2 -0
  89. package/dist/tools/get-group-info.js +58 -0
  90. package/dist/tools/get-group-info.js.map +1 -0
  91. package/dist/tools/get-group-resolved-participants.d.ts +2 -0
  92. package/dist/tools/get-group-resolved-participants.js +170 -0
  93. package/dist/tools/get-group-resolved-participants.js.map +1 -0
  94. package/dist/tools/get-settings.d.ts +2 -0
  95. package/dist/tools/get-settings.js +19 -0
  96. package/dist/tools/get-settings.js.map +1 -0
  97. package/dist/tools/handle-label.d.ts +2 -0
  98. package/dist/tools/handle-label.js +30 -0
  99. package/dist/tools/handle-label.js.map +1 -0
  100. package/dist/tools/index.d.ts +2 -0
  101. package/dist/tools/index.js +131 -0
  102. package/dist/tools/index.js.map +1 -0
  103. package/dist/tools/leave-group.d.ts +2 -0
  104. package/dist/tools/leave-group.js +23 -0
  105. package/dist/tools/leave-group.js.map +1 -0
  106. package/dist/tools/list-groups.d.ts +2 -0
  107. package/dist/tools/list-groups.js +53 -0
  108. package/dist/tools/list-groups.js.map +1 -0
  109. package/dist/tools/list-instances.d.ts +2 -0
  110. package/dist/tools/list-instances.js +37 -0
  111. package/dist/tools/list-instances.js.map +1 -0
  112. package/dist/tools/logout-instance.d.ts +2 -0
  113. package/dist/tools/logout-instance.js +19 -0
  114. package/dist/tools/logout-instance.js.map +1 -0
  115. package/dist/tools/mark-as-read.d.ts +2 -0
  116. package/dist/tools/mark-as-read.js +30 -0
  117. package/dist/tools/mark-as-read.js.map +1 -0
  118. package/dist/tools/remove-profile-picture.d.ts +2 -0
  119. package/dist/tools/remove-profile-picture.js +19 -0
  120. package/dist/tools/remove-profile-picture.js.map +1 -0
  121. package/dist/tools/restart-instance.d.ts +2 -0
  122. package/dist/tools/restart-instance.js +19 -0
  123. package/dist/tools/restart-instance.js.map +1 -0
  124. package/dist/tools/revoke-invite-code.d.ts +2 -0
  125. package/dist/tools/revoke-invite-code.js +23 -0
  126. package/dist/tools/revoke-invite-code.js.map +1 -0
  127. package/dist/tools/send-audio.d.ts +2 -0
  128. package/dist/tools/send-audio.js +32 -0
  129. package/dist/tools/send-audio.js.map +1 -0
  130. package/dist/tools/send-button.d.ts +2 -0
  131. package/dist/tools/send-button.js +43 -0
  132. package/dist/tools/send-button.js.map +1 -0
  133. package/dist/tools/send-contact.d.ts +2 -0
  134. package/dist/tools/send-contact.js +36 -0
  135. package/dist/tools/send-contact.js.map +1 -0
  136. package/dist/tools/send-group-invite.d.ts +2 -0
  137. package/dist/tools/send-group-invite.js +29 -0
  138. package/dist/tools/send-group-invite.js.map +1 -0
  139. package/dist/tools/send-list.d.ts +2 -0
  140. package/dist/tools/send-list.js +47 -0
  141. package/dist/tools/send-list.js.map +1 -0
  142. package/dist/tools/send-location.d.ts +2 -0
  143. package/dist/tools/send-location.js +37 -0
  144. package/dist/tools/send-location.js.map +1 -0
  145. package/dist/tools/send-media.d.ts +2 -0
  146. package/dist/tools/send-media.js +45 -0
  147. package/dist/tools/send-media.js.map +1 -0
  148. package/dist/tools/send-poll.d.ts +2 -0
  149. package/dist/tools/send-poll.js +32 -0
  150. package/dist/tools/send-poll.js.map +1 -0
  151. package/dist/tools/send-presence.d.ts +2 -0
  152. package/dist/tools/send-presence.js +33 -0
  153. package/dist/tools/send-presence.js.map +1 -0
  154. package/dist/tools/send-reaction.d.ts +2 -0
  155. package/dist/tools/send-reaction.js +31 -0
  156. package/dist/tools/send-reaction.js.map +1 -0
  157. package/dist/tools/send-status.d.ts +2 -0
  158. package/dist/tools/send-status.js +40 -0
  159. package/dist/tools/send-status.js.map +1 -0
  160. package/dist/tools/send-sticker.d.ts +2 -0
  161. package/dist/tools/send-sticker.js +28 -0
  162. package/dist/tools/send-sticker.js.map +1 -0
  163. package/dist/tools/send-text.d.ts +2 -0
  164. package/dist/tools/send-text.js +31 -0
  165. package/dist/tools/send-text.js.map +1 -0
  166. package/dist/tools/set-settings.d.ts +2 -0
  167. package/dist/tools/set-settings.js +44 -0
  168. package/dist/tools/set-settings.js.map +1 -0
  169. package/dist/tools/set-webhook.d.ts +2 -0
  170. package/dist/tools/set-webhook.js +39 -0
  171. package/dist/tools/set-webhook.js.map +1 -0
  172. package/dist/tools/update-block-status.d.ts +2 -0
  173. package/dist/tools/update-block-status.js +28 -0
  174. package/dist/tools/update-block-status.js.map +1 -0
  175. package/dist/tools/update-group-description.d.ts +2 -0
  176. package/dist/tools/update-group-description.js +24 -0
  177. package/dist/tools/update-group-description.js.map +1 -0
  178. package/dist/tools/update-group-picture.d.ts +2 -0
  179. package/dist/tools/update-group-picture.js +24 -0
  180. package/dist/tools/update-group-picture.js.map +1 -0
  181. package/dist/tools/update-group-setting.d.ts +2 -0
  182. package/dist/tools/update-group-setting.js +25 -0
  183. package/dist/tools/update-group-setting.js.map +1 -0
  184. package/dist/tools/update-group-subject.d.ts +2 -0
  185. package/dist/tools/update-group-subject.js +24 -0
  186. package/dist/tools/update-group-subject.js.map +1 -0
  187. package/dist/tools/update-participants.d.ts +2 -0
  188. package/dist/tools/update-participants.js +26 -0
  189. package/dist/tools/update-participants.js.map +1 -0
  190. package/dist/tools/update-privacy.d.ts +2 -0
  191. package/dist/tools/update-privacy.js +45 -0
  192. package/dist/tools/update-privacy.js.map +1 -0
  193. package/dist/tools/update-profile-name.d.ts +2 -0
  194. package/dist/tools/update-profile-name.js +25 -0
  195. package/dist/tools/update-profile-name.js.map +1 -0
  196. package/dist/tools/update-profile-picture.d.ts +2 -0
  197. package/dist/tools/update-profile-picture.js +25 -0
  198. package/dist/tools/update-profile-picture.js.map +1 -0
  199. package/dist/tools/update-profile-status.d.ts +2 -0
  200. package/dist/tools/update-profile-status.js +25 -0
  201. package/dist/tools/update-profile-status.js.map +1 -0
  202. package/dist/util/db.d.ts +3 -0
  203. package/dist/util/db.js +23 -0
  204. package/dist/util/db.js.map +1 -0
  205. package/dist/util/normalize.d.ts +44 -0
  206. package/dist/util/normalize.js +68 -0
  207. package/dist/util/normalize.js.map +1 -0
  208. package/dist/util/redact.d.ts +11 -0
  209. package/dist/util/redact.js +54 -0
  210. package/dist/util/redact.js.map +1 -0
  211. 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,2 @@
1
+ import type { ToolRegistry } from "../registry.js";
2
+ export declare function registerSendText(server: ToolRegistry): void;
@@ -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,2 @@
1
+ import type { ToolRegistry } from "../registry.js";
2
+ export declare function registerSetSettings(server: ToolRegistry): void;
@@ -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,2 @@
1
+ import type { ToolRegistry } from "../registry.js";
2
+ export declare function registerSetWebhook(server: ToolRegistry): void;
@@ -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,2 @@
1
+ import type { ToolRegistry } from "../registry.js";
2
+ export declare function registerUpdateBlockStatus(server: ToolRegistry): void;
@@ -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,2 @@
1
+ import type { ToolRegistry } from "../registry.js";
2
+ export declare function registerUpdateGroupDescription(server: ToolRegistry): void;
@@ -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,2 @@
1
+ import type { ToolRegistry } from "../registry.js";
2
+ export declare function registerUpdateGroupPicture(server: ToolRegistry): void;
@@ -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,2 @@
1
+ import type { ToolRegistry } from "../registry.js";
2
+ export declare function registerUpdateGroupSetting(server: ToolRegistry): void;
@@ -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,2 @@
1
+ import type { ToolRegistry } from "../registry.js";
2
+ export declare function registerUpdateGroupSubject(server: ToolRegistry): void;
@@ -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,2 @@
1
+ import type { ToolRegistry } from "../registry.js";
2
+ export declare function registerUpdateParticipants(server: ToolRegistry): void;
@@ -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,2 @@
1
+ import type { ToolRegistry } from "../registry.js";
2
+ export declare function registerUpdatePrivacy(server: ToolRegistry): void;
@@ -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,2 @@
1
+ import type { ToolRegistry } from "../registry.js";
2
+ export declare function registerUpdateProfileName(server: ToolRegistry): void;
@@ -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,2 @@
1
+ import type { ToolRegistry } from "../registry.js";
2
+ export declare function registerUpdateProfilePicture(server: ToolRegistry): void;
@@ -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,2 @@
1
+ import type { ToolRegistry } from "../registry.js";
2
+ export declare function registerUpdateProfileStatus(server: ToolRegistry): void;
@@ -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"}
@@ -0,0 +1,3 @@
1
+ import { Pool } from "pg";
2
+ export declare function getPool(): Pool | null;
3
+ export declare function isDbConfigured(): boolean;
@@ -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"}