integrate-sdk 0.8.29-dev.0 → 0.8.31-dev.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 (79) hide show
  1. package/dist/adapters/auto-routes.js +655 -0
  2. package/dist/adapters/index.js +655 -0
  3. package/dist/adapters/nextjs.js +655 -0
  4. package/dist/adapters/node.js +655 -0
  5. package/dist/adapters/svelte-kit.js +655 -0
  6. package/dist/adapters/tanstack-start.js +655 -0
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +696 -1
  10. package/dist/oauth.js +655 -0
  11. package/dist/server.js +670 -0
  12. package/dist/src/client.d.ts +16 -1
  13. package/dist/src/client.d.ts.map +1 -1
  14. package/dist/src/index.d.ts +30 -0
  15. package/dist/src/index.d.ts.map +1 -1
  16. package/dist/src/integrations/airtable-client.d.ts +260 -0
  17. package/dist/src/integrations/airtable-client.d.ts.map +1 -0
  18. package/dist/src/integrations/airtable.d.ts +37 -0
  19. package/dist/src/integrations/airtable.d.ts.map +1 -0
  20. package/dist/src/integrations/calcom-client.d.ts +355 -0
  21. package/dist/src/integrations/calcom-client.d.ts.map +1 -0
  22. package/dist/src/integrations/calcom.d.ts +39 -0
  23. package/dist/src/integrations/calcom.d.ts.map +1 -0
  24. package/dist/src/integrations/figma-client.d.ts +327 -0
  25. package/dist/src/integrations/figma-client.d.ts.map +1 -0
  26. package/dist/src/integrations/figma.d.ts +37 -0
  27. package/dist/src/integrations/figma.d.ts.map +1 -0
  28. package/dist/src/integrations/gcal-client.d.ts +370 -0
  29. package/dist/src/integrations/gcal-client.d.ts.map +1 -0
  30. package/dist/src/integrations/gcal.d.ts +37 -0
  31. package/dist/src/integrations/gcal.d.ts.map +1 -0
  32. package/dist/src/integrations/gworkspace-client.d.ts +392 -0
  33. package/dist/src/integrations/gworkspace-client.d.ts.map +1 -0
  34. package/dist/src/integrations/gworkspace.d.ts +37 -0
  35. package/dist/src/integrations/gworkspace.d.ts.map +1 -0
  36. package/dist/src/integrations/hubspot-client.d.ts +367 -0
  37. package/dist/src/integrations/hubspot-client.d.ts.map +1 -0
  38. package/dist/src/integrations/hubspot.d.ts +37 -0
  39. package/dist/src/integrations/hubspot.d.ts.map +1 -0
  40. package/dist/src/integrations/intercom-client.d.ts +414 -0
  41. package/dist/src/integrations/intercom-client.d.ts.map +1 -0
  42. package/dist/src/integrations/intercom.d.ts +37 -0
  43. package/dist/src/integrations/intercom.d.ts.map +1 -0
  44. package/dist/src/integrations/onedrive-client.d.ts +338 -0
  45. package/dist/src/integrations/onedrive-client.d.ts.map +1 -0
  46. package/dist/src/integrations/onedrive.d.ts +37 -0
  47. package/dist/src/integrations/onedrive.d.ts.map +1 -0
  48. package/dist/src/integrations/outlook-client.d.ts +433 -0
  49. package/dist/src/integrations/outlook-client.d.ts.map +1 -0
  50. package/dist/src/integrations/outlook.d.ts +37 -0
  51. package/dist/src/integrations/outlook.d.ts.map +1 -0
  52. package/dist/src/integrations/polar-client.d.ts +297 -0
  53. package/dist/src/integrations/polar-client.d.ts.map +1 -0
  54. package/dist/src/integrations/polar.d.ts +39 -0
  55. package/dist/src/integrations/polar.d.ts.map +1 -0
  56. package/dist/src/integrations/ramp-client.d.ts +341 -0
  57. package/dist/src/integrations/ramp-client.d.ts.map +1 -0
  58. package/dist/src/integrations/ramp.d.ts +39 -0
  59. package/dist/src/integrations/ramp.d.ts.map +1 -0
  60. package/dist/src/integrations/stripe-client.d.ts +412 -0
  61. package/dist/src/integrations/stripe-client.d.ts.map +1 -0
  62. package/dist/src/integrations/stripe.d.ts +37 -0
  63. package/dist/src/integrations/stripe.d.ts.map +1 -0
  64. package/dist/src/integrations/todoist-client.d.ts +253 -0
  65. package/dist/src/integrations/todoist-client.d.ts.map +1 -0
  66. package/dist/src/integrations/todoist.d.ts +37 -0
  67. package/dist/src/integrations/todoist.d.ts.map +1 -0
  68. package/dist/src/integrations/whatsapp-client.d.ts +320 -0
  69. package/dist/src/integrations/whatsapp-client.d.ts.map +1 -0
  70. package/dist/src/integrations/whatsapp.d.ts +39 -0
  71. package/dist/src/integrations/whatsapp.d.ts.map +1 -0
  72. package/dist/src/integrations/youtube-client.d.ts +459 -0
  73. package/dist/src/integrations/youtube-client.d.ts.map +1 -0
  74. package/dist/src/integrations/youtube.d.ts +37 -0
  75. package/dist/src/integrations/youtube.d.ts.map +1 -0
  76. package/dist/src/server.d.ts +15 -0
  77. package/dist/src/server.d.ts.map +1 -1
  78. package/index.ts +10 -0
  79. package/package.json +1 -1
