integrate-sdk 0.8.47-dev.0 → 0.8.50-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/dist/adapters/auto-routes.js +130 -3
- package/dist/adapters/index.js +130 -3
- package/dist/adapters/nextjs.js +130 -3
- package/dist/adapters/node.js +130 -3
- package/dist/adapters/svelte-kit.js +130 -3
- package/dist/adapters/tanstack-start.js +130 -3
- package/dist/index.js +130 -3
- package/dist/oauth.js +130 -3
- package/dist/server.js +130 -3
- package/dist/src/client.d.ts +6 -0
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/integrations/airtable.d.ts.map +1 -1
- package/dist/src/integrations/calcom.d.ts.map +1 -1
- package/dist/src/integrations/cursor.d.ts.map +1 -1
- package/dist/src/integrations/figma.d.ts.map +1 -1
- package/dist/src/integrations/gcal.d.ts.map +1 -1
- package/dist/src/integrations/generic.d.ts +4 -0
- package/dist/src/integrations/generic.d.ts.map +1 -1
- package/dist/src/integrations/github.d.ts.map +1 -1
- package/dist/src/integrations/gmail.d.ts.map +1 -1
- package/dist/src/integrations/gworkspace.d.ts.map +1 -1
- package/dist/src/integrations/hubspot.d.ts.map +1 -1
- package/dist/src/integrations/intercom.d.ts.map +1 -1
- package/dist/src/integrations/linear.d.ts.map +1 -1
- package/dist/src/integrations/notion.d.ts.map +1 -1
- package/dist/src/integrations/onedrive.d.ts.map +1 -1
- package/dist/src/integrations/outlook.d.ts.map +1 -1
- package/dist/src/integrations/polar.d.ts.map +1 -1
- package/dist/src/integrations/ramp.d.ts.map +1 -1
- package/dist/src/integrations/server-client.d.ts +22 -2
- package/dist/src/integrations/server-client.d.ts.map +1 -1
- package/dist/src/integrations/slack.d.ts.map +1 -1
- package/dist/src/integrations/stripe.d.ts.map +1 -1
- package/dist/src/integrations/todoist.d.ts.map +1 -1
- package/dist/src/integrations/types.d.ts +4 -0
- package/dist/src/integrations/types.d.ts.map +1 -1
- package/dist/src/integrations/vercel.d.ts.map +1 -1
- package/dist/src/integrations/whatsapp.d.ts.map +1 -1
- package/dist/src/integrations/youtube.d.ts.map +1 -1
- package/dist/src/integrations/zendesk.d.ts.map +1 -1
- package/dist/src/utils/concurrency.d.ts +24 -0
- package/dist/src/utils/concurrency.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -1622,6 +1622,32 @@ var init_manager = __esm(() => {
|
|
|
1622
1622
|
logger4 = createLogger("OAuth");
|
|
1623
1623
|
});
|
|
1624
1624
|
|
|
1625
|
+
// ../utils/concurrency.ts
|
|
1626
|
+
var exports_concurrency = {};
|
|
1627
|
+
__export(exports_concurrency, {
|
|
1628
|
+
parallelWithLimit: () => parallelWithLimit
|
|
1629
|
+
});
|
|
1630
|
+
async function parallelWithLimit(items, fn, limit = 3) {
|
|
1631
|
+
const results = [];
|
|
1632
|
+
const executing = [];
|
|
1633
|
+
for (let i = 0;i < items.length; i++) {
|
|
1634
|
+
const item = items[i];
|
|
1635
|
+
const index = i;
|
|
1636
|
+
const promise = fn(item).then((result) => {
|
|
1637
|
+
results[index] = result;
|
|
1638
|
+
}).catch(() => {
|
|
1639
|
+
results[index] = undefined;
|
|
1640
|
+
});
|
|
1641
|
+
executing.push(promise);
|
|
1642
|
+
if (executing.length >= limit) {
|
|
1643
|
+
const completedIndex = await Promise.race(executing.map((p, idx) => p.then(() => idx).catch(() => idx)));
|
|
1644
|
+
executing.splice(completedIndex, 1);
|
|
1645
|
+
}
|
|
1646
|
+
}
|
|
1647
|
+
await Promise.all(executing);
|
|
1648
|
+
return results;
|
|
1649
|
+
}
|
|
1650
|
+
|
|
1625
1651
|
// ../client.ts
|
|
1626
1652
|
class SimpleEventEmitter {
|
|
1627
1653
|
handlers = new Map;
|
|
@@ -1673,6 +1699,7 @@ class MCPClientBase {
|
|
|
1673
1699
|
apiRouteBase;
|
|
1674
1700
|
apiBaseUrl;
|
|
1675
1701
|
databaseDetected = false;
|
|
1702
|
+
__configuredIntegrations;
|
|
1676
1703
|
oauthCallbackPromise;
|
|
1677
1704
|
server;
|
|
1678
1705
|
trigger;
|
|
@@ -1698,6 +1725,7 @@ class MCPClientBase {
|
|
|
1698
1725
|
}
|
|
1699
1726
|
return integration;
|
|
1700
1727
|
});
|
|
1728
|
+
this.__configuredIntegrations = this.integrations;
|
|
1701
1729
|
this.clientInfo = config.clientInfo || {
|
|
1702
1730
|
name: "integrate-sdk",
|
|
1703
1731
|
version: "0.1.0"
|
|
@@ -1840,13 +1868,64 @@ class MCPClientBase {
|
|
|
1840
1868
|
return new Proxy({}, {
|
|
1841
1869
|
get: (_target, methodName) => {
|
|
1842
1870
|
if (methodName === "listConfiguredIntegrations") {
|
|
1843
|
-
return async () => {
|
|
1871
|
+
return async (options) => {
|
|
1844
1872
|
const serverConfig = this.__oauthConfig;
|
|
1845
|
-
const configuredIntegrations = serverConfig?.integrations || this.
|
|
1873
|
+
const configuredIntegrations = serverConfig?.integrations || this.__configuredIntegrations;
|
|
1874
|
+
if (options?.includeToolMetadata) {
|
|
1875
|
+
const { parallelWithLimit: parallelWithLimit2 } = await Promise.resolve().then(() => exports_concurrency);
|
|
1876
|
+
const integrationsWithMetadata = await parallelWithLimit2(configuredIntegrations, async (integration) => {
|
|
1877
|
+
try {
|
|
1878
|
+
const response = await this.callServerToolInternal("list_tools_by_integration", {
|
|
1879
|
+
integration: integration.id
|
|
1880
|
+
});
|
|
1881
|
+
let toolMetadata = [];
|
|
1882
|
+
if (response.content && Array.isArray(response.content)) {
|
|
1883
|
+
for (const item of response.content) {
|
|
1884
|
+
if (item.type === "text" && item.text) {
|
|
1885
|
+
try {
|
|
1886
|
+
const parsed = JSON.parse(item.text);
|
|
1887
|
+
if (Array.isArray(parsed)) {
|
|
1888
|
+
toolMetadata = parsed;
|
|
1889
|
+
} else if (parsed.tools && Array.isArray(parsed.tools)) {
|
|
1890
|
+
toolMetadata = parsed.tools;
|
|
1891
|
+
}
|
|
1892
|
+
} catch {}
|
|
1893
|
+
}
|
|
1894
|
+
}
|
|
1895
|
+
}
|
|
1896
|
+
return {
|
|
1897
|
+
id: integration.id,
|
|
1898
|
+
name: integration.name || integration.id,
|
|
1899
|
+
logoUrl: integration.logoUrl,
|
|
1900
|
+
tools: integration.tools,
|
|
1901
|
+
hasOAuth: !!integration.oauth,
|
|
1902
|
+
scopes: integration.oauth?.scopes,
|
|
1903
|
+
provider: integration.oauth?.provider,
|
|
1904
|
+
toolMetadata
|
|
1905
|
+
};
|
|
1906
|
+
} catch (error) {
|
|
1907
|
+
logger5.error(`Failed to fetch tool metadata for ${integration.id}:`, error);
|
|
1908
|
+
return {
|
|
1909
|
+
id: integration.id,
|
|
1910
|
+
name: integration.name || integration.id,
|
|
1911
|
+
logoUrl: integration.logoUrl,
|
|
1912
|
+
tools: integration.tools,
|
|
1913
|
+
hasOAuth: !!integration.oauth,
|
|
1914
|
+
scopes: integration.oauth?.scopes,
|
|
1915
|
+
provider: integration.oauth?.provider,
|
|
1916
|
+
toolMetadata: []
|
|
1917
|
+
};
|
|
1918
|
+
}
|
|
1919
|
+
}, 3);
|
|
1920
|
+
return {
|
|
1921
|
+
integrations: integrationsWithMetadata
|
|
1922
|
+
};
|
|
1923
|
+
}
|
|
1846
1924
|
return {
|
|
1847
1925
|
integrations: configuredIntegrations.map((integration) => ({
|
|
1848
1926
|
id: integration.id,
|
|
1849
1927
|
name: integration.name || integration.id,
|
|
1928
|
+
logoUrl: integration.logoUrl,
|
|
1850
1929
|
tools: integration.tools,
|
|
1851
1930
|
hasOAuth: !!integration.oauth,
|
|
1852
1931
|
scopes: integration.oauth?.scopes,
|
|
@@ -2396,6 +2475,8 @@ function githubIntegration(config = {}) {
|
|
|
2396
2475
|
};
|
|
2397
2476
|
return {
|
|
2398
2477
|
id: "github",
|
|
2478
|
+
name: "GitHub",
|
|
2479
|
+
logoUrl: "https://cdn.simpleicons.org/github",
|
|
2399
2480
|
tools: [...GITHUB_TOOLS],
|
|
2400
2481
|
oauth,
|
|
2401
2482
|
async onInit(_client) {
|
|
@@ -2449,6 +2530,8 @@ function gmailIntegration(config = {}) {
|
|
|
2449
2530
|
};
|
|
2450
2531
|
return {
|
|
2451
2532
|
id: "gmail",
|
|
2533
|
+
name: "Gmail",
|
|
2534
|
+
logoUrl: "https://cdn.simpleicons.org/gmail",
|
|
2452
2535
|
tools: [...GMAIL_TOOLS],
|
|
2453
2536
|
oauth,
|
|
2454
2537
|
async onInit(_client) {
|
|
@@ -2488,6 +2571,8 @@ function notionIntegration(config = {}) {
|
|
|
2488
2571
|
};
|
|
2489
2572
|
return {
|
|
2490
2573
|
id: "notion",
|
|
2574
|
+
name: "Notion",
|
|
2575
|
+
logoUrl: "https://cdn.simpleicons.org/notion",
|
|
2491
2576
|
tools: [...NOTION_TOOLS],
|
|
2492
2577
|
oauth,
|
|
2493
2578
|
async onInit(_client) {
|
|
@@ -2522,6 +2607,8 @@ function slackIntegration(config = {}) {
|
|
|
2522
2607
|
};
|
|
2523
2608
|
return {
|
|
2524
2609
|
id: "slack",
|
|
2610
|
+
name: "Slack",
|
|
2611
|
+
logoUrl: "https://cdn.simpleicons.org/slack",
|
|
2525
2612
|
tools: [...SLACK_TOOLS],
|
|
2526
2613
|
oauth,
|
|
2527
2614
|
async onInit(_client) {
|
|
@@ -2563,6 +2650,8 @@ function linearIntegration(config = {}) {
|
|
|
2563
2650
|
};
|
|
2564
2651
|
return {
|
|
2565
2652
|
id: "linear",
|
|
2653
|
+
name: "Linear",
|
|
2654
|
+
logoUrl: "https://cdn.simpleicons.org/linear",
|
|
2566
2655
|
tools: [...LINEAR_TOOLS],
|
|
2567
2656
|
oauth,
|
|
2568
2657
|
async onInit(_client) {
|
|
@@ -2604,6 +2693,8 @@ function vercelIntegration(config = {}) {
|
|
|
2604
2693
|
};
|
|
2605
2694
|
return {
|
|
2606
2695
|
id: "vercel",
|
|
2696
|
+
name: "Vercel",
|
|
2697
|
+
logoUrl: "https://cdn.simpleicons.org/vercel",
|
|
2607
2698
|
tools: [...VERCEL_TOOLS],
|
|
2608
2699
|
oauth,
|
|
2609
2700
|
async onInit(_client) {
|
|
@@ -2646,6 +2737,8 @@ function zendeskIntegration(config = {}) {
|
|
|
2646
2737
|
};
|
|
2647
2738
|
return {
|
|
2648
2739
|
id: "zendesk",
|
|
2740
|
+
name: "Zendesk",
|
|
2741
|
+
logoUrl: "https://cdn.simpleicons.org/zendesk",
|
|
2649
2742
|
tools: [...ZENDESK_TOOLS],
|
|
2650
2743
|
oauth,
|
|
2651
2744
|
async onInit(_client) {
|
|
@@ -2687,6 +2780,8 @@ function stripeIntegration(config = {}) {
|
|
|
2687
2780
|
};
|
|
2688
2781
|
return {
|
|
2689
2782
|
id: "stripe",
|
|
2783
|
+
name: "Stripe",
|
|
2784
|
+
logoUrl: "https://cdn.simpleicons.org/stripe",
|
|
2690
2785
|
tools: [...STRIPE_TOOLS],
|
|
2691
2786
|
oauth,
|
|
2692
2787
|
async onInit(_client) {
|
|
@@ -2728,6 +2823,8 @@ function gcalIntegration(config = {}) {
|
|
|
2728
2823
|
};
|
|
2729
2824
|
return {
|
|
2730
2825
|
id: "gcal",
|
|
2826
|
+
name: "Google Calendar",
|
|
2827
|
+
logoUrl: "https://cdn.simpleicons.org/googlecalendar",
|
|
2731
2828
|
tools: [...GCAL_TOOLS],
|
|
2732
2829
|
oauth,
|
|
2733
2830
|
async onInit(_client) {
|
|
@@ -2769,6 +2866,8 @@ function outlookIntegration(config = {}) {
|
|
|
2769
2866
|
};
|
|
2770
2867
|
return {
|
|
2771
2868
|
id: "outlook",
|
|
2869
|
+
name: "Outlook",
|
|
2870
|
+
logoUrl: "https://cdn.simpleicons.org/microsoftoutlook",
|
|
2772
2871
|
tools: [...OUTLOOK_TOOLS],
|
|
2773
2872
|
oauth,
|
|
2774
2873
|
async onInit(_client) {
|
|
@@ -2810,6 +2909,8 @@ function airtableIntegration(config = {}) {
|
|
|
2810
2909
|
};
|
|
2811
2910
|
return {
|
|
2812
2911
|
id: "airtable",
|
|
2912
|
+
name: "Airtable",
|
|
2913
|
+
logoUrl: "https://cdn.simpleicons.org/airtable",
|
|
2813
2914
|
tools: [...AIRTABLE_TOOLS],
|
|
2814
2915
|
oauth,
|
|
2815
2916
|
async onInit(_client) {
|
|
@@ -2851,6 +2952,8 @@ function todoistIntegration(config = {}) {
|
|
|
2851
2952
|
};
|
|
2852
2953
|
return {
|
|
2853
2954
|
id: "todoist",
|
|
2955
|
+
name: "Todoist",
|
|
2956
|
+
logoUrl: "https://cdn.simpleicons.org/todoist",
|
|
2854
2957
|
tools: [...TODOIST_TOOLS],
|
|
2855
2958
|
oauth,
|
|
2856
2959
|
async onInit(_client) {
|
|
@@ -2893,6 +2996,8 @@ function whatsappIntegration(config = {}) {
|
|
|
2893
2996
|
};
|
|
2894
2997
|
return {
|
|
2895
2998
|
id: "whatsapp",
|
|
2999
|
+
name: "WhatsApp Business",
|
|
3000
|
+
logoUrl: "https://cdn.simpleicons.org/whatsapp",
|
|
2896
3001
|
tools: [...WHATSAPP_TOOLS],
|
|
2897
3002
|
oauth,
|
|
2898
3003
|
async onInit(_client) {
|
|
@@ -2934,6 +3039,8 @@ function calcomIntegration(config = {}) {
|
|
|
2934
3039
|
};
|
|
2935
3040
|
return {
|
|
2936
3041
|
id: "calcom",
|
|
3042
|
+
name: "Cal.com",
|
|
3043
|
+
logoUrl: "https://cdn.simpleicons.org/calendly",
|
|
2937
3044
|
tools: [...CALCOM_TOOLS],
|
|
2938
3045
|
oauth,
|
|
2939
3046
|
async onInit(_client) {
|
|
@@ -2976,6 +3083,8 @@ function rampIntegration(config = {}) {
|
|
|
2976
3083
|
};
|
|
2977
3084
|
return {
|
|
2978
3085
|
id: "ramp",
|
|
3086
|
+
name: "Ramp",
|
|
3087
|
+
logoUrl: "https://cdn.simpleicons.org/ramp",
|
|
2979
3088
|
tools: [...RAMP_TOOLS],
|
|
2980
3089
|
oauth,
|
|
2981
3090
|
async onInit(_client) {
|
|
@@ -3017,6 +3126,8 @@ function onedriveIntegration(config = {}) {
|
|
|
3017
3126
|
};
|
|
3018
3127
|
return {
|
|
3019
3128
|
id: "onedrive",
|
|
3129
|
+
name: "OneDrive",
|
|
3130
|
+
logoUrl: "https://cdn.simpleicons.org/onedrive",
|
|
3020
3131
|
tools: [...ONEDRIVE_TOOLS],
|
|
3021
3132
|
oauth,
|
|
3022
3133
|
async onInit(_client) {
|
|
@@ -3066,6 +3177,8 @@ function gworkspaceIntegration(config = {}) {
|
|
|
3066
3177
|
};
|
|
3067
3178
|
return {
|
|
3068
3179
|
id: "gworkspace",
|
|
3180
|
+
name: "Google Workspace",
|
|
3181
|
+
logoUrl: "https://cdn.simpleicons.org/google",
|
|
3069
3182
|
tools: [...GWORKSPACE_TOOLS],
|
|
3070
3183
|
oauth,
|
|
3071
3184
|
async onInit(_client) {
|
|
@@ -3111,6 +3224,8 @@ function polarIntegration(config = {}) {
|
|
|
3111
3224
|
};
|
|
3112
3225
|
return {
|
|
3113
3226
|
id: "polar",
|
|
3227
|
+
name: "Polar",
|
|
3228
|
+
logoUrl: "https://cdn.simpleicons.org/polar",
|
|
3114
3229
|
tools: [...POLAR_TOOLS],
|
|
3115
3230
|
oauth,
|
|
3116
3231
|
async onInit(_client) {
|
|
@@ -3152,6 +3267,8 @@ function figmaIntegration(config = {}) {
|
|
|
3152
3267
|
};
|
|
3153
3268
|
return {
|
|
3154
3269
|
id: "figma",
|
|
3270
|
+
name: "Figma",
|
|
3271
|
+
logoUrl: "https://cdn.simpleicons.org/figma",
|
|
3155
3272
|
tools: [...FIGMA_TOOLS],
|
|
3156
3273
|
oauth,
|
|
3157
3274
|
async onInit(_client) {
|
|
@@ -3193,6 +3310,8 @@ function intercomIntegration(config = {}) {
|
|
|
3193
3310
|
};
|
|
3194
3311
|
return {
|
|
3195
3312
|
id: "intercom",
|
|
3313
|
+
name: "Intercom",
|
|
3314
|
+
logoUrl: "https://cdn.simpleicons.org/intercom",
|
|
3196
3315
|
tools: [...INTERCOM_TOOLS],
|
|
3197
3316
|
oauth,
|
|
3198
3317
|
async onInit(_client) {
|
|
@@ -3242,6 +3361,8 @@ function hubspotIntegration(config = {}) {
|
|
|
3242
3361
|
};
|
|
3243
3362
|
return {
|
|
3244
3363
|
id: "hubspot",
|
|
3364
|
+
name: "HubSpot",
|
|
3365
|
+
logoUrl: "https://cdn.simpleicons.org/hubspot",
|
|
3245
3366
|
tools: [...HUBSPOT_TOOLS],
|
|
3246
3367
|
oauth,
|
|
3247
3368
|
async onInit(_client) {
|
|
@@ -3286,6 +3407,8 @@ function youtubeIntegration(config = {}) {
|
|
|
3286
3407
|
};
|
|
3287
3408
|
return {
|
|
3288
3409
|
id: "youtube",
|
|
3410
|
+
name: "YouTube",
|
|
3411
|
+
logoUrl: "https://cdn.simpleicons.org/youtube",
|
|
3289
3412
|
tools: [...YOUTUBE_TOOLS],
|
|
3290
3413
|
oauth,
|
|
3291
3414
|
async onInit(_client) {
|
|
@@ -3317,6 +3440,8 @@ var init_youtube = __esm(() => {
|
|
|
3317
3440
|
function cursorIntegration(_config = {}) {
|
|
3318
3441
|
return {
|
|
3319
3442
|
id: "cursor",
|
|
3443
|
+
name: "Cursor",
|
|
3444
|
+
logoUrl: "https://cdn.simpleicons.org/cursor",
|
|
3320
3445
|
tools: [...CURSOR_TOOLS],
|
|
3321
3446
|
async onInit(_client) {
|
|
3322
3447
|
logger28.debug("Cursor integration initialized");
|
|
@@ -3357,6 +3482,8 @@ function genericOAuthIntegration(config) {
|
|
|
3357
3482
|
};
|
|
3358
3483
|
return {
|
|
3359
3484
|
id: config.id,
|
|
3485
|
+
name: config.name,
|
|
3486
|
+
logoUrl: config.logoUrl,
|
|
3360
3487
|
tools: config.tools,
|
|
3361
3488
|
oauth,
|
|
3362
3489
|
onInit: config.onInit,
|
|
@@ -9177,7 +9304,6 @@ var init_zodToJsonSchema = __esm(() => {
|
|
|
9177
9304
|
|
|
9178
9305
|
// ../../node_modules/zod-to-json-schema/dist/esm/index.js
|
|
9179
9306
|
var init_esm = __esm(() => {
|
|
9180
|
-
init_zodToJsonSchema();
|
|
9181
9307
|
init_Options();
|
|
9182
9308
|
init_Refs();
|
|
9183
9309
|
init_parseDef();
|
|
@@ -9209,6 +9335,7 @@ var init_esm = __esm(() => {
|
|
|
9209
9335
|
init_unknown();
|
|
9210
9336
|
init_selectParser();
|
|
9211
9337
|
init_zodToJsonSchema();
|
|
9338
|
+
init_zodToJsonSchema();
|
|
9212
9339
|
});
|
|
9213
9340
|
|
|
9214
9341
|
// ../ai/openai.ts
|
|
@@ -1622,6 +1622,32 @@ var init_manager = __esm(() => {
|
|
|
1622
1622
|
logger4 = createLogger("OAuth");
|
|
1623
1623
|
});
|
|
1624
1624
|
|
|
1625
|
+
// ../utils/concurrency.ts
|
|
1626
|
+
var exports_concurrency = {};
|
|
1627
|
+
__export(exports_concurrency, {
|
|
1628
|
+
parallelWithLimit: () => parallelWithLimit
|
|
1629
|
+
});
|
|
1630
|
+
async function parallelWithLimit(items, fn, limit = 3) {
|
|
1631
|
+
const results = [];
|
|
1632
|
+
const executing = [];
|
|
1633
|
+
for (let i = 0;i < items.length; i++) {
|
|
1634
|
+
const item = items[i];
|
|
1635
|
+
const index = i;
|
|
1636
|
+
const promise = fn(item).then((result) => {
|
|
1637
|
+
results[index] = result;
|
|
1638
|
+
}).catch(() => {
|
|
1639
|
+
results[index] = undefined;
|
|
1640
|
+
});
|
|
1641
|
+
executing.push(promise);
|
|
1642
|
+
if (executing.length >= limit) {
|
|
1643
|
+
const completedIndex = await Promise.race(executing.map((p, idx) => p.then(() => idx).catch(() => idx)));
|
|
1644
|
+
executing.splice(completedIndex, 1);
|
|
1645
|
+
}
|
|
1646
|
+
}
|
|
1647
|
+
await Promise.all(executing);
|
|
1648
|
+
return results;
|
|
1649
|
+
}
|
|
1650
|
+
|
|
1625
1651
|
// ../client.ts
|
|
1626
1652
|
class SimpleEventEmitter {
|
|
1627
1653
|
handlers = new Map;
|
|
@@ -1673,6 +1699,7 @@ class MCPClientBase {
|
|
|
1673
1699
|
apiRouteBase;
|
|
1674
1700
|
apiBaseUrl;
|
|
1675
1701
|
databaseDetected = false;
|
|
1702
|
+
__configuredIntegrations;
|
|
1676
1703
|
oauthCallbackPromise;
|
|
1677
1704
|
server;
|
|
1678
1705
|
trigger;
|
|
@@ -1698,6 +1725,7 @@ class MCPClientBase {
|
|
|
1698
1725
|
}
|
|
1699
1726
|
return integration;
|
|
1700
1727
|
});
|
|
1728
|
+
this.__configuredIntegrations = this.integrations;
|
|
1701
1729
|
this.clientInfo = config.clientInfo || {
|
|
1702
1730
|
name: "integrate-sdk",
|
|
1703
1731
|
version: "0.1.0"
|
|
@@ -1840,13 +1868,64 @@ class MCPClientBase {
|
|
|
1840
1868
|
return new Proxy({}, {
|
|
1841
1869
|
get: (_target, methodName) => {
|
|
1842
1870
|
if (methodName === "listConfiguredIntegrations") {
|
|
1843
|
-
return async () => {
|
|
1871
|
+
return async (options) => {
|
|
1844
1872
|
const serverConfig = this.__oauthConfig;
|
|
1845
|
-
const configuredIntegrations = serverConfig?.integrations || this.
|
|
1873
|
+
const configuredIntegrations = serverConfig?.integrations || this.__configuredIntegrations;
|
|
1874
|
+
if (options?.includeToolMetadata) {
|
|
1875
|
+
const { parallelWithLimit: parallelWithLimit2 } = await Promise.resolve().then(() => exports_concurrency);
|
|
1876
|
+
const integrationsWithMetadata = await parallelWithLimit2(configuredIntegrations, async (integration) => {
|
|
1877
|
+
try {
|
|
1878
|
+
const response = await this.callServerToolInternal("list_tools_by_integration", {
|
|
1879
|
+
integration: integration.id
|
|
1880
|
+
});
|
|
1881
|
+
let toolMetadata = [];
|
|
1882
|
+
if (response.content && Array.isArray(response.content)) {
|
|
1883
|
+
for (const item of response.content) {
|
|
1884
|
+
if (item.type === "text" && item.text) {
|
|
1885
|
+
try {
|
|
1886
|
+
const parsed = JSON.parse(item.text);
|
|
1887
|
+
if (Array.isArray(parsed)) {
|
|
1888
|
+
toolMetadata = parsed;
|
|
1889
|
+
} else if (parsed.tools && Array.isArray(parsed.tools)) {
|
|
1890
|
+
toolMetadata = parsed.tools;
|
|
1891
|
+
}
|
|
1892
|
+
} catch {}
|
|
1893
|
+
}
|
|
1894
|
+
}
|
|
1895
|
+
}
|
|
1896
|
+
return {
|
|
1897
|
+
id: integration.id,
|
|
1898
|
+
name: integration.name || integration.id,
|
|
1899
|
+
logoUrl: integration.logoUrl,
|
|
1900
|
+
tools: integration.tools,
|
|
1901
|
+
hasOAuth: !!integration.oauth,
|
|
1902
|
+
scopes: integration.oauth?.scopes,
|
|
1903
|
+
provider: integration.oauth?.provider,
|
|
1904
|
+
toolMetadata
|
|
1905
|
+
};
|
|
1906
|
+
} catch (error) {
|
|
1907
|
+
logger5.error(`Failed to fetch tool metadata for ${integration.id}:`, error);
|
|
1908
|
+
return {
|
|
1909
|
+
id: integration.id,
|
|
1910
|
+
name: integration.name || integration.id,
|
|
1911
|
+
logoUrl: integration.logoUrl,
|
|
1912
|
+
tools: integration.tools,
|
|
1913
|
+
hasOAuth: !!integration.oauth,
|
|
1914
|
+
scopes: integration.oauth?.scopes,
|
|
1915
|
+
provider: integration.oauth?.provider,
|
|
1916
|
+
toolMetadata: []
|
|
1917
|
+
};
|
|
1918
|
+
}
|
|
1919
|
+
}, 3);
|
|
1920
|
+
return {
|
|
1921
|
+
integrations: integrationsWithMetadata
|
|
1922
|
+
};
|
|
1923
|
+
}
|
|
1846
1924
|
return {
|
|
1847
1925
|
integrations: configuredIntegrations.map((integration) => ({
|
|
1848
1926
|
id: integration.id,
|
|
1849
1927
|
name: integration.name || integration.id,
|
|
1928
|
+
logoUrl: integration.logoUrl,
|
|
1850
1929
|
tools: integration.tools,
|
|
1851
1930
|
hasOAuth: !!integration.oauth,
|
|
1852
1931
|
scopes: integration.oauth?.scopes,
|
|
@@ -2396,6 +2475,8 @@ function githubIntegration(config = {}) {
|
|
|
2396
2475
|
};
|
|
2397
2476
|
return {
|
|
2398
2477
|
id: "github",
|
|
2478
|
+
name: "GitHub",
|
|
2479
|
+
logoUrl: "https://cdn.simpleicons.org/github",
|
|
2399
2480
|
tools: [...GITHUB_TOOLS],
|
|
2400
2481
|
oauth,
|
|
2401
2482
|
async onInit(_client) {
|
|
@@ -2449,6 +2530,8 @@ function gmailIntegration(config = {}) {
|
|
|
2449
2530
|
};
|
|
2450
2531
|
return {
|
|
2451
2532
|
id: "gmail",
|
|
2533
|
+
name: "Gmail",
|
|
2534
|
+
logoUrl: "https://cdn.simpleicons.org/gmail",
|
|
2452
2535
|
tools: [...GMAIL_TOOLS],
|
|
2453
2536
|
oauth,
|
|
2454
2537
|
async onInit(_client) {
|
|
@@ -2488,6 +2571,8 @@ function notionIntegration(config = {}) {
|
|
|
2488
2571
|
};
|
|
2489
2572
|
return {
|
|
2490
2573
|
id: "notion",
|
|
2574
|
+
name: "Notion",
|
|
2575
|
+
logoUrl: "https://cdn.simpleicons.org/notion",
|
|
2491
2576
|
tools: [...NOTION_TOOLS],
|
|
2492
2577
|
oauth,
|
|
2493
2578
|
async onInit(_client) {
|
|
@@ -2522,6 +2607,8 @@ function slackIntegration(config = {}) {
|
|
|
2522
2607
|
};
|
|
2523
2608
|
return {
|
|
2524
2609
|
id: "slack",
|
|
2610
|
+
name: "Slack",
|
|
2611
|
+
logoUrl: "https://cdn.simpleicons.org/slack",
|
|
2525
2612
|
tools: [...SLACK_TOOLS],
|
|
2526
2613
|
oauth,
|
|
2527
2614
|
async onInit(_client) {
|
|
@@ -2563,6 +2650,8 @@ function linearIntegration(config = {}) {
|
|
|
2563
2650
|
};
|
|
2564
2651
|
return {
|
|
2565
2652
|
id: "linear",
|
|
2653
|
+
name: "Linear",
|
|
2654
|
+
logoUrl: "https://cdn.simpleicons.org/linear",
|
|
2566
2655
|
tools: [...LINEAR_TOOLS],
|
|
2567
2656
|
oauth,
|
|
2568
2657
|
async onInit(_client) {
|
|
@@ -2604,6 +2693,8 @@ function vercelIntegration(config = {}) {
|
|
|
2604
2693
|
};
|
|
2605
2694
|
return {
|
|
2606
2695
|
id: "vercel",
|
|
2696
|
+
name: "Vercel",
|
|
2697
|
+
logoUrl: "https://cdn.simpleicons.org/vercel",
|
|
2607
2698
|
tools: [...VERCEL_TOOLS],
|
|
2608
2699
|
oauth,
|
|
2609
2700
|
async onInit(_client) {
|
|
@@ -2646,6 +2737,8 @@ function zendeskIntegration(config = {}) {
|
|
|
2646
2737
|
};
|
|
2647
2738
|
return {
|
|
2648
2739
|
id: "zendesk",
|
|
2740
|
+
name: "Zendesk",
|
|
2741
|
+
logoUrl: "https://cdn.simpleicons.org/zendesk",
|
|
2649
2742
|
tools: [...ZENDESK_TOOLS],
|
|
2650
2743
|
oauth,
|
|
2651
2744
|
async onInit(_client) {
|
|
@@ -2687,6 +2780,8 @@ function stripeIntegration(config = {}) {
|
|
|
2687
2780
|
};
|
|
2688
2781
|
return {
|
|
2689
2782
|
id: "stripe",
|
|
2783
|
+
name: "Stripe",
|
|
2784
|
+
logoUrl: "https://cdn.simpleicons.org/stripe",
|
|
2690
2785
|
tools: [...STRIPE_TOOLS],
|
|
2691
2786
|
oauth,
|
|
2692
2787
|
async onInit(_client) {
|
|
@@ -2728,6 +2823,8 @@ function gcalIntegration(config = {}) {
|
|
|
2728
2823
|
};
|
|
2729
2824
|
return {
|
|
2730
2825
|
id: "gcal",
|
|
2826
|
+
name: "Google Calendar",
|
|
2827
|
+
logoUrl: "https://cdn.simpleicons.org/googlecalendar",
|
|
2731
2828
|
tools: [...GCAL_TOOLS],
|
|
2732
2829
|
oauth,
|
|
2733
2830
|
async onInit(_client) {
|
|
@@ -2769,6 +2866,8 @@ function outlookIntegration(config = {}) {
|
|
|
2769
2866
|
};
|
|
2770
2867
|
return {
|
|
2771
2868
|
id: "outlook",
|
|
2869
|
+
name: "Outlook",
|
|
2870
|
+
logoUrl: "https://cdn.simpleicons.org/microsoftoutlook",
|
|
2772
2871
|
tools: [...OUTLOOK_TOOLS],
|
|
2773
2872
|
oauth,
|
|
2774
2873
|
async onInit(_client) {
|
|
@@ -2810,6 +2909,8 @@ function airtableIntegration(config = {}) {
|
|
|
2810
2909
|
};
|
|
2811
2910
|
return {
|
|
2812
2911
|
id: "airtable",
|
|
2912
|
+
name: "Airtable",
|
|
2913
|
+
logoUrl: "https://cdn.simpleicons.org/airtable",
|
|
2813
2914
|
tools: [...AIRTABLE_TOOLS],
|
|
2814
2915
|
oauth,
|
|
2815
2916
|
async onInit(_client) {
|
|
@@ -2851,6 +2952,8 @@ function todoistIntegration(config = {}) {
|
|
|
2851
2952
|
};
|
|
2852
2953
|
return {
|
|
2853
2954
|
id: "todoist",
|
|
2955
|
+
name: "Todoist",
|
|
2956
|
+
logoUrl: "https://cdn.simpleicons.org/todoist",
|
|
2854
2957
|
tools: [...TODOIST_TOOLS],
|
|
2855
2958
|
oauth,
|
|
2856
2959
|
async onInit(_client) {
|
|
@@ -2893,6 +2996,8 @@ function whatsappIntegration(config = {}) {
|
|
|
2893
2996
|
};
|
|
2894
2997
|
return {
|
|
2895
2998
|
id: "whatsapp",
|
|
2999
|
+
name: "WhatsApp Business",
|
|
3000
|
+
logoUrl: "https://cdn.simpleicons.org/whatsapp",
|
|
2896
3001
|
tools: [...WHATSAPP_TOOLS],
|
|
2897
3002
|
oauth,
|
|
2898
3003
|
async onInit(_client) {
|
|
@@ -2934,6 +3039,8 @@ function calcomIntegration(config = {}) {
|
|
|
2934
3039
|
};
|
|
2935
3040
|
return {
|
|
2936
3041
|
id: "calcom",
|
|
3042
|
+
name: "Cal.com",
|
|
3043
|
+
logoUrl: "https://cdn.simpleicons.org/calendly",
|
|
2937
3044
|
tools: [...CALCOM_TOOLS],
|
|
2938
3045
|
oauth,
|
|
2939
3046
|
async onInit(_client) {
|
|
@@ -2976,6 +3083,8 @@ function rampIntegration(config = {}) {
|
|
|
2976
3083
|
};
|
|
2977
3084
|
return {
|
|
2978
3085
|
id: "ramp",
|
|
3086
|
+
name: "Ramp",
|
|
3087
|
+
logoUrl: "https://cdn.simpleicons.org/ramp",
|
|
2979
3088
|
tools: [...RAMP_TOOLS],
|
|
2980
3089
|
oauth,
|
|
2981
3090
|
async onInit(_client) {
|
|
@@ -3017,6 +3126,8 @@ function onedriveIntegration(config = {}) {
|
|
|
3017
3126
|
};
|
|
3018
3127
|
return {
|
|
3019
3128
|
id: "onedrive",
|
|
3129
|
+
name: "OneDrive",
|
|
3130
|
+
logoUrl: "https://cdn.simpleicons.org/onedrive",
|
|
3020
3131
|
tools: [...ONEDRIVE_TOOLS],
|
|
3021
3132
|
oauth,
|
|
3022
3133
|
async onInit(_client) {
|
|
@@ -3066,6 +3177,8 @@ function gworkspaceIntegration(config = {}) {
|
|
|
3066
3177
|
};
|
|
3067
3178
|
return {
|
|
3068
3179
|
id: "gworkspace",
|
|
3180
|
+
name: "Google Workspace",
|
|
3181
|
+
logoUrl: "https://cdn.simpleicons.org/google",
|
|
3069
3182
|
tools: [...GWORKSPACE_TOOLS],
|
|
3070
3183
|
oauth,
|
|
3071
3184
|
async onInit(_client) {
|
|
@@ -3111,6 +3224,8 @@ function polarIntegration(config = {}) {
|
|
|
3111
3224
|
};
|
|
3112
3225
|
return {
|
|
3113
3226
|
id: "polar",
|
|
3227
|
+
name: "Polar",
|
|
3228
|
+
logoUrl: "https://cdn.simpleicons.org/polar",
|
|
3114
3229
|
tools: [...POLAR_TOOLS],
|
|
3115
3230
|
oauth,
|
|
3116
3231
|
async onInit(_client) {
|
|
@@ -3152,6 +3267,8 @@ function figmaIntegration(config = {}) {
|
|
|
3152
3267
|
};
|
|
3153
3268
|
return {
|
|
3154
3269
|
id: "figma",
|
|
3270
|
+
name: "Figma",
|
|
3271
|
+
logoUrl: "https://cdn.simpleicons.org/figma",
|
|
3155
3272
|
tools: [...FIGMA_TOOLS],
|
|
3156
3273
|
oauth,
|
|
3157
3274
|
async onInit(_client) {
|
|
@@ -3193,6 +3310,8 @@ function intercomIntegration(config = {}) {
|
|
|
3193
3310
|
};
|
|
3194
3311
|
return {
|
|
3195
3312
|
id: "intercom",
|
|
3313
|
+
name: "Intercom",
|
|
3314
|
+
logoUrl: "https://cdn.simpleicons.org/intercom",
|
|
3196
3315
|
tools: [...INTERCOM_TOOLS],
|
|
3197
3316
|
oauth,
|
|
3198
3317
|
async onInit(_client) {
|
|
@@ -3242,6 +3361,8 @@ function hubspotIntegration(config = {}) {
|
|
|
3242
3361
|
};
|
|
3243
3362
|
return {
|
|
3244
3363
|
id: "hubspot",
|
|
3364
|
+
name: "HubSpot",
|
|
3365
|
+
logoUrl: "https://cdn.simpleicons.org/hubspot",
|
|
3245
3366
|
tools: [...HUBSPOT_TOOLS],
|
|
3246
3367
|
oauth,
|
|
3247
3368
|
async onInit(_client) {
|
|
@@ -3286,6 +3407,8 @@ function youtubeIntegration(config = {}) {
|
|
|
3286
3407
|
};
|
|
3287
3408
|
return {
|
|
3288
3409
|
id: "youtube",
|
|
3410
|
+
name: "YouTube",
|
|
3411
|
+
logoUrl: "https://cdn.simpleicons.org/youtube",
|
|
3289
3412
|
tools: [...YOUTUBE_TOOLS],
|
|
3290
3413
|
oauth,
|
|
3291
3414
|
async onInit(_client) {
|
|
@@ -3317,6 +3440,8 @@ var init_youtube = __esm(() => {
|
|
|
3317
3440
|
function cursorIntegration(_config = {}) {
|
|
3318
3441
|
return {
|
|
3319
3442
|
id: "cursor",
|
|
3443
|
+
name: "Cursor",
|
|
3444
|
+
logoUrl: "https://cdn.simpleicons.org/cursor",
|
|
3320
3445
|
tools: [...CURSOR_TOOLS],
|
|
3321
3446
|
async onInit(_client) {
|
|
3322
3447
|
logger28.debug("Cursor integration initialized");
|
|
@@ -3357,6 +3482,8 @@ function genericOAuthIntegration(config) {
|
|
|
3357
3482
|
};
|
|
3358
3483
|
return {
|
|
3359
3484
|
id: config.id,
|
|
3485
|
+
name: config.name,
|
|
3486
|
+
logoUrl: config.logoUrl,
|
|
3360
3487
|
tools: config.tools,
|
|
3361
3488
|
oauth,
|
|
3362
3489
|
onInit: config.onInit,
|
|
@@ -9177,7 +9304,6 @@ var init_zodToJsonSchema = __esm(() => {
|
|
|
9177
9304
|
|
|
9178
9305
|
// ../../node_modules/zod-to-json-schema/dist/esm/index.js
|
|
9179
9306
|
var init_esm = __esm(() => {
|
|
9180
|
-
init_zodToJsonSchema();
|
|
9181
9307
|
init_Options();
|
|
9182
9308
|
init_Refs();
|
|
9183
9309
|
init_parseDef();
|
|
@@ -9209,6 +9335,7 @@ var init_esm = __esm(() => {
|
|
|
9209
9335
|
init_unknown();
|
|
9210
9336
|
init_selectParser();
|
|
9211
9337
|
init_zodToJsonSchema();
|
|
9338
|
+
init_zodToJsonSchema();
|
|
9212
9339
|
});
|
|
9213
9340
|
|
|
9214
9341
|
// ../ai/openai.ts
|