integrate-sdk 0.9.27-dev.1 → 0.9.28-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.
- package/README.md +82 -0
- package/dist/adapters/auto-routes.js +177 -8
- package/dist/adapters/base-handler.d.ts +4 -2
- package/dist/adapters/base-handler.d.ts.map +1 -1
- package/dist/adapters/base-handler.js +177 -8
- package/dist/adapters/index.js +245 -81
- package/dist/adapters/nextjs.js +177 -8
- package/dist/adapters/solid-start.js +245 -81
- package/dist/adapters/svelte-kit.js +245 -81
- package/dist/index.js +422 -109
- package/dist/oauth.js +177 -8
- package/dist/server.js +449 -138
- package/dist/src/adapters/base-handler.d.ts +4 -2
- package/dist/src/adapters/base-handler.d.ts.map +1 -1
- package/dist/src/client.d.ts +8 -0
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/index.d.ts +8 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/integrations/dropbox.d.ts +22 -0
- package/dist/src/integrations/dropbox.d.ts.map +1 -0
- package/dist/src/integrations/granola.d.ts +14 -0
- package/dist/src/integrations/granola.d.ts.map +1 -0
- package/dist/src/integrations/integration-summary.d.ts +24 -0
- package/dist/src/integrations/integration-summary.d.ts.map +1 -0
- package/dist/src/integrations/library-metadata.d.ts +26 -0
- package/dist/src/integrations/library-metadata.d.ts.map +1 -0
- package/dist/src/integrations/mercury.d.ts +14 -0
- package/dist/src/integrations/mercury.d.ts.map +1 -0
- package/dist/src/integrations/server-client.d.ts +4 -0
- package/dist/src/integrations/server-client.d.ts.map +1 -1
- package/dist/src/integrations/types.d.ts +12 -0
- package/dist/src/integrations/types.d.ts.map +1 -1
- package/dist/src/server.d.ts +3 -0
- package/dist/src/server.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -132,6 +132,88 @@ const result = await client.github.createIssue({
|
|
|
132
132
|
console.log("Issue created:", result);
|
|
133
133
|
```
|
|
134
134
|
|
|
135
|
+
### API Key Integrations
|
|
136
|
+
|
|
137
|
+
Use API-key integrations like Granola by passing the credential directly to the integration helper:
|
|
138
|
+
|
|
139
|
+
```typescript
|
|
140
|
+
import { createMCPClient, granolaIntegration } from "integrate-sdk";
|
|
141
|
+
|
|
142
|
+
const client = createMCPClient({
|
|
143
|
+
integrations: [
|
|
144
|
+
granolaIntegration({
|
|
145
|
+
apiKey: process.env.GRANOLA_API_KEY!,
|
|
146
|
+
}),
|
|
147
|
+
],
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
const notes = await client.callTool("granola_list_notes", {
|
|
151
|
+
page_size: 10,
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
const note = await client.callTool("granola_get_note", {
|
|
155
|
+
note_id: "not_123",
|
|
156
|
+
include_transcript: true,
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
const folders = await client.callTool("granola_list_folders", {
|
|
160
|
+
page_size: 10,
|
|
161
|
+
});
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Mercury uses the same API-token pattern:
|
|
165
|
+
|
|
166
|
+
```typescript
|
|
167
|
+
import { createMCPClient, mercuryIntegration } from "integrate-sdk";
|
|
168
|
+
|
|
169
|
+
const client = createMCPClient({
|
|
170
|
+
integrations: [
|
|
171
|
+
mercuryIntegration({
|
|
172
|
+
apiKey: process.env.MERCURY_API_KEY!,
|
|
173
|
+
}),
|
|
174
|
+
],
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
const org = await client.callTool("mercury_get_organization");
|
|
178
|
+
const accounts = await client.callTool("mercury_list_accounts", {
|
|
179
|
+
limit: 50,
|
|
180
|
+
});
|
|
181
|
+
const txns = await client.callTool("mercury_list_transactions", {
|
|
182
|
+
start: "2026-01-01",
|
|
183
|
+
end: "2026-01-31",
|
|
184
|
+
limit: 100,
|
|
185
|
+
});
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### OAuth File Storage Integrations
|
|
189
|
+
|
|
190
|
+
Dropbox follows the standard OAuth integration flow:
|
|
191
|
+
|
|
192
|
+
```typescript
|
|
193
|
+
import { createMCPClient, dropboxIntegration } from "integrate-sdk";
|
|
194
|
+
|
|
195
|
+
const client = createMCPClient({
|
|
196
|
+
integrations: [
|
|
197
|
+
dropboxIntegration({
|
|
198
|
+
scopes: [
|
|
199
|
+
"account_info.read",
|
|
200
|
+
"files.metadata.read",
|
|
201
|
+
"files.content.read",
|
|
202
|
+
"files.content.write",
|
|
203
|
+
"sharing.read",
|
|
204
|
+
"sharing.write",
|
|
205
|
+
],
|
|
206
|
+
}),
|
|
207
|
+
],
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
const account = await client.callTool("dropbox_get_current_account");
|
|
211
|
+
const files = await client.callTool("dropbox_list_folder", {
|
|
212
|
+
path: "/",
|
|
213
|
+
limit: 50,
|
|
214
|
+
});
|
|
215
|
+
```
|
|
216
|
+
|
|
135
217
|
**That's it!** The SDK automatically:
|
|
136
218
|
|
|
137
219
|
- ✅ Connects on first method call (no manual `connect()` needed)
|
|
@@ -284,6 +284,180 @@ function getContextCookieFromRequest(request) {
|
|
|
284
284
|
}
|
|
285
285
|
var CONTEXT_COOKIE_NAME = "__integrate_oauth_ctx", CONTEXT_COOKIE_MAX_AGE = 300;
|
|
286
286
|
|
|
287
|
+
// ../integrations/library-metadata.ts
|
|
288
|
+
function integrationLibraryPresentationFields(integration) {
|
|
289
|
+
const id = typeof integration["id"] === "string" ? integration["id"] : String(integration["id"] ?? "");
|
|
290
|
+
const fromCatalog = id ? INTEGRATION_LIBRARY_METADATA[id] : undefined;
|
|
291
|
+
const explicitDescription = integration["description"];
|
|
292
|
+
const explicitCategory = integration["category"];
|
|
293
|
+
const description = typeof explicitDescription === "string" && explicitDescription.trim().length > 0 ? explicitDescription.trim() : fromCatalog?.description;
|
|
294
|
+
const category = typeof explicitCategory === "string" && explicitCategory.trim().length > 0 ? explicitCategory.trim() : fromCatalog?.category;
|
|
295
|
+
const out = {};
|
|
296
|
+
if (description)
|
|
297
|
+
out.description = description;
|
|
298
|
+
if (category)
|
|
299
|
+
out.category = category;
|
|
300
|
+
return out;
|
|
301
|
+
}
|
|
302
|
+
var INTEGRATION_LIBRARY_METADATA;
|
|
303
|
+
var init_library_metadata = __esm(() => {
|
|
304
|
+
INTEGRATION_LIBRARY_METADATA = {
|
|
305
|
+
airtable: {
|
|
306
|
+
description: "Manage Airtable bases, tables, and records",
|
|
307
|
+
category: "Business"
|
|
308
|
+
},
|
|
309
|
+
calcom: {
|
|
310
|
+
description: "Manage Cal.com bookings and schedules",
|
|
311
|
+
category: "Productivity"
|
|
312
|
+
},
|
|
313
|
+
cursor: {
|
|
314
|
+
description: "Manage Cursor Cloud Agents and background tasks",
|
|
315
|
+
category: "Engineering"
|
|
316
|
+
},
|
|
317
|
+
figma: {
|
|
318
|
+
description: "Access Figma files, comments, and components",
|
|
319
|
+
category: "Engineering"
|
|
320
|
+
},
|
|
321
|
+
github: {
|
|
322
|
+
description: "Manage GitHub repos, issues, and pull requests",
|
|
323
|
+
category: "Engineering"
|
|
324
|
+
},
|
|
325
|
+
gmail: {
|
|
326
|
+
description: "Send, read, and search Gmail messages",
|
|
327
|
+
category: "Communication"
|
|
328
|
+
},
|
|
329
|
+
gcal: {
|
|
330
|
+
description: "Manage Google Calendar events and schedules",
|
|
331
|
+
category: "Productivity"
|
|
332
|
+
},
|
|
333
|
+
hubspot: {
|
|
334
|
+
description: "Manage HubSpot contacts, deals, and tickets",
|
|
335
|
+
category: "Business"
|
|
336
|
+
},
|
|
337
|
+
intercom: {
|
|
338
|
+
description: "Manage Intercom contacts and conversations",
|
|
339
|
+
category: "Business"
|
|
340
|
+
},
|
|
341
|
+
linear: {
|
|
342
|
+
description: "Manage Linear issues, projects, and cycles",
|
|
343
|
+
category: "Engineering"
|
|
344
|
+
},
|
|
345
|
+
notion: {
|
|
346
|
+
description: "Manage Notion pages and databases",
|
|
347
|
+
category: "Productivity"
|
|
348
|
+
},
|
|
349
|
+
onedrive: {
|
|
350
|
+
description: "Manage OneDrive files, folders, and sharing",
|
|
351
|
+
category: "Storage"
|
|
352
|
+
},
|
|
353
|
+
outlook: {
|
|
354
|
+
description: "Manage Outlook mail, calendars, and contacts",
|
|
355
|
+
category: "Communication"
|
|
356
|
+
},
|
|
357
|
+
polar: {
|
|
358
|
+
description: "Manage Polar products, orders, and subscriptions",
|
|
359
|
+
category: "Business"
|
|
360
|
+
},
|
|
361
|
+
ramp: {
|
|
362
|
+
description: "Manage Ramp corporate cards, bills, and spend",
|
|
363
|
+
category: "Business"
|
|
364
|
+
},
|
|
365
|
+
slack: {
|
|
366
|
+
description: "Send and manage Slack messages and channels",
|
|
367
|
+
category: "Communication"
|
|
368
|
+
},
|
|
369
|
+
stripe: {
|
|
370
|
+
description: "Manage Stripe customers, payments, and subscriptions",
|
|
371
|
+
category: "Business"
|
|
372
|
+
},
|
|
373
|
+
todoist: {
|
|
374
|
+
description: "Manage Todoist tasks, projects, and labels",
|
|
375
|
+
category: "Productivity"
|
|
376
|
+
},
|
|
377
|
+
gslides: {
|
|
378
|
+
description: "Create and update Google Slides presentations",
|
|
379
|
+
category: "Productivity"
|
|
380
|
+
},
|
|
381
|
+
gsheets: {
|
|
382
|
+
description: "Read and update Google Sheets spreadsheets",
|
|
383
|
+
category: "Productivity"
|
|
384
|
+
},
|
|
385
|
+
gdocs: {
|
|
386
|
+
description: "Create and edit Google Docs documents",
|
|
387
|
+
category: "Productivity"
|
|
388
|
+
},
|
|
389
|
+
gdrive: {
|
|
390
|
+
description: "Manage Google Drive files, folders, and sharing",
|
|
391
|
+
category: "Storage"
|
|
392
|
+
},
|
|
393
|
+
vercel: {
|
|
394
|
+
description: "Manage Vercel projects, deployments, and domains",
|
|
395
|
+
category: "Engineering"
|
|
396
|
+
},
|
|
397
|
+
whatsapp: {
|
|
398
|
+
description: "Send WhatsApp messages and templates",
|
|
399
|
+
category: "Communication"
|
|
400
|
+
},
|
|
401
|
+
youtube: {
|
|
402
|
+
description: "Search and access YouTube videos and channels",
|
|
403
|
+
category: "Communication"
|
|
404
|
+
},
|
|
405
|
+
powerpoint: {
|
|
406
|
+
description: "Manage PowerPoint presentations and sharing",
|
|
407
|
+
category: "Productivity"
|
|
408
|
+
},
|
|
409
|
+
excel: {
|
|
410
|
+
description: "Manage Excel workbooks, worksheets, and tables",
|
|
411
|
+
category: "Productivity"
|
|
412
|
+
},
|
|
413
|
+
word: {
|
|
414
|
+
description: "Manage Word documents and sharing",
|
|
415
|
+
category: "Productivity"
|
|
416
|
+
},
|
|
417
|
+
dropbox: {
|
|
418
|
+
description: "Manage Dropbox files, folders, and sharing",
|
|
419
|
+
category: "Storage"
|
|
420
|
+
},
|
|
421
|
+
granola: {
|
|
422
|
+
description: "List and read Granola meeting notes and folders",
|
|
423
|
+
category: "Productivity"
|
|
424
|
+
},
|
|
425
|
+
mercury: {
|
|
426
|
+
description: "Manage Mercury bank accounts, cards, and transactions",
|
|
427
|
+
category: "Business"
|
|
428
|
+
},
|
|
429
|
+
zendesk: {
|
|
430
|
+
description: "Manage Zendesk tickets, users, and help center content",
|
|
431
|
+
category: "Business"
|
|
432
|
+
}
|
|
433
|
+
};
|
|
434
|
+
});
|
|
435
|
+
|
|
436
|
+
// ../integrations/integration-summary.ts
|
|
437
|
+
function toConfiguredIntegrationSummary(integration) {
|
|
438
|
+
const row = integration;
|
|
439
|
+
const pres = integrationLibraryPresentationFields(row);
|
|
440
|
+
return {
|
|
441
|
+
id: integration.id,
|
|
442
|
+
name: row.name || integration.id,
|
|
443
|
+
logoUrl: row.logoUrl,
|
|
444
|
+
tools: integration.tools,
|
|
445
|
+
hasOAuth: !!integration.oauth,
|
|
446
|
+
scopes: integration.oauth?.scopes,
|
|
447
|
+
provider: integration.oauth?.provider,
|
|
448
|
+
...pres
|
|
449
|
+
};
|
|
450
|
+
}
|
|
451
|
+
function toConfiguredIntegrationWithToolMetadata(integration, toolMetadata) {
|
|
452
|
+
return {
|
|
453
|
+
...toConfiguredIntegrationSummary(integration),
|
|
454
|
+
toolMetadata
|
|
455
|
+
};
|
|
456
|
+
}
|
|
457
|
+
var init_integration_summary = __esm(() => {
|
|
458
|
+
init_library_metadata();
|
|
459
|
+
});
|
|
460
|
+
|
|
287
461
|
// ../utils/logger.ts
|
|
288
462
|
function shouldLog(level, context) {
|
|
289
463
|
return logLevelHierarchy[level] <= logLevelHierarchy[contextLogLevels[context]];
|
|
@@ -447,14 +621,8 @@ class OAuthHandler {
|
|
|
447
621
|
const integrations = this.config.integrations || [];
|
|
448
622
|
return {
|
|
449
623
|
integrations: integrations.map((integration) => ({
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
logoUrl: integration.logoUrl,
|
|
453
|
-
tools: integration.tools,
|
|
454
|
-
hasOAuth: !!integration.oauth,
|
|
455
|
-
scopes: integration.oauth?.scopes,
|
|
456
|
-
optionalScopes: integration.oauth?.optionalScopes,
|
|
457
|
-
provider: integration.oauth?.provider
|
|
624
|
+
...toConfiguredIntegrationSummary(integration),
|
|
625
|
+
optionalScopes: integration.oauth?.optionalScopes
|
|
458
626
|
}))
|
|
459
627
|
};
|
|
460
628
|
}
|
|
@@ -841,6 +1009,7 @@ class OAuthHandler {
|
|
|
841
1009
|
}
|
|
842
1010
|
var SERVER_LOG_CONTEXT = "server", logger2, MCP_SERVER_URL = "https://mcp.integrate.dev/api/v1/mcp";
|
|
843
1011
|
var init_base_handler = __esm(() => {
|
|
1012
|
+
init_integration_summary();
|
|
844
1013
|
init_email_fetcher();
|
|
845
1014
|
init_logger();
|
|
846
1015
|
logger2 = createLogger("OAuthHandler", SERVER_LOG_CONTEXT);
|
|
@@ -240,10 +240,12 @@ export declare class OAuthHandler {
|
|
|
240
240
|
id: string;
|
|
241
241
|
name: string;
|
|
242
242
|
logoUrl?: string;
|
|
243
|
+
description?: string;
|
|
244
|
+
category?: string;
|
|
243
245
|
tools: readonly string[];
|
|
244
246
|
hasOAuth: boolean;
|
|
245
|
-
scopes?: string[];
|
|
246
|
-
optionalScopes?: string[];
|
|
247
|
+
scopes?: readonly string[];
|
|
248
|
+
optionalScopes?: readonly string[];
|
|
247
249
|
provider?: string;
|
|
248
250
|
}>;
|
|
249
251
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/adapters/base-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/adapters/base-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -284,6 +284,180 @@ function getContextCookieFromRequest(request) {
|
|
|
284
284
|
}
|
|
285
285
|
var CONTEXT_COOKIE_NAME = "__integrate_oauth_ctx", CONTEXT_COOKIE_MAX_AGE = 300;
|
|
286
286
|
|
|
287
|
+
// ../integrations/library-metadata.ts
|
|
288
|
+
function integrationLibraryPresentationFields(integration) {
|
|
289
|
+
const id = typeof integration["id"] === "string" ? integration["id"] : String(integration["id"] ?? "");
|
|
290
|
+
const fromCatalog = id ? INTEGRATION_LIBRARY_METADATA[id] : undefined;
|
|
291
|
+
const explicitDescription = integration["description"];
|
|
292
|
+
const explicitCategory = integration["category"];
|
|
293
|
+
const description = typeof explicitDescription === "string" && explicitDescription.trim().length > 0 ? explicitDescription.trim() : fromCatalog?.description;
|
|
294
|
+
const category = typeof explicitCategory === "string" && explicitCategory.trim().length > 0 ? explicitCategory.trim() : fromCatalog?.category;
|
|
295
|
+
const out = {};
|
|
296
|
+
if (description)
|
|
297
|
+
out.description = description;
|
|
298
|
+
if (category)
|
|
299
|
+
out.category = category;
|
|
300
|
+
return out;
|
|
301
|
+
}
|
|
302
|
+
var INTEGRATION_LIBRARY_METADATA;
|
|
303
|
+
var init_library_metadata = __esm(() => {
|
|
304
|
+
INTEGRATION_LIBRARY_METADATA = {
|
|
305
|
+
airtable: {
|
|
306
|
+
description: "Manage Airtable bases, tables, and records",
|
|
307
|
+
category: "Business"
|
|
308
|
+
},
|
|
309
|
+
calcom: {
|
|
310
|
+
description: "Manage Cal.com bookings and schedules",
|
|
311
|
+
category: "Productivity"
|
|
312
|
+
},
|
|
313
|
+
cursor: {
|
|
314
|
+
description: "Manage Cursor Cloud Agents and background tasks",
|
|
315
|
+
category: "Engineering"
|
|
316
|
+
},
|
|
317
|
+
figma: {
|
|
318
|
+
description: "Access Figma files, comments, and components",
|
|
319
|
+
category: "Engineering"
|
|
320
|
+
},
|
|
321
|
+
github: {
|
|
322
|
+
description: "Manage GitHub repos, issues, and pull requests",
|
|
323
|
+
category: "Engineering"
|
|
324
|
+
},
|
|
325
|
+
gmail: {
|
|
326
|
+
description: "Send, read, and search Gmail messages",
|
|
327
|
+
category: "Communication"
|
|
328
|
+
},
|
|
329
|
+
gcal: {
|
|
330
|
+
description: "Manage Google Calendar events and schedules",
|
|
331
|
+
category: "Productivity"
|
|
332
|
+
},
|
|
333
|
+
hubspot: {
|
|
334
|
+
description: "Manage HubSpot contacts, deals, and tickets",
|
|
335
|
+
category: "Business"
|
|
336
|
+
},
|
|
337
|
+
intercom: {
|
|
338
|
+
description: "Manage Intercom contacts and conversations",
|
|
339
|
+
category: "Business"
|
|
340
|
+
},
|
|
341
|
+
linear: {
|
|
342
|
+
description: "Manage Linear issues, projects, and cycles",
|
|
343
|
+
category: "Engineering"
|
|
344
|
+
},
|
|
345
|
+
notion: {
|
|
346
|
+
description: "Manage Notion pages and databases",
|
|
347
|
+
category: "Productivity"
|
|
348
|
+
},
|
|
349
|
+
onedrive: {
|
|
350
|
+
description: "Manage OneDrive files, folders, and sharing",
|
|
351
|
+
category: "Storage"
|
|
352
|
+
},
|
|
353
|
+
outlook: {
|
|
354
|
+
description: "Manage Outlook mail, calendars, and contacts",
|
|
355
|
+
category: "Communication"
|
|
356
|
+
},
|
|
357
|
+
polar: {
|
|
358
|
+
description: "Manage Polar products, orders, and subscriptions",
|
|
359
|
+
category: "Business"
|
|
360
|
+
},
|
|
361
|
+
ramp: {
|
|
362
|
+
description: "Manage Ramp corporate cards, bills, and spend",
|
|
363
|
+
category: "Business"
|
|
364
|
+
},
|
|
365
|
+
slack: {
|
|
366
|
+
description: "Send and manage Slack messages and channels",
|
|
367
|
+
category: "Communication"
|
|
368
|
+
},
|
|
369
|
+
stripe: {
|
|
370
|
+
description: "Manage Stripe customers, payments, and subscriptions",
|
|
371
|
+
category: "Business"
|
|
372
|
+
},
|
|
373
|
+
todoist: {
|
|
374
|
+
description: "Manage Todoist tasks, projects, and labels",
|
|
375
|
+
category: "Productivity"
|
|
376
|
+
},
|
|
377
|
+
gslides: {
|
|
378
|
+
description: "Create and update Google Slides presentations",
|
|
379
|
+
category: "Productivity"
|
|
380
|
+
},
|
|
381
|
+
gsheets: {
|
|
382
|
+
description: "Read and update Google Sheets spreadsheets",
|
|
383
|
+
category: "Productivity"
|
|
384
|
+
},
|
|
385
|
+
gdocs: {
|
|
386
|
+
description: "Create and edit Google Docs documents",
|
|
387
|
+
category: "Productivity"
|
|
388
|
+
},
|
|
389
|
+
gdrive: {
|
|
390
|
+
description: "Manage Google Drive files, folders, and sharing",
|
|
391
|
+
category: "Storage"
|
|
392
|
+
},
|
|
393
|
+
vercel: {
|
|
394
|
+
description: "Manage Vercel projects, deployments, and domains",
|
|
395
|
+
category: "Engineering"
|
|
396
|
+
},
|
|
397
|
+
whatsapp: {
|
|
398
|
+
description: "Send WhatsApp messages and templates",
|
|
399
|
+
category: "Communication"
|
|
400
|
+
},
|
|
401
|
+
youtube: {
|
|
402
|
+
description: "Search and access YouTube videos and channels",
|
|
403
|
+
category: "Communication"
|
|
404
|
+
},
|
|
405
|
+
powerpoint: {
|
|
406
|
+
description: "Manage PowerPoint presentations and sharing",
|
|
407
|
+
category: "Productivity"
|
|
408
|
+
},
|
|
409
|
+
excel: {
|
|
410
|
+
description: "Manage Excel workbooks, worksheets, and tables",
|
|
411
|
+
category: "Productivity"
|
|
412
|
+
},
|
|
413
|
+
word: {
|
|
414
|
+
description: "Manage Word documents and sharing",
|
|
415
|
+
category: "Productivity"
|
|
416
|
+
},
|
|
417
|
+
dropbox: {
|
|
418
|
+
description: "Manage Dropbox files, folders, and sharing",
|
|
419
|
+
category: "Storage"
|
|
420
|
+
},
|
|
421
|
+
granola: {
|
|
422
|
+
description: "List and read Granola meeting notes and folders",
|
|
423
|
+
category: "Productivity"
|
|
424
|
+
},
|
|
425
|
+
mercury: {
|
|
426
|
+
description: "Manage Mercury bank accounts, cards, and transactions",
|
|
427
|
+
category: "Business"
|
|
428
|
+
},
|
|
429
|
+
zendesk: {
|
|
430
|
+
description: "Manage Zendesk tickets, users, and help center content",
|
|
431
|
+
category: "Business"
|
|
432
|
+
}
|
|
433
|
+
};
|
|
434
|
+
});
|
|
435
|
+
|
|
436
|
+
// ../integrations/integration-summary.ts
|
|
437
|
+
function toConfiguredIntegrationSummary(integration) {
|
|
438
|
+
const row = integration;
|
|
439
|
+
const pres = integrationLibraryPresentationFields(row);
|
|
440
|
+
return {
|
|
441
|
+
id: integration.id,
|
|
442
|
+
name: row.name || integration.id,
|
|
443
|
+
logoUrl: row.logoUrl,
|
|
444
|
+
tools: integration.tools,
|
|
445
|
+
hasOAuth: !!integration.oauth,
|
|
446
|
+
scopes: integration.oauth?.scopes,
|
|
447
|
+
provider: integration.oauth?.provider,
|
|
448
|
+
...pres
|
|
449
|
+
};
|
|
450
|
+
}
|
|
451
|
+
function toConfiguredIntegrationWithToolMetadata(integration, toolMetadata) {
|
|
452
|
+
return {
|
|
453
|
+
...toConfiguredIntegrationSummary(integration),
|
|
454
|
+
toolMetadata
|
|
455
|
+
};
|
|
456
|
+
}
|
|
457
|
+
var init_integration_summary = __esm(() => {
|
|
458
|
+
init_library_metadata();
|
|
459
|
+
});
|
|
460
|
+
|
|
287
461
|
// ../utils/logger.ts
|
|
288
462
|
function shouldLog(level, context) {
|
|
289
463
|
return logLevelHierarchy[level] <= logLevelHierarchy[contextLogLevels[context]];
|
|
@@ -447,14 +621,8 @@ class OAuthHandler {
|
|
|
447
621
|
const integrations = this.config.integrations || [];
|
|
448
622
|
return {
|
|
449
623
|
integrations: integrations.map((integration) => ({
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
logoUrl: integration.logoUrl,
|
|
453
|
-
tools: integration.tools,
|
|
454
|
-
hasOAuth: !!integration.oauth,
|
|
455
|
-
scopes: integration.oauth?.scopes,
|
|
456
|
-
optionalScopes: integration.oauth?.optionalScopes,
|
|
457
|
-
provider: integration.oauth?.provider
|
|
624
|
+
...toConfiguredIntegrationSummary(integration),
|
|
625
|
+
optionalScopes: integration.oauth?.optionalScopes
|
|
458
626
|
}))
|
|
459
627
|
};
|
|
460
628
|
}
|
|
@@ -841,6 +1009,7 @@ class OAuthHandler {
|
|
|
841
1009
|
}
|
|
842
1010
|
var SERVER_LOG_CONTEXT = "server", logger2, MCP_SERVER_URL = "https://mcp.integrate.dev/api/v1/mcp";
|
|
843
1011
|
var init_base_handler = __esm(() => {
|
|
1012
|
+
init_integration_summary();
|
|
844
1013
|
init_email_fetcher();
|
|
845
1014
|
init_logger();
|
|
846
1015
|
logger2 = createLogger("OAuthHandler", SERVER_LOG_CONTEXT);
|