@@ -0,0 +1,253 @@
1
+ /**
2
+ * Todoist Integration Client Types
3
+ * Fully typed interface for Todoist integration methods
4
+ */
5
+ import type { MCPToolCallResponse } from "../protocol/messages.js";
6
+ /**
7
+ * Todoist Project
8
+ */
9
+ export interface TodoistProject {
10
+ id: string;
11
+ name: string;
12
+ color: string;
13
+ parent_id?: string;
14
+ order: number;
15
+ comment_count: number;
16
+ is_shared: boolean;
17
+ is_favorite: boolean;
18
+ is_inbox_project: boolean;
19
+ is_team_inbox: boolean;
20
+ view_style: "list" | "board";
21
+ url: string;
22
+ }
23
+ /**
24
+ * Todoist Task
25
+ */
26
+ export interface TodoistTask {
27
+ id: string;
28
+ project_id: string;
29
+ section_id?: string;
30
+ content: string;
31
+ description: string;
32
+ is_completed: boolean;
33
+ labels: string[];
34
+ parent_id?: string;
35
+ order: number;
36
+ priority: 1 | 2 | 3 | 4;
37
+ due?: {
38
+ date: string;
39
+ string: string;
40
+ lang: string;
41
+ is_recurring: boolean;
42
+ datetime?: string;
43
+ timezone?: string;
44
+ };
45
+ url: string;
46
+ comment_count: number;
47
+ created_at: string;
48
+ creator_id: string;
49
+ assignee_id?: string;
50
+ assigner_id?: string;
51
+ duration?: {
52
+ amount: number;
53
+ unit: "minute" | "day";
54
+ };
55
+ }
56
+ /**
57
+ * Todoist Label
58
+ */
59
+ export interface TodoistLabel {
60
+ id: string;
61
+ name: string;
62
+ color: string;
63
+ order: number;
64
+ is_favorite: boolean;
65
+ }
66
+ /**
67
+ * Todoist Section
68
+ */
69
+ export interface TodoistSection {
70
+ id: string;
71
+ project_id: string;
72
+ order: number;
73
+ name: string;
74
+ }
75
+ /**
76
+ * Todoist Integration Client Interface
77
+ * Provides type-safe methods for all Todoist operations
78
+ */
79
+ export interface TodoistIntegrationClient {
80
+ /**
81
+ * List all projects
82
+ *
83
+ * @example
84
+ * ```typescript
85
+ * const projects = await client.todoist.listProjects({});
86
+ * ```
87
+ */
88
+ listProjects(params?: Record<string, never>): Promise<MCPToolCallResponse>;
89
+ /**
90
+ * Get a specific project
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * const project = await client.todoist.getProject({
95
+ * projectId: "2203306141"
96
+ * });
97
+ * ```
98
+ */
99
+ getProject(params: {
100
+ /** Project ID */
101
+ projectId: string;
102
+ }): Promise<MCPToolCallResponse>;
103
+ /**
104
+ * Create a new project
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * const project = await client.todoist.createProject({
109
+ * name: "My New Project",
110
+ * color: "blue"
111
+ * });
112
+ * ```
113
+ */
114
+ createProject(params: {
115
+ /** Project name */
116
+ name: string;
117
+ /** Parent project ID */
118
+ parent_id?: string;
119
+ /** Project color */
120
+ color?: string;
121
+ /** Whether project is a favorite */
122
+ is_favorite?: boolean;
123
+ /** View style */
124
+ view_style?: "list" | "board";
125
+ }): Promise<MCPToolCallResponse>;
126
+ /**
127
+ * List tasks
128
+ *
129
+ * @example
130
+ * ```typescript
131
+ * const tasks = await client.todoist.listTasks({
132
+ * projectId: "2203306141"
133
+ * });
134
+ * ```
135
+ */
136
+ listTasks(params?: {
137
+ /** Filter by project ID */
138
+ projectId?: string;
139
+ /** Filter by section ID */
140
+ sectionId?: string;
141
+ /** Filter by label */
142
+ label?: string;
143
+ /** Filter expression (Todoist filter syntax) */
144
+ filter?: string;
145
+ /** Language for filter parsing */
146
+ lang?: string;
147
+ /** List of task IDs to retrieve */
148
+ ids?: string[];
149
+ }): Promise<MCPToolCallResponse>;
150
+ /**
151
+ * Get a specific task
152
+ *
153
+ * @example
154
+ * ```typescript
155
+ * const task = await client.todoist.getTask({
156
+ * taskId: "2995104339"
157
+ * });
158
+ * ```
159
+ */
160
+ getTask(params: {
161
+ /** Task ID */
162
+ taskId: string;
163
+ }): Promise<MCPToolCallResponse>;
164
+ /**
165
+ * Create a new task
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * const task = await client.todoist.createTask({
170
+ * content: "Buy groceries",
171
+ * due_string: "tomorrow at 10am",
172
+ * priority: 2
173
+ * });
174
+ * ```
175
+ */
176
+ createTask(params: {
177
+ /** Task content/title */
178
+ content: string;
179
+ /** Task description */
180
+ description?: string;
181
+ /** Project ID */
182
+ project_id?: string;
183
+ /** Section ID */
184
+ section_id?: string;
185
+ /** Parent task ID */
186
+ parent_id?: string;
187
+ /** Task order */
188
+ order?: number;
189
+ /** Labels to apply */
190
+ labels?: string[];
191
+ /** Priority (1-4, 4 is highest) */
192
+ priority?: 1 | 2 | 3 | 4;
193
+ /** Due date string (natural language) */
194
+ due_string?: string;
195
+ /** Due date (YYYY-MM-DD) */
196
+ due_date?: string;
197
+ /** Due datetime (RFC 3339) */
198
+ due_datetime?: string;
199
+ /** Due date language */
200
+ due_lang?: string;
201
+ /** Assignee ID */
202
+ assignee_id?: string;
203
+ /** Duration */
204
+ duration?: number;
205
+ /** Duration unit */
206
+ duration_unit?: "minute" | "day";
207
+ }): Promise<MCPToolCallResponse>;
208
+ /**
209
+ * Complete a task
210
+ *
211
+ * @example
212
+ * ```typescript
213
+ * await client.todoist.completeTask({
214
+ * taskId: "2995104339"
215
+ * });
216
+ * ```
217
+ */
218
+ completeTask(params: {
219
+ /** Task ID to complete */
220
+ taskId: string;
221
+ }): Promise<MCPToolCallResponse>;
222
+ /**
223
+ * List all labels
224
+ *
225
+ * @example
226
+ * ```typescript
227
+ * const labels = await client.todoist.listLabels({});
228
+ * ```
229
+ */
230
+ listLabels(params?: Record<string, never>): Promise<MCPToolCallResponse>;
231
+ /**
232
+ * Create a new label
233
+ *
234
+ * @example
235
+ * ```typescript
236
+ * const label = await client.todoist.createLabel({
237
+ * name: "urgent",
238
+ * color: "red"
239
+ * });
240
+ * ```
241
+ */
242
+ createLabel(params: {
243
+ /** Label name */
244
+ name: string;
245
+ /** Label color */
246
+ color?: string;
247
+ /** Label order */
248
+ order?: number;
249
+ /** Whether label is a favorite */
250
+ is_favorite?: boolean;
251
+ }): Promise<MCPToolCallResponse>;
252
+ }
253
+ //# sourceMappingURL=todoist-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todoist-client.d.ts","sourceRoot":"","sources":["../../../src/integrations/todoist-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Todoist Integration
3
+ * Enables Todoist tools with OAuth configuration
4
+ */
5
+ import type { MCPIntegration } from "./types.js";
6
+ /**
7
+ * Todoist integration configuration
8
+ *
9
+ * SERVER-SIDE: Automatically reads TODOIST_CLIENT_ID and TODOIST_CLIENT_SECRET from environment.
10
+ * You can override by providing explicit clientId and clientSecret values.
11
+ * CLIENT-SIDE: Omit clientId and clientSecret when using createMCPClient()
12
+ */
13
+ export interface TodoistIntegrationConfig {
14
+ /** Todoist OAuth client ID (defaults to TODOIST_CLIENT_ID env var) */
15
+ clientId?: string;
16
+ /** Todoist OAuth client secret (defaults to TODOIST_CLIENT_SECRET env var) */
17
+ clientSecret?: string;
18
+ /** Additional OAuth scopes (default: ['data:read_write']) */
19
+ scopes?: string[];
20
+ /** OAuth redirect URI */
21
+ redirectUri?: string;
22
+ }
23
+ /**
24
+ * Default Todoist tools that this integration enables
25
+ * These should match the tool names exposed by your MCP server
26
+ */
27
+ declare const TODOIST_TOOLS: readonly ["todoist_list_projects", "todoist_get_project", "todoist_create_project", "todoist_list_tasks", "todoist_get_task", "todoist_create_task", "todoist_complete_task", "todoist_list_labels", "todoist_create_label"];
28
+ export declare function todoistIntegration(config?: TodoistIntegrationConfig): MCPIntegration<"todoist">;
29
+ /**
30
+ * Export tool names for type inference
31
+ */
32
+ export type TodoistTools = typeof TODOIST_TOOLS[number];
33
+ /**
34
+ * Export Todoist client types
35
+ */
36
+ export type { TodoistIntegrationClient } from "./todoist-client.js";
37
+ //# sourceMappingURL=todoist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todoist.d.ts","sourceRoot":"","sources":["../../../src/integrations/todoist.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,YAAY,CAAC;AAG9D;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,QAAA,MAAM,aAAa,8NAUT,CAAC;AAGX,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,wBAA6B,GAAG,cAAc,CAAC,SAAS,CAAC,CAyBnG;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAExD;;GAEG;AACH,YAAY,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,320 @@
1
+ /**
2
+ * WhatsApp Business Integration Client Types
3
+ * Fully typed interface for WhatsApp Business integration methods
4
+ */
5
+ import type { MCPToolCallResponse } from "../protocol/messages.js";
6
+ /**
7
+ * WhatsApp Message
8
+ */
9
+ export interface WhatsAppMessage {
10
+ id: string;
11
+ from: string;
12
+ to: string;
13
+ timestamp: string;
14
+ type: "text" | "image" | "video" | "audio" | "document" | "template";
15
+ text?: {
16
+ body: string;
17
+ };
18
+ image?: {
19
+ id: string;
20
+ mime_type: string;
21
+ sha256: string;
22
+ };
23
+ video?: {
24
+ id: string;
25
+ mime_type: string;
26
+ sha256: string;
27
+ };
28
+ audio?: {
29
+ id: string;
30
+ mime_type: string;
31
+ sha256: string;
32
+ };
33
+ document?: {
34
+ id: string;
35
+ mime_type: string;
36
+ sha256: string;
37
+ filename: string;
38
+ };
39
+ status?: "sent" | "delivered" | "read" | "failed";
40
+ }
41
+ /**
42
+ * WhatsApp Message Template
43
+ */
44
+ export interface WhatsAppTemplate {
45
+ id: string;
46
+ name: string;
47
+ language: string;
48
+ status: "approved" | "pending" | "rejected";
49
+ category: "marketing" | "utility" | "authentication";
50
+ components: Array<{
51
+ type: "header" | "body" | "footer" | "button";
52
+ text?: string;
53
+ format?: string;
54
+ example?: {
55
+ header_text?: string[];
56
+ body_text?: string[][];
57
+ };
58
+ }>;
59
+ }
60
+ /**
61
+ * WhatsApp Phone Number
62
+ */
63
+ export interface WhatsAppPhoneNumber {
64
+ id: string;
65
+ display_phone_number: string;
66
+ verified_name: string;
67
+ code_verification_status: string;
68
+ quality_rating: "green" | "yellow" | "red";
69
+ platform_type: string;
70
+ throughput: {
71
+ level: string;
72
+ };
73
+ }
74
+ /**
75
+ * WhatsApp Business Profile
76
+ */
77
+ export interface WhatsAppBusinessProfile {
78
+ about?: string;
79
+ address?: string;
80
+ description?: string;
81
+ email?: string;
82
+ messaging_product: string;
83
+ profile_picture_url?: string;
84
+ websites?: string[];
85
+ vertical?: string;
86
+ }
87
+ /**
88
+ * WhatsApp Message Status
89
+ */
90
+ export interface WhatsAppMessageStatus {
91
+ id: string;
92
+ status: "sent" | "delivered" | "read" | "failed";
93
+ timestamp: string;
94
+ recipient_id: string;
95
+ errors?: Array<{
96
+ code: number;
97
+ title: string;
98
+ message: string;
99
+ error_data?: {
100
+ details: string;
101
+ };
102
+ }>;
103
+ }
104
+ /**
105
+ * WhatsApp Integration Client Interface
106
+ * Provides type-safe methods for all WhatsApp Business operations
107
+ */
108
+ export interface WhatsAppIntegrationClient {
109
+ /**
110
+ * Send a text message
111
+ *
112
+ * @example
113
+ * ```typescript
114
+ * const result = await client.whatsapp.sendMessage({
115
+ * to: "+1234567890",
116
+ * type: "text",
117
+ * text: { body: "Hello, World!" }
118
+ * });
119
+ * ```
120
+ */
121
+ sendMessage(params: {
122
+ /** Recipient phone number (E.164 format) */
123
+ to: string;
124
+ /** Message type */
125
+ type: "text";
126
+ /** Text message content */
127
+ text: {
128
+ /** Message body text */
129
+ body: string;
130
+ /** Preview URL (optional) */
131
+ preview_url?: boolean;
132
+ };
133
+ }): Promise<MCPToolCallResponse>;
134
+ /**
135
+ * Send a template message
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * const result = await client.whatsapp.sendTemplate({
140
+ * to: "+1234567890",
141
+ * template: {
142
+ * name: "welcome_message",
143
+ * language: { code: "en_US" },
144
+ * components: [
145
+ * {
146
+ * type: "body",
147
+ * parameters: [{ type: "text", text: "John" }]
148
+ * }
149
+ * ]
150
+ * }
151
+ * });
152
+ * ```
153
+ */
154
+ sendTemplate(params: {
155
+ /** Recipient phone number (E.164 format) */
156
+ to: string;
157
+ /** Template configuration */
158
+ template: {
159
+ /** Template name */
160
+ name: string;
161
+ /** Template language */
162
+ language: {
163
+ /** Language code */
164
+ code: string;
165
+ };
166
+ /** Template components with parameters */
167
+ components?: Array<{
168
+ type: "header" | "body" | "button";
169
+ parameters?: Array<{
170
+ type: "text" | "currency" | "date_time" | "image" | "document" | "video";
171
+ text?: string;
172
+ currency?: {
173
+ fallback_value: string;
174
+ code: string;
175
+ amount_1000: number;
176
+ };
177
+ date_time?: {
178
+ fallback_value: string;
179
+ };
180
+ image?: {
181
+ link: string;
182
+ };
183
+ document?: {
184
+ link: string;
185
+ filename?: string;
186
+ };
187
+ video?: {
188
+ link: string;
189
+ };
190
+ }>;
191
+ sub_type?: string;
192
+ index?: number;
193
+ }>;
194
+ };
195
+ }): Promise<MCPToolCallResponse>;
196
+ /**
197
+ * Send media (image/video/document/audio)
198
+ *
199
+ * @example
200
+ * ```typescript
201
+ * const result = await client.whatsapp.sendMedia({
202
+ * to: "+1234567890",
203
+ * type: "image",
204
+ * image: {
205
+ * link: "https://example.com/image.jpg",
206
+ * caption: "Check this out!"
207
+ * }
208
+ * });
209
+ * ```
210
+ */
211
+ sendMedia(params: {
212
+ /** Recipient phone number (E.164 format) */
213
+ to: string;
214
+ /** Media type */
215
+ type: "image" | "video" | "document" | "audio";
216
+ /** Image media (when type is "image") */
217
+ image?: {
218
+ /** Media URL or ID */
219
+ link?: string;
220
+ id?: string;
221
+ /** Image caption */
222
+ caption?: string;
223
+ };
224
+ /** Video media (when type is "video") */
225
+ video?: {
226
+ /** Media URL or ID */
227
+ link?: string;
228
+ id?: string;
229
+ /** Video caption */
230
+ caption?: string;
231
+ };
232
+ /** Document media (when type is "document") */
233
+ document?: {
234
+ /** Media URL or ID */
235
+ link?: string;
236
+ id?: string;
237
+ /** Document caption */
238
+ caption?: string;
239
+ /** Document filename */
240
+ filename?: string;
241
+ };
242
+ /** Audio media (when type is "audio") */
243
+ audio?: {
244
+ /** Media URL or ID */
245
+ link?: string;
246
+ id?: string;
247
+ };
248
+ }): Promise<MCPToolCallResponse>;
249
+ /**
250
+ * List message templates
251
+ *
252
+ * @example
253
+ * ```typescript
254
+ * const templates = await client.whatsapp.listTemplates({
255
+ * limit: 50
256
+ * });
257
+ * ```
258
+ */
259
+ listTemplates(params?: {
260
+ /** Maximum number of templates to return */
261
+ limit?: number;
262
+ /** Pagination cursor */
263
+ after?: string;
264
+ /** Pagination cursor */
265
+ before?: string;
266
+ }): Promise<MCPToolCallResponse>;
267
+ /**
268
+ * Get registered phone numbers
269
+ *
270
+ * @example
271
+ * ```typescript
272
+ * const phoneNumbers = await client.whatsapp.getPhoneNumbers();
273
+ * ```
274
+ */
275
+ getPhoneNumbers(params?: {
276
+ /** Maximum number of phone numbers to return */
277
+ limit?: number;
278
+ }): Promise<MCPToolCallResponse>;
279
+ /**
280
+ * Get message delivery status
281
+ *
282
+ * @example
283
+ * ```typescript
284
+ * const status = await client.whatsapp.getMessageStatus({
285
+ * message_id: "wamid.xxxxx"
286
+ * });
287
+ * ```
288
+ */
289
+ getMessageStatus(params: {
290
+ /** WhatsApp message ID */
291
+ message_id: string;
292
+ }): Promise<MCPToolCallResponse>;
293
+ /**
294
+ * Mark message as read
295
+ *
296
+ * @example
297
+ * ```typescript
298
+ * await client.whatsapp.markRead({
299
+ * message_id: "wamid.xxxxx"
300
+ * });
301
+ * ```
302
+ */
303
+ markRead(params: {
304
+ /** WhatsApp message ID to mark as read */
305
+ message_id: string;
306
+ }): Promise<MCPToolCallResponse>;
307
+ /**
308
+ * Get business profile
309
+ *
310
+ * @example
311
+ * ```typescript
312
+ * const profile = await client.whatsapp.getProfile();
313
+ * ```
314
+ */
315
+ getProfile(params?: {
316
+ /** Fields to retrieve */
317
+ fields?: string[];
318
+ }): Promise<MCPToolCallResponse>;
319
+ }
320
+ //# sourceMappingURL=whatsapp-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp-client.d.ts","sourceRoot":"","sources":["../../../src/integrations/whatsapp-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * WhatsApp Business Integration
3
+ * Enables WhatsApp Business tools with OAuth configuration
4
+ */
5
+ import type { MCPIntegration } from "./types.js";
6
+ /**
7
+ * WhatsApp Business integration configuration
8
+ *
9
+ * SERVER-SIDE: Automatically reads WHATSAPP_CLIENT_ID and WHATSAPP_CLIENT_SECRET from environment.
10
+ * You can override by providing explicit clientId and clientSecret values.
11
+ * CLIENT-SIDE: Omit clientId and clientSecret when using createMCPClient()
12
+ */
13
+ export interface WhatsAppIntegrationConfig {
14
+ /** WhatsApp OAuth client ID (defaults to WHATSAPP_CLIENT_ID env var) */
15
+ clientId?: string;
16
+ /** WhatsApp OAuth client secret (defaults to WHATSAPP_CLIENT_SECRET env var) */
17
+ clientSecret?: string;
18
+ /** Additional OAuth scopes (default: ['business_management', 'whatsapp_business_messaging', 'whatsapp_business_management']) */
19
+ scopes?: string[];
20
+ /** OAuth redirect URI */
21
+ redirectUri?: string;
22
+ /** WhatsApp Business Account ID */
23
+ businessAccountId?: string;
24
+ }
25
+ /**
26
+ * Default WhatsApp Business tools that this integration enables
27
+ * These should match the tool names exposed by your MCP server
28
+ */
29
+ declare const WHATSAPP_TOOLS: readonly ["whatsapp_send_message", "whatsapp_send_template", "whatsapp_send_media", "whatsapp_list_templates", "whatsapp_get_phone_numbers", "whatsapp_get_message_status", "whatsapp_mark_read", "whatsapp_get_profile"];
30
+ export declare function whatsappIntegration(config?: WhatsAppIntegrationConfig): MCPIntegration<"whatsapp">;
31
+ /**
32
+ * Export tool names for type inference
33
+ */
34
+ export type WhatsAppTools = typeof WHATSAPP_TOOLS[number];
35
+ /**
36
+ * Export WhatsApp client types
37
+ */
38
+ export type { WhatsAppIntegrationClient } from "./whatsapp-client.js";
39
+ //# sourceMappingURL=whatsapp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp.d.ts","sourceRoot":"","sources":["../../../src/integrations/whatsapp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,YAAY,CAAC;AAG9D;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gIAAgI;IAChI,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,QAAA,MAAM,cAAc,2NASV,CAAC;AAGX,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,yBAA8B,GAAG,cAAc,CAAC,UAAU,CAAC,CA0BtG;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAE1D;;GAEG;AACH,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC"}