integrate-sdk 0.8.28 → 0.8.30-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 (55) hide show
  1. package/dist/adapters/auto-routes.js +397 -0
  2. package/dist/adapters/index.js +397 -0
  3. package/dist/adapters/nextjs.js +397 -0
  4. package/dist/adapters/node.js +397 -0
  5. package/dist/adapters/svelte-kit.js +397 -0
  6. package/dist/adapters/tanstack-start.js +397 -0
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +434 -1
  10. package/dist/oauth.js +397 -0
  11. package/dist/server.js +406 -0
  12. package/dist/src/client.d.ts +10 -1
  13. package/dist/src/client.d.ts.map +1 -1
  14. package/dist/src/index.d.ts +18 -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/gcal-client.d.ts +370 -0
  21. package/dist/src/integrations/gcal-client.d.ts.map +1 -0
  22. package/dist/src/integrations/gcal.d.ts +37 -0
  23. package/dist/src/integrations/gcal.d.ts.map +1 -0
  24. package/dist/src/integrations/linear-client.d.ts +309 -0
  25. package/dist/src/integrations/linear-client.d.ts.map +1 -0
  26. package/dist/src/integrations/linear.d.ts +37 -0
  27. package/dist/src/integrations/linear.d.ts.map +1 -0
  28. package/dist/src/integrations/outlook-client.d.ts +433 -0
  29. package/dist/src/integrations/outlook-client.d.ts.map +1 -0
  30. package/dist/src/integrations/outlook.d.ts +37 -0
  31. package/dist/src/integrations/outlook.d.ts.map +1 -0
  32. package/dist/src/integrations/slack-client.d.ts +271 -0
  33. package/dist/src/integrations/slack-client.d.ts.map +1 -0
  34. package/dist/src/integrations/slack.d.ts +37 -0
  35. package/dist/src/integrations/slack.d.ts.map +1 -0
  36. package/dist/src/integrations/stripe-client.d.ts +412 -0
  37. package/dist/src/integrations/stripe-client.d.ts.map +1 -0
  38. package/dist/src/integrations/stripe.d.ts +37 -0
  39. package/dist/src/integrations/stripe.d.ts.map +1 -0
  40. package/dist/src/integrations/todoist-client.d.ts +253 -0
  41. package/dist/src/integrations/todoist-client.d.ts.map +1 -0
  42. package/dist/src/integrations/todoist.d.ts +37 -0
  43. package/dist/src/integrations/todoist.d.ts.map +1 -0
  44. package/dist/src/integrations/vercel-client.d.ts +278 -0
  45. package/dist/src/integrations/vercel-client.d.ts.map +1 -0
  46. package/dist/src/integrations/vercel.d.ts +37 -0
  47. package/dist/src/integrations/vercel.d.ts.map +1 -0
  48. package/dist/src/integrations/zendesk-client.d.ts +395 -0
  49. package/dist/src/integrations/zendesk-client.d.ts.map +1 -0
  50. package/dist/src/integrations/zendesk.d.ts +39 -0
  51. package/dist/src/integrations/zendesk.d.ts.map +1 -0
  52. package/dist/src/server.d.ts +9 -0
  53. package/dist/src/server.d.ts.map +1 -1
  54. package/index.ts +18 -0
  55. package/package.json +2 -2
@@ -0,0 +1,260 @@
1
+ /**
2
+ * Airtable Integration Client Types
3
+ * Fully typed interface for Airtable integration methods
4
+ */
5
+ import type { MCPToolCallResponse } from "../protocol/messages.js";
6
+ /**
7
+ * Airtable Base
8
+ */
9
+ export interface AirtableBase {
10
+ id: string;
11
+ name: string;
12
+ permissionLevel: "none" | "read" | "comment" | "edit" | "create";
13
+ }
14
+ /**
15
+ * Airtable Table
16
+ */
17
+ export interface AirtableTable {
18
+ id: string;
19
+ name: string;
20
+ description?: string;
21
+ primaryFieldId: string;
22
+ fields: AirtableField[];
23
+ views: Array<{
24
+ id: string;
25
+ name: string;
26
+ type: string;
27
+ }>;
28
+ }
29
+ /**
30
+ * Airtable Field
31
+ */
32
+ export interface AirtableField {
33
+ id: string;
34
+ name: string;
35
+ type: string;
36
+ description?: string;
37
+ options?: Record<string, unknown>;
38
+ }
39
+ /**
40
+ * Airtable Record
41
+ */
42
+ export interface AirtableRecord {
43
+ id: string;
44
+ createdTime: string;
45
+ fields: Record<string, unknown>;
46
+ }
47
+ /**
48
+ * Airtable Integration Client Interface
49
+ * Provides type-safe methods for all Airtable operations
50
+ */
51
+ export interface AirtableIntegrationClient {
52
+ /**
53
+ * List all accessible bases
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * const bases = await client.airtable.listBases({});
58
+ * ```
59
+ */
60
+ listBases(params?: {
61
+ /** Offset for pagination */
62
+ offset?: string;
63
+ }): Promise<MCPToolCallResponse>;
64
+ /**
65
+ * Get a specific base
66
+ *
67
+ * @example
68
+ * ```typescript
69
+ * const base = await client.airtable.getBase({
70
+ * baseId: "appXXXXXXXXXXXXXX"
71
+ * });
72
+ * ```
73
+ */
74
+ getBase(params: {
75
+ /** Base ID */
76
+ baseId: string;
77
+ }): Promise<MCPToolCallResponse>;
78
+ /**
79
+ * List tables in a base
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * const tables = await client.airtable.listTables({
84
+ * baseId: "appXXXXXXXXXXXXXX"
85
+ * });
86
+ * ```
87
+ */
88
+ listTables(params: {
89
+ /** Base ID */
90
+ baseId: string;
91
+ }): Promise<MCPToolCallResponse>;
92
+ /**
93
+ * Get a specific table schema
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * const table = await client.airtable.getTable({
98
+ * baseId: "appXXXXXXXXXXXXXX",
99
+ * tableId: "tblXXXXXXXXXXXXXX"
100
+ * });
101
+ * ```
102
+ */
103
+ getTable(params: {
104
+ /** Base ID */
105
+ baseId: string;
106
+ /** Table ID or name */
107
+ tableId: string;
108
+ }): Promise<MCPToolCallResponse>;
109
+ /**
110
+ * List records in a table
111
+ *
112
+ * @example
113
+ * ```typescript
114
+ * const records = await client.airtable.listRecords({
115
+ * baseId: "appXXXXXXXXXXXXXX",
116
+ * tableId: "tblXXXXXXXXXXXXXX",
117
+ * maxRecords: 100
118
+ * });
119
+ * ```
120
+ */
121
+ listRecords(params: {
122
+ /** Base ID */
123
+ baseId: string;
124
+ /** Table ID or name */
125
+ tableId: string;
126
+ /** Fields to include */
127
+ fields?: string[];
128
+ /** Filter by formula */
129
+ filterByFormula?: string;
130
+ /** Maximum records to return */
131
+ maxRecords?: number;
132
+ /** Page size */
133
+ pageSize?: number;
134
+ /** Sort configuration */
135
+ sort?: Array<{
136
+ field: string;
137
+ direction?: "asc" | "desc";
138
+ }>;
139
+ /** View ID or name */
140
+ view?: string;
141
+ /** Cell format */
142
+ cellFormat?: "json" | "string";
143
+ /** Time zone */
144
+ timeZone?: string;
145
+ /** User locale */
146
+ userLocale?: string;
147
+ /** Offset for pagination */
148
+ offset?: string;
149
+ }): Promise<MCPToolCallResponse>;
150
+ /**
151
+ * Get a specific record
152
+ *
153
+ * @example
154
+ * ```typescript
155
+ * const record = await client.airtable.getRecord({
156
+ * baseId: "appXXXXXXXXXXXXXX",
157
+ * tableId: "tblXXXXXXXXXXXXXX",
158
+ * recordId: "recXXXXXXXXXXXXXX"
159
+ * });
160
+ * ```
161
+ */
162
+ getRecord(params: {
163
+ /** Base ID */
164
+ baseId: string;
165
+ /** Table ID or name */
166
+ tableId: string;
167
+ /** Record ID */
168
+ recordId: string;
169
+ /** Cell format */
170
+ cellFormat?: "json" | "string";
171
+ /** Time zone */
172
+ timeZone?: string;
173
+ /** User locale */
174
+ userLocale?: string;
175
+ }): Promise<MCPToolCallResponse>;
176
+ /**
177
+ * Create a new record
178
+ *
179
+ * @example
180
+ * ```typescript
181
+ * const record = await client.airtable.createRecord({
182
+ * baseId: "appXXXXXXXXXXXXXX",
183
+ * tableId: "tblXXXXXXXXXXXXXX",
184
+ * fields: {
185
+ * "Name": "John Doe",
186
+ * "Email": "john@example.com"
187
+ * }
188
+ * });
189
+ * ```
190
+ */
191
+ createRecord(params: {
192
+ /** Base ID */
193
+ baseId: string;
194
+ /** Table ID or name */
195
+ tableId: string;
196
+ /** Record fields */
197
+ fields: Record<string, unknown>;
198
+ /** Whether to typecast values */
199
+ typecast?: boolean;
200
+ }): Promise<MCPToolCallResponse>;
201
+ /**
202
+ * Update an existing record
203
+ *
204
+ * @example
205
+ * ```typescript
206
+ * await client.airtable.updateRecord({
207
+ * baseId: "appXXXXXXXXXXXXXX",
208
+ * tableId: "tblXXXXXXXXXXXXXX",
209
+ * recordId: "recXXXXXXXXXXXXXX",
210
+ * fields: {
211
+ * "Status": "Completed"
212
+ * }
213
+ * });
214
+ * ```
215
+ */
216
+ updateRecord(params: {
217
+ /** Base ID */
218
+ baseId: string;
219
+ /** Table ID or name */
220
+ tableId: string;
221
+ /** Record ID */
222
+ recordId: string;
223
+ /** Fields to update */
224
+ fields: Record<string, unknown>;
225
+ /** Whether to typecast values */
226
+ typecast?: boolean;
227
+ }): Promise<MCPToolCallResponse>;
228
+ /**
229
+ * Search for records using a formula
230
+ *
231
+ * @example
232
+ * ```typescript
233
+ * const results = await client.airtable.searchRecords({
234
+ * baseId: "appXXXXXXXXXXXXXX",
235
+ * tableId: "tblXXXXXXXXXXXXXX",
236
+ * filterByFormula: "FIND('John', {Name})"
237
+ * });
238
+ * ```
239
+ */
240
+ searchRecords(params: {
241
+ /** Base ID */
242
+ baseId: string;
243
+ /** Table ID or name */
244
+ tableId: string;
245
+ /** Airtable formula to filter records */
246
+ filterByFormula: string;
247
+ /** Fields to include in results */
248
+ fields?: string[];
249
+ /** Maximum records to return */
250
+ maxRecords?: number;
251
+ /** Sort configuration */
252
+ sort?: Array<{
253
+ field: string;
254
+ direction?: "asc" | "desc";
255
+ }>;
256
+ /** View ID or name */
257
+ view?: string;
258
+ }): Promise<MCPToolCallResponse>;
259
+ }
260
+ //# sourceMappingURL=airtable-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"airtable-client.d.ts","sourceRoot":"","sources":["../../../src/integrations/airtable-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Airtable Integration
3
+ * Enables Airtable tools with OAuth configuration
4
+ */
5
+ import type { MCPIntegration } from "./types.js";
6
+ /**
7
+ * Airtable integration configuration
8
+ *
9
+ * SERVER-SIDE: Automatically reads AIRTABLE_CLIENT_ID and AIRTABLE_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 AirtableIntegrationConfig {
14
+ /** Airtable OAuth client ID (defaults to AIRTABLE_CLIENT_ID env var) */
15
+ clientId?: string;
16
+ /** Airtable OAuth client secret (defaults to AIRTABLE_CLIENT_SECRET env var) */
17
+ clientSecret?: string;
18
+ /** Additional OAuth scopes (default: ['data.records:read', 'data.records:write', 'schema.bases:read']) */
19
+ scopes?: string[];
20
+ /** OAuth redirect URI */
21
+ redirectUri?: string;
22
+ }
23
+ /**
24
+ * Default Airtable tools that this integration enables
25
+ * These should match the tool names exposed by your MCP server
26
+ */
27
+ declare const AIRTABLE_TOOLS: readonly ["airtable_list_bases", "airtable_get_base", "airtable_list_tables", "airtable_get_table", "airtable_list_records", "airtable_get_record", "airtable_create_record", "airtable_update_record", "airtable_search_records"];
28
+ export declare function airtableIntegration(config?: AirtableIntegrationConfig): MCPIntegration<"airtable">;
29
+ /**
30
+ * Export tool names for type inference
31
+ */
32
+ export type AirtableTools = typeof AIRTABLE_TOOLS[number];
33
+ /**
34
+ * Export Airtable client types
35
+ */
36
+ export type { AirtableIntegrationClient } from "./airtable-client.js";
37
+ //# sourceMappingURL=airtable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"airtable.d.ts","sourceRoot":"","sources":["../../../src/integrations/airtable.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,0GAA0G;IAC1G,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,QAAA,MAAM,cAAc,oOAUV,CAAC;AAGX,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,yBAA8B,GAAG,cAAc,CAAC,UAAU,CAAC,CAyBtG;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAE1D;;GAEG;AACH,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,370 @@
1
+ /**
2
+ * Google Calendar Integration Client Types
3
+ * Fully typed interface for Google Calendar integration methods
4
+ */
5
+ import type { MCPToolCallResponse } from "../protocol/messages.js";
6
+ /**
7
+ * Google Calendar
8
+ */
9
+ export interface GcalCalendar {
10
+ id: string;
11
+ summary: string;
12
+ description?: string;
13
+ location?: string;
14
+ timeZone?: string;
15
+ summaryOverride?: string;
16
+ colorId?: string;
17
+ backgroundColor?: string;
18
+ foregroundColor?: string;
19
+ hidden?: boolean;
20
+ selected?: boolean;
21
+ accessRole: "freeBusyReader" | "reader" | "writer" | "owner";
22
+ defaultReminders?: Array<{
23
+ method: "email" | "popup";
24
+ minutes: number;
25
+ }>;
26
+ primary?: boolean;
27
+ }
28
+ /**
29
+ * Google Calendar Event
30
+ */
31
+ export interface GcalEvent {
32
+ id: string;
33
+ status?: "confirmed" | "tentative" | "cancelled";
34
+ htmlLink?: string;
35
+ created?: string;
36
+ updated?: string;
37
+ summary?: string;
38
+ description?: string;
39
+ location?: string;
40
+ colorId?: string;
41
+ creator?: {
42
+ id?: string;
43
+ email?: string;
44
+ displayName?: string;
45
+ self?: boolean;
46
+ };
47
+ organizer?: {
48
+ id?: string;
49
+ email?: string;
50
+ displayName?: string;
51
+ self?: boolean;
52
+ };
53
+ start: {
54
+ date?: string;
55
+ dateTime?: string;
56
+ timeZone?: string;
57
+ };
58
+ end: {
59
+ date?: string;
60
+ dateTime?: string;
61
+ timeZone?: string;
62
+ };
63
+ endTimeUnspecified?: boolean;
64
+ recurrence?: string[];
65
+ recurringEventId?: string;
66
+ originalStartTime?: {
67
+ date?: string;
68
+ dateTime?: string;
69
+ timeZone?: string;
70
+ };
71
+ transparency?: "opaque" | "transparent";
72
+ visibility?: "default" | "public" | "private" | "confidential";
73
+ iCalUID?: string;
74
+ sequence?: number;
75
+ attendees?: GcalAttendee[];
76
+ attendeesOmitted?: boolean;
77
+ hangoutLink?: string;
78
+ conferenceData?: {
79
+ createRequest?: {
80
+ requestId: string;
81
+ conferenceSolutionKey?: {
82
+ type: string;
83
+ };
84
+ status?: {
85
+ statusCode: string;
86
+ };
87
+ };
88
+ entryPoints?: Array<{
89
+ entryPointType: string;
90
+ uri?: string;
91
+ label?: string;
92
+ pin?: string;
93
+ accessCode?: string;
94
+ meetingCode?: string;
95
+ passcode?: string;
96
+ password?: string;
97
+ }>;
98
+ conferenceSolution?: {
99
+ key?: {
100
+ type: string;
101
+ };
102
+ name?: string;
103
+ iconUri?: string;
104
+ };
105
+ conferenceId?: string;
106
+ };
107
+ reminders?: {
108
+ useDefault: boolean;
109
+ overrides?: Array<{
110
+ method: "email" | "popup";
111
+ minutes: number;
112
+ }>;
113
+ };
114
+ }
115
+ /**
116
+ * Google Calendar Attendee
117
+ */
118
+ export interface GcalAttendee {
119
+ id?: string;
120
+ email: string;
121
+ displayName?: string;
122
+ organizer?: boolean;
123
+ self?: boolean;
124
+ resource?: boolean;
125
+ optional?: boolean;
126
+ responseStatus?: "needsAction" | "declined" | "tentative" | "accepted";
127
+ comment?: string;
128
+ additionalGuests?: number;
129
+ }
130
+ /**
131
+ * Google Calendar Integration Client Interface
132
+ * Provides type-safe methods for all Google Calendar operations
133
+ */
134
+ export interface GcalIntegrationClient {
135
+ /**
136
+ * List calendars
137
+ *
138
+ * @example
139
+ * ```typescript
140
+ * const calendars = await client.gcal.listCalendars({});
141
+ * ```
142
+ */
143
+ listCalendars(params?: {
144
+ /** Maximum number of entries returned */
145
+ maxResults?: number;
146
+ /** Token for pagination */
147
+ pageToken?: string;
148
+ /** Whether to include deleted calendars */
149
+ showDeleted?: boolean;
150
+ /** Whether to show hidden calendars */
151
+ showHidden?: boolean;
152
+ }): Promise<MCPToolCallResponse>;
153
+ /**
154
+ * Get a specific calendar
155
+ *
156
+ * @example
157
+ * ```typescript
158
+ * const calendar = await client.gcal.getCalendar({
159
+ * calendarId: "primary"
160
+ * });
161
+ * ```
162
+ */
163
+ getCalendar(params: {
164
+ /** Calendar ID (use 'primary' for the user's primary calendar) */
165
+ calendarId: string;
166
+ }): Promise<MCPToolCallResponse>;
167
+ /**
168
+ * List events in a calendar
169
+ *
170
+ * @example
171
+ * ```typescript
172
+ * const events = await client.gcal.listEvents({
173
+ * calendarId: "primary",
174
+ * timeMin: new Date().toISOString()
175
+ * });
176
+ * ```
177
+ */
178
+ listEvents(params: {
179
+ /** Calendar ID */
180
+ calendarId: string;
181
+ /** Lower bound for event's end time (ISO 8601) */
182
+ timeMin?: string;
183
+ /** Upper bound for event's start time (ISO 8601) */
184
+ timeMax?: string;
185
+ /** Maximum number of events returned */
186
+ maxResults?: number;
187
+ /** Token for pagination */
188
+ pageToken?: string;
189
+ /** Free text search terms */
190
+ q?: string;
191
+ /** Whether to include deleted events */
192
+ showDeleted?: boolean;
193
+ /** Whether to expand recurring events */
194
+ singleEvents?: boolean;
195
+ /** Order of events returned */
196
+ orderBy?: "startTime" | "updated";
197
+ }): Promise<MCPToolCallResponse>;
198
+ /**
199
+ * Get a specific event
200
+ *
201
+ * @example
202
+ * ```typescript
203
+ * const event = await client.gcal.getEvent({
204
+ * calendarId: "primary",
205
+ * eventId: "event123"
206
+ * });
207
+ * ```
208
+ */
209
+ getEvent(params: {
210
+ /** Calendar ID */
211
+ calendarId: string;
212
+ /** Event ID */
213
+ eventId: string;
214
+ /** Time zone for the response */
215
+ timeZone?: string;
216
+ }): Promise<MCPToolCallResponse>;
217
+ /**
218
+ * Create a new event
219
+ *
220
+ * @example
221
+ * ```typescript
222
+ * const event = await client.gcal.createEvent({
223
+ * calendarId: "primary",
224
+ * summary: "Team Meeting",
225
+ * start: { dateTime: "2024-01-15T10:00:00-07:00" },
226
+ * end: { dateTime: "2024-01-15T11:00:00-07:00" }
227
+ * });
228
+ * ```
229
+ */
230
+ createEvent(params: {
231
+ /** Calendar ID */
232
+ calendarId: string;
233
+ /** Event summary/title */
234
+ summary: string;
235
+ /** Event description */
236
+ description?: string;
237
+ /** Event location */
238
+ location?: string;
239
+ /** Event start time */
240
+ start: {
241
+ /** All-day event date (yyyy-MM-dd) */
242
+ date?: string;
243
+ /** Event start datetime (RFC 3339) */
244
+ dateTime?: string;
245
+ /** Time zone */
246
+ timeZone?: string;
247
+ };
248
+ /** Event end time */
249
+ end: {
250
+ /** All-day event end date (yyyy-MM-dd) */
251
+ date?: string;
252
+ /** Event end datetime (RFC 3339) */
253
+ dateTime?: string;
254
+ /** Time zone */
255
+ timeZone?: string;
256
+ };
257
+ /** Attendees to invite */
258
+ attendees?: Array<{
259
+ email: string;
260
+ displayName?: string;
261
+ optional?: boolean;
262
+ }>;
263
+ /** Whether to send notifications to attendees */
264
+ sendUpdates?: "all" | "externalOnly" | "none";
265
+ /** Recurrence rules (RRULE format) */
266
+ recurrence?: string[];
267
+ /** Whether to create a conference */
268
+ conferenceDataVersion?: 0 | 1;
269
+ }): Promise<MCPToolCallResponse>;
270
+ /**
271
+ * Update an existing event
272
+ *
273
+ * @example
274
+ * ```typescript
275
+ * await client.gcal.updateEvent({
276
+ * calendarId: "primary",
277
+ * eventId: "event123",
278
+ * summary: "Updated Meeting Title"
279
+ * });
280
+ * ```
281
+ */
282
+ updateEvent(params: {
283
+ /** Calendar ID */
284
+ calendarId: string;
285
+ /** Event ID */
286
+ eventId: string;
287
+ /** Event summary/title */
288
+ summary?: string;
289
+ /** Event description */
290
+ description?: string;
291
+ /** Event location */
292
+ location?: string;
293
+ /** Event start time */
294
+ start?: {
295
+ date?: string;
296
+ dateTime?: string;
297
+ timeZone?: string;
298
+ };
299
+ /** Event end time */
300
+ end?: {
301
+ date?: string;
302
+ dateTime?: string;
303
+ timeZone?: string;
304
+ };
305
+ /** Attendees */
306
+ attendees?: Array<{
307
+ email: string;
308
+ displayName?: string;
309
+ optional?: boolean;
310
+ }>;
311
+ /** Whether to send notifications */
312
+ sendUpdates?: "all" | "externalOnly" | "none";
313
+ }): Promise<MCPToolCallResponse>;
314
+ /**
315
+ * Delete an event
316
+ *
317
+ * @example
318
+ * ```typescript
319
+ * await client.gcal.deleteEvent({
320
+ * calendarId: "primary",
321
+ * eventId: "event123"
322
+ * });
323
+ * ```
324
+ */
325
+ deleteEvent(params: {
326
+ /** Calendar ID */
327
+ calendarId: string;
328
+ /** Event ID */
329
+ eventId: string;
330
+ /** Whether to send notifications */
331
+ sendUpdates?: "all" | "externalOnly" | "none";
332
+ }): Promise<MCPToolCallResponse>;
333
+ /**
334
+ * List attendees for an event
335
+ *
336
+ * @example
337
+ * ```typescript
338
+ * const attendees = await client.gcal.listAttendees({
339
+ * calendarId: "primary",
340
+ * eventId: "event123"
341
+ * });
342
+ * ```
343
+ */
344
+ listAttendees(params: {
345
+ /** Calendar ID */
346
+ calendarId: string;
347
+ /** Event ID */
348
+ eventId: string;
349
+ }): Promise<MCPToolCallResponse>;
350
+ /**
351
+ * Quickly add an event using natural language
352
+ *
353
+ * @example
354
+ * ```typescript
355
+ * const event = await client.gcal.quickAdd({
356
+ * calendarId: "primary",
357
+ * text: "Meeting with John tomorrow at 3pm"
358
+ * });
359
+ * ```
360
+ */
361
+ quickAdd(params: {
362
+ /** Calendar ID */
363
+ calendarId: string;
364
+ /** Text describing the event in natural language */
365
+ text: string;
366
+ /** Whether to send notifications */
367
+ sendUpdates?: "all" | "externalOnly" | "none";
368
+ }): Promise<MCPToolCallResponse>;
369
+ }
370
+ //# sourceMappingURL=gcal-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gcal-client.d.ts","sourceRoot":"","sources":["../../../src/integrations/gcal-client.ts"],"names":[],"mappings":"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"}