integrate-sdk 0.9.28-dev.1 → 0.9.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.
- package/dist/adapters/auto-routes.js +61 -23
- package/dist/adapters/base-handler.d.ts.map +1 -1
- package/dist/adapters/base-handler.js +61 -23
- package/dist/adapters/index.js +99 -49
- package/dist/adapters/nextjs.js +61 -23
- package/dist/adapters/solid-start.js +99 -49
- package/dist/adapters/svelte-kit.js +99 -49
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +488 -101
- package/dist/oauth.js +60 -23
- package/dist/server.js +376 -122
- package/dist/src/adapters/base-handler.d.ts.map +1 -1
- package/dist/src/client.d.ts +3 -1
- 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/library-metadata.d.ts +1 -1
- package/dist/src/integrations/library-metadata.d.ts.map +1 -1
- package/dist/src/integrations/netlify-client.d.ts +161 -0
- package/dist/src/integrations/netlify-client.d.ts.map +1 -0
- package/dist/src/integrations/netlify.d.ts +18 -0
- package/dist/src/integrations/netlify.d.ts.map +1 -0
- package/dist/src/integrations/posthog-client.d.ts +222 -0
- package/dist/src/integrations/posthog-client.d.ts.map +1 -0
- package/dist/src/integrations/posthog.d.ts +30 -0
- package/dist/src/integrations/posthog.d.ts.map +1 -0
- package/dist/src/integrations/railway-client.d.ts +302 -0
- package/dist/src/integrations/railway-client.d.ts.map +1 -0
- package/dist/src/integrations/railway.d.ts +24 -0
- package/dist/src/integrations/railway.d.ts.map +1 -0
- package/dist/src/integrations/sentry-client.d.ts +78 -0
- package/dist/src/integrations/sentry-client.d.ts.map +1 -0
- package/dist/src/integrations/sentry.d.ts +22 -0
- package/dist/src/integrations/sentry.d.ts.map +1 -0
- package/dist/src/oauth/types.d.ts +2 -0
- package/dist/src/oauth/types.d.ts.map +1 -1
- package/dist/src/server.d.ts +2 -0
- package/dist/src/server.d.ts.map +1 -1
- package/index.ts +6 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -802,10 +802,12 @@ var MCPMethod;
|
|
|
802
802
|
|
|
803
803
|
// src/integrations/library-metadata.ts
|
|
804
804
|
var INTEGRATION_CATEGORY_ORDER = [
|
|
805
|
+
"Analytics",
|
|
805
806
|
"Productivity",
|
|
806
807
|
"Business",
|
|
807
808
|
"Communication",
|
|
808
809
|
"Engineering",
|
|
810
|
+
"Infrastructure",
|
|
809
811
|
"Storage",
|
|
810
812
|
"Other"
|
|
811
813
|
];
|
|
@@ -866,10 +868,26 @@ var INTEGRATION_LIBRARY_METADATA = {
|
|
|
866
868
|
description: "Manage Polar products, orders, and subscriptions",
|
|
867
869
|
category: "Business"
|
|
868
870
|
},
|
|
871
|
+
posthog: {
|
|
872
|
+
description: "Read PostHog organizations, projects, insights, and feature flags",
|
|
873
|
+
category: "Analytics"
|
|
874
|
+
},
|
|
869
875
|
ramp: {
|
|
870
876
|
description: "Manage Ramp corporate cards, bills, and spend",
|
|
871
877
|
category: "Business"
|
|
872
878
|
},
|
|
879
|
+
railway: {
|
|
880
|
+
description: "Manage Railway workspaces, projects, services, deployments, variables, domains, and volumes",
|
|
881
|
+
category: "Infrastructure"
|
|
882
|
+
},
|
|
883
|
+
sentry: {
|
|
884
|
+
description: "Monitor Sentry errors, issues, releases, and projects",
|
|
885
|
+
category: "Engineering"
|
|
886
|
+
},
|
|
887
|
+
netlify: {
|
|
888
|
+
description: "Manage Netlify sites, deploys, builds, and environment variables",
|
|
889
|
+
category: "Infrastructure"
|
|
890
|
+
},
|
|
873
891
|
slack: {
|
|
874
892
|
description: "Send and manage Slack messages and channels",
|
|
875
893
|
category: "Communication"
|
|
@@ -2340,6 +2358,9 @@ class MCPClientBase {
|
|
|
2340
2358
|
if (integrationIds.includes("linear")) {
|
|
2341
2359
|
this.linear = this.createIntegrationProxy("linear");
|
|
2342
2360
|
}
|
|
2361
|
+
if (integrationIds.includes("railway")) {
|
|
2362
|
+
this.railway = this.createIntegrationProxy("railway");
|
|
2363
|
+
}
|
|
2343
2364
|
if (integrationIds.includes("vercel")) {
|
|
2344
2365
|
this.vercel = this.createIntegrationProxy("vercel");
|
|
2345
2366
|
}
|
|
@@ -2370,6 +2391,9 @@ class MCPClientBase {
|
|
|
2370
2391
|
if (integrationIds.includes("gslides")) {
|
|
2371
2392
|
this.gslides = this.createIntegrationProxy("gslides");
|
|
2372
2393
|
}
|
|
2394
|
+
if (integrationIds.includes("posthog")) {
|
|
2395
|
+
this.posthog = this.createIntegrationProxy("posthog");
|
|
2396
|
+
}
|
|
2373
2397
|
this.server = this.createServerProxy();
|
|
2374
2398
|
this.trigger = new TriggerClient({
|
|
2375
2399
|
apiRouteBase: this.apiRouteBase,
|
|
@@ -3276,6 +3300,34 @@ async function clearClientCache() {
|
|
|
3276
3300
|
// src/adapters/base-handler.ts
|
|
3277
3301
|
var SERVER_LOG_CONTEXT = "server";
|
|
3278
3302
|
var logger6 = createLogger("OAuthHandler", SERVER_LOG_CONTEXT);
|
|
3303
|
+
var OAUTH_CONFIG_FIELDS = new Set([
|
|
3304
|
+
"clientId",
|
|
3305
|
+
"clientSecret",
|
|
3306
|
+
"scopes",
|
|
3307
|
+
"optionalScopes",
|
|
3308
|
+
"redirectUri",
|
|
3309
|
+
"client_id",
|
|
3310
|
+
"client_secret",
|
|
3311
|
+
"scope",
|
|
3312
|
+
"optional_scope",
|
|
3313
|
+
"redirect_uri",
|
|
3314
|
+
"provider"
|
|
3315
|
+
]);
|
|
3316
|
+
function getForwardableProviderConfig(config) {
|
|
3317
|
+
if (!config) {
|
|
3318
|
+
return {};
|
|
3319
|
+
}
|
|
3320
|
+
return Object.fromEntries(Object.entries(config).filter(([key, value]) => value !== undefined && value !== null && !OAUTH_CONFIG_FIELDS.has(key)).map(([key, value]) => [key, String(value)]));
|
|
3321
|
+
}
|
|
3322
|
+
function getStoredProviderConfig(config) {
|
|
3323
|
+
const baseUrl = config?.baseUrl || config?.apiBaseUrl;
|
|
3324
|
+
if (!baseUrl) {
|
|
3325
|
+
return;
|
|
3326
|
+
}
|
|
3327
|
+
return {
|
|
3328
|
+
baseUrl: String(baseUrl)
|
|
3329
|
+
};
|
|
3330
|
+
}
|
|
3279
3331
|
var MCP_SERVER_URL2 = "https://mcp.integrate.dev/api/v1/mcp";
|
|
3280
3332
|
|
|
3281
3333
|
class OAuthHandler {
|
|
@@ -3348,25 +3400,9 @@ class OAuthHandler {
|
|
|
3348
3400
|
if (redirectUri) {
|
|
3349
3401
|
url.searchParams.set("redirect_uri", redirectUri);
|
|
3350
3402
|
}
|
|
3351
|
-
const
|
|
3352
|
-
|
|
3353
|
-
|
|
3354
|
-
"scopes",
|
|
3355
|
-
"optionalScopes",
|
|
3356
|
-
"redirectUri",
|
|
3357
|
-
"client_id",
|
|
3358
|
-
"client_secret",
|
|
3359
|
-
"scope",
|
|
3360
|
-
"optional_scope",
|
|
3361
|
-
"redirect_uri",
|
|
3362
|
-
"provider"
|
|
3363
|
-
]);
|
|
3364
|
-
if (providerConfig.config) {
|
|
3365
|
-
for (const [key, value] of Object.entries(providerConfig.config)) {
|
|
3366
|
-
if (value !== undefined && value !== null && !OAUTH_FIELDS.has(key)) {
|
|
3367
|
-
url.searchParams.set(key, String(value));
|
|
3368
|
-
}
|
|
3369
|
-
}
|
|
3403
|
+
const extraConfig = getForwardableProviderConfig(providerConfig.config);
|
|
3404
|
+
for (const [key, value] of Object.entries(extraConfig)) {
|
|
3405
|
+
url.searchParams.set(key, value);
|
|
3370
3406
|
}
|
|
3371
3407
|
const response = await fetch(url.toString(), {
|
|
3372
3408
|
method: "GET",
|
|
@@ -3453,7 +3489,8 @@ class OAuthHandler {
|
|
|
3453
3489
|
state: callbackRequest.state,
|
|
3454
3490
|
client_id: providerConfig.clientId,
|
|
3455
3491
|
client_secret: providerConfig.clientSecret,
|
|
3456
|
-
redirect_uri: providerConfig.redirectUri
|
|
3492
|
+
redirect_uri: providerConfig.redirectUri,
|
|
3493
|
+
...getForwardableProviderConfig(providerConfig.config)
|
|
3457
3494
|
})
|
|
3458
3495
|
});
|
|
3459
3496
|
if (!response.ok) {
|
|
@@ -3471,7 +3508,8 @@ class OAuthHandler {
|
|
|
3471
3508
|
tokenType: result.tokenType,
|
|
3472
3509
|
expiresIn: result.expiresIn,
|
|
3473
3510
|
expiresAt: result.expiresAt,
|
|
3474
|
-
scopes: result.scopes ? result.scopes.flatMap((s) => s.split(" ").filter(Boolean)) : result.scopes
|
|
3511
|
+
scopes: result.scopes ? result.scopes.flatMap((s) => s.split(" ").filter(Boolean)) : result.scopes,
|
|
3512
|
+
providerConfig: getStoredProviderConfig(providerConfig.config)
|
|
3475
3513
|
};
|
|
3476
3514
|
const email = result.email || await fetchUserEmail(callbackRequest.provider, tokenData);
|
|
3477
3515
|
if (email) {
|
|
@@ -3588,6 +3626,12 @@ class OAuthHandler {
|
|
|
3588
3626
|
if (providerConfig.config?.subdomain) {
|
|
3589
3627
|
body.subdomain = providerConfig.config.subdomain;
|
|
3590
3628
|
}
|
|
3629
|
+
const extraConfig = getForwardableProviderConfig(providerConfig.config);
|
|
3630
|
+
for (const [key, value] of Object.entries(extraConfig)) {
|
|
3631
|
+
if (body[key] === undefined) {
|
|
3632
|
+
body[key] = value;
|
|
3633
|
+
}
|
|
3634
|
+
}
|
|
3591
3635
|
const url = new URL("/oauth/refresh", this.serverUrl);
|
|
3592
3636
|
const response = await fetch(url.toString(), {
|
|
3593
3637
|
method: "POST",
|
|
@@ -3614,7 +3658,8 @@ class OAuthHandler {
|
|
|
3614
3658
|
tokenType: result.tokenType,
|
|
3615
3659
|
expiresIn: result.expiresIn,
|
|
3616
3660
|
expiresAt: result.expiresAt,
|
|
3617
|
-
scopes: result.scopes ? result.scopes.flatMap((s) => s.split(" ").filter(Boolean)) : result.scopes
|
|
3661
|
+
scopes: result.scopes ? result.scopes.flatMap((s) => s.split(" ").filter(Boolean)) : result.scopes,
|
|
3662
|
+
providerConfig: getStoredProviderConfig(providerConfig.config)
|
|
3618
3663
|
};
|
|
3619
3664
|
const email = result.email || await fetchUserEmail(refreshRequest.provider, tokenData);
|
|
3620
3665
|
if (email) {
|
|
@@ -4358,8 +4403,121 @@ function linearIntegration(config = {}) {
|
|
|
4358
4403
|
}
|
|
4359
4404
|
};
|
|
4360
4405
|
}
|
|
4406
|
+
// src/integrations/railway.ts
|
|
4407
|
+
var logger14 = createLogger("Railway");
|
|
4408
|
+
var RAILWAY_SCOPES = [
|
|
4409
|
+
"openid",
|
|
4410
|
+
"profile",
|
|
4411
|
+
"email",
|
|
4412
|
+
"workspace:admin",
|
|
4413
|
+
"project:member"
|
|
4414
|
+
];
|
|
4415
|
+
var RAILWAY_TOOLS = [
|
|
4416
|
+
"railway_get_current_user",
|
|
4417
|
+
"railway_get_workspace",
|
|
4418
|
+
"railway_list_regions",
|
|
4419
|
+
"railway_list_projects",
|
|
4420
|
+
"railway_get_project",
|
|
4421
|
+
"railway_create_project",
|
|
4422
|
+
"railway_update_project",
|
|
4423
|
+
"railway_delete_project",
|
|
4424
|
+
"railway_transfer_project",
|
|
4425
|
+
"railway_list_project_members",
|
|
4426
|
+
"railway_list_environments",
|
|
4427
|
+
"railway_get_environment",
|
|
4428
|
+
"railway_create_environment",
|
|
4429
|
+
"railway_rename_environment",
|
|
4430
|
+
"railway_delete_environment",
|
|
4431
|
+
"railway_get_environment_logs",
|
|
4432
|
+
"railway_get_environment_staged_changes",
|
|
4433
|
+
"railway_commit_environment_staged_changes",
|
|
4434
|
+
"railway_get_service",
|
|
4435
|
+
"railway_get_service_instance",
|
|
4436
|
+
"railway_create_service",
|
|
4437
|
+
"railway_update_service",
|
|
4438
|
+
"railway_update_service_instance",
|
|
4439
|
+
"railway_connect_service",
|
|
4440
|
+
"railway_disconnect_service",
|
|
4441
|
+
"railway_deploy_service",
|
|
4442
|
+
"railway_redeploy_service",
|
|
4443
|
+
"railway_get_service_limits",
|
|
4444
|
+
"railway_delete_service",
|
|
4445
|
+
"railway_list_deployments",
|
|
4446
|
+
"railway_get_deployment",
|
|
4447
|
+
"railway_get_latest_active_deployment",
|
|
4448
|
+
"railway_get_deployment_build_logs",
|
|
4449
|
+
"railway_get_deployment_runtime_logs",
|
|
4450
|
+
"railway_get_deployment_http_logs",
|
|
4451
|
+
"railway_redeploy_deployment",
|
|
4452
|
+
"railway_restart_deployment",
|
|
4453
|
+
"railway_rollback_deployment",
|
|
4454
|
+
"railway_stop_deployment",
|
|
4455
|
+
"railway_cancel_deployment",
|
|
4456
|
+
"railway_remove_deployment",
|
|
4457
|
+
"railway_get_variables",
|
|
4458
|
+
"railway_get_unrendered_variables",
|
|
4459
|
+
"railway_upsert_variable",
|
|
4460
|
+
"railway_upsert_variables",
|
|
4461
|
+
"railway_delete_variable",
|
|
4462
|
+
"railway_get_rendered_variables",
|
|
4463
|
+
"railway_list_domains",
|
|
4464
|
+
"railway_create_service_domain",
|
|
4465
|
+
"railway_delete_service_domain",
|
|
4466
|
+
"railway_check_custom_domain_availability",
|
|
4467
|
+
"railway_create_custom_domain",
|
|
4468
|
+
"railway_get_custom_domain_status",
|
|
4469
|
+
"railway_update_custom_domain",
|
|
4470
|
+
"railway_delete_custom_domain",
|
|
4471
|
+
"railway_list_project_volumes",
|
|
4472
|
+
"railway_get_volume_instance",
|
|
4473
|
+
"railway_create_volume",
|
|
4474
|
+
"railway_update_volume",
|
|
4475
|
+
"railway_update_volume_instance",
|
|
4476
|
+
"railway_delete_volume",
|
|
4477
|
+
"railway_list_volume_backups",
|
|
4478
|
+
"railway_create_volume_backup",
|
|
4479
|
+
"railway_restore_volume_backup",
|
|
4480
|
+
"railway_lock_volume_backup",
|
|
4481
|
+
"railway_delete_volume_backup",
|
|
4482
|
+
"railway_list_volume_backup_schedules",
|
|
4483
|
+
"railway_list_tcp_proxies"
|
|
4484
|
+
];
|
|
4485
|
+
function railwayIntegration(config = {}) {
|
|
4486
|
+
const oauth = {
|
|
4487
|
+
provider: "railway",
|
|
4488
|
+
clientId: config.clientId ?? getEnv("RAILWAY_CLIENT_ID"),
|
|
4489
|
+
clientSecret: config.clientSecret ?? getEnv("RAILWAY_CLIENT_SECRET"),
|
|
4490
|
+
scopes: config.scopes ?? [...RAILWAY_SCOPES],
|
|
4491
|
+
optionalScopes: config.optionalScopes,
|
|
4492
|
+
redirectUri: config.redirectUri,
|
|
4493
|
+
config: {
|
|
4494
|
+
authorization_endpoint: "https://backboard.railway.com/oauth/auth",
|
|
4495
|
+
token_endpoint: "https://backboard.railway.com/oauth/token",
|
|
4496
|
+
response_type: "code",
|
|
4497
|
+
grant_types_supported: ["authorization_code", "refresh_token"],
|
|
4498
|
+
code_challenge_method: "S256",
|
|
4499
|
+
apiBaseUrl: "https://backboard.railway.com/graphql/v2",
|
|
4500
|
+
...config
|
|
4501
|
+
}
|
|
4502
|
+
};
|
|
4503
|
+
return {
|
|
4504
|
+
id: "railway",
|
|
4505
|
+
name: "Railway",
|
|
4506
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/railway.png",
|
|
4507
|
+
description: "Manage Railway workspaces, projects, services, deployments, variables, domains, and volumes",
|
|
4508
|
+
category: "Infrastructure",
|
|
4509
|
+
tools: [...RAILWAY_TOOLS],
|
|
4510
|
+
oauth,
|
|
4511
|
+
async onInit(_client) {
|
|
4512
|
+
logger14.debug("Railway integration initialized");
|
|
4513
|
+
},
|
|
4514
|
+
async onAfterConnect(_client) {
|
|
4515
|
+
logger14.debug("Railway integration connected");
|
|
4516
|
+
}
|
|
4517
|
+
};
|
|
4518
|
+
}
|
|
4361
4519
|
// src/integrations/vercel.ts
|
|
4362
|
-
var
|
|
4520
|
+
var logger15 = createLogger("Vercel");
|
|
4363
4521
|
var VERCEL_TOOLS = [
|
|
4364
4522
|
"vercel_list_projects",
|
|
4365
4523
|
"vercel_get_project",
|
|
@@ -4402,15 +4560,15 @@ function vercelIntegration(config = {}) {
|
|
|
4402
4560
|
tools: [...VERCEL_TOOLS],
|
|
4403
4561
|
oauth,
|
|
4404
4562
|
async onInit(_client) {
|
|
4405
|
-
|
|
4563
|
+
logger15.debug("Vercel integration initialized");
|
|
4406
4564
|
},
|
|
4407
4565
|
async onAfterConnect(_client) {
|
|
4408
|
-
|
|
4566
|
+
logger15.debug("Vercel integration connected");
|
|
4409
4567
|
}
|
|
4410
4568
|
};
|
|
4411
4569
|
}
|
|
4412
4570
|
// src/integrations/zendesk.ts
|
|
4413
|
-
var
|
|
4571
|
+
var logger16 = createLogger("Zendesk");
|
|
4414
4572
|
var ZENDESK_TOOLS = [
|
|
4415
4573
|
"zendesk_list_tickets",
|
|
4416
4574
|
"zendesk_get_ticket",
|
|
@@ -4459,15 +4617,15 @@ function zendeskIntegration(config = {}) {
|
|
|
4459
4617
|
tools: [...ZENDESK_TOOLS],
|
|
4460
4618
|
oauth,
|
|
4461
4619
|
async onInit(_client) {
|
|
4462
|
-
|
|
4620
|
+
logger16.debug("Zendesk integration initialized");
|
|
4463
4621
|
},
|
|
4464
4622
|
async onAfterConnect(_client) {
|
|
4465
|
-
|
|
4623
|
+
logger16.debug("Zendesk integration connected");
|
|
4466
4624
|
}
|
|
4467
4625
|
};
|
|
4468
4626
|
}
|
|
4469
4627
|
// src/integrations/stripe.ts
|
|
4470
|
-
var
|
|
4628
|
+
var logger17 = createLogger("Stripe");
|
|
4471
4629
|
var STRIPE_TOOLS = [
|
|
4472
4630
|
"stripe_list_customers",
|
|
4473
4631
|
"stripe_get_customer",
|
|
@@ -4523,15 +4681,15 @@ function stripeIntegration(config = {}) {
|
|
|
4523
4681
|
tools: [...STRIPE_TOOLS],
|
|
4524
4682
|
oauth,
|
|
4525
4683
|
async onInit(_client) {
|
|
4526
|
-
|
|
4684
|
+
logger17.debug("Stripe integration initialized");
|
|
4527
4685
|
},
|
|
4528
4686
|
async onAfterConnect(_client) {
|
|
4529
|
-
|
|
4687
|
+
logger17.debug("Stripe integration connected");
|
|
4530
4688
|
}
|
|
4531
4689
|
};
|
|
4532
4690
|
}
|
|
4533
4691
|
// src/integrations/gcal.ts
|
|
4534
|
-
var
|
|
4692
|
+
var logger18 = createLogger("Google Calendar");
|
|
4535
4693
|
var GCAL_TOOLS = [
|
|
4536
4694
|
"gcal_list_calendars",
|
|
4537
4695
|
"gcal_get_calendar",
|
|
@@ -4564,15 +4722,15 @@ function gcalIntegration(config = {}) {
|
|
|
4564
4722
|
tools: [...GCAL_TOOLS],
|
|
4565
4723
|
oauth,
|
|
4566
4724
|
async onInit(_client) {
|
|
4567
|
-
|
|
4725
|
+
logger18.debug("Google Calendar integration initialized");
|
|
4568
4726
|
},
|
|
4569
4727
|
async onAfterConnect(_client) {
|
|
4570
|
-
|
|
4728
|
+
logger18.debug("Google Calendar integration connected");
|
|
4571
4729
|
}
|
|
4572
4730
|
};
|
|
4573
4731
|
}
|
|
4574
4732
|
// src/integrations/outlook.ts
|
|
4575
|
-
var
|
|
4733
|
+
var logger19 = createLogger("Outlook");
|
|
4576
4734
|
var OUTLOOK_TOOLS = [
|
|
4577
4735
|
"outlook_list_messages",
|
|
4578
4736
|
"outlook_get_message",
|
|
@@ -4619,15 +4777,15 @@ function outlookIntegration(config = {}) {
|
|
|
4619
4777
|
tools: [...OUTLOOK_TOOLS],
|
|
4620
4778
|
oauth,
|
|
4621
4779
|
async onInit(_client) {
|
|
4622
|
-
|
|
4780
|
+
logger19.debug("Outlook integration initialized");
|
|
4623
4781
|
},
|
|
4624
4782
|
async onAfterConnect(_client) {
|
|
4625
|
-
|
|
4783
|
+
logger19.debug("Outlook integration connected");
|
|
4626
4784
|
}
|
|
4627
4785
|
};
|
|
4628
4786
|
}
|
|
4629
4787
|
// src/integrations/airtable.ts
|
|
4630
|
-
var
|
|
4788
|
+
var logger20 = createLogger("Airtable");
|
|
4631
4789
|
var AIRTABLE_TOOLS = [
|
|
4632
4790
|
"airtable_list_bases",
|
|
4633
4791
|
"airtable_get_base",
|
|
@@ -4673,15 +4831,15 @@ function airtableIntegration(config = {}) {
|
|
|
4673
4831
|
tools: [...AIRTABLE_TOOLS],
|
|
4674
4832
|
oauth,
|
|
4675
4833
|
async onInit(_client) {
|
|
4676
|
-
|
|
4834
|
+
logger20.debug("Airtable integration initialized");
|
|
4677
4835
|
},
|
|
4678
4836
|
async onAfterConnect(_client) {
|
|
4679
|
-
|
|
4837
|
+
logger20.debug("Airtable integration connected");
|
|
4680
4838
|
}
|
|
4681
4839
|
};
|
|
4682
4840
|
}
|
|
4683
4841
|
// src/integrations/todoist.ts
|
|
4684
|
-
var
|
|
4842
|
+
var logger21 = createLogger("Todoist");
|
|
4685
4843
|
var TODOIST_TOOLS = [
|
|
4686
4844
|
"todoist_list_projects",
|
|
4687
4845
|
"todoist_get_project",
|
|
@@ -4736,15 +4894,15 @@ function todoistIntegration(config = {}) {
|
|
|
4736
4894
|
tools: [...TODOIST_TOOLS],
|
|
4737
4895
|
oauth,
|
|
4738
4896
|
async onInit(_client) {
|
|
4739
|
-
|
|
4897
|
+
logger21.debug("Todoist integration initialized");
|
|
4740
4898
|
},
|
|
4741
4899
|
async onAfterConnect(_client) {
|
|
4742
|
-
|
|
4900
|
+
logger21.debug("Todoist integration connected");
|
|
4743
4901
|
}
|
|
4744
4902
|
};
|
|
4745
4903
|
}
|
|
4746
4904
|
// src/integrations/whatsapp.ts
|
|
4747
|
-
var
|
|
4905
|
+
var logger22 = createLogger("WhatsApp");
|
|
4748
4906
|
var WHATSAPP_TOOLS = [
|
|
4749
4907
|
"whatsapp_send_message",
|
|
4750
4908
|
"whatsapp_reply_message",
|
|
@@ -4790,15 +4948,15 @@ function whatsappIntegration(config = {}) {
|
|
|
4790
4948
|
tools: [...WHATSAPP_TOOLS],
|
|
4791
4949
|
oauth,
|
|
4792
4950
|
async onInit(_client) {
|
|
4793
|
-
|
|
4951
|
+
logger22.debug("WhatsApp Business integration initialized");
|
|
4794
4952
|
},
|
|
4795
4953
|
async onAfterConnect(_client) {
|
|
4796
|
-
|
|
4954
|
+
logger22.debug("WhatsApp Business integration connected");
|
|
4797
4955
|
}
|
|
4798
4956
|
};
|
|
4799
4957
|
}
|
|
4800
4958
|
// src/integrations/calcom.ts
|
|
4801
|
-
var
|
|
4959
|
+
var logger23 = createLogger("Cal.com");
|
|
4802
4960
|
var CALCOM_TOOLS = [
|
|
4803
4961
|
"calcom_list_bookings",
|
|
4804
4962
|
"calcom_get_booking",
|
|
@@ -4874,15 +5032,15 @@ function calcomIntegration(config = {}) {
|
|
|
4874
5032
|
tools: [...CALCOM_TOOLS],
|
|
4875
5033
|
oauth,
|
|
4876
5034
|
async onInit(_client) {
|
|
4877
|
-
|
|
5035
|
+
logger23.debug("Cal.com integration initialized");
|
|
4878
5036
|
},
|
|
4879
5037
|
async onAfterConnect(_client) {
|
|
4880
|
-
|
|
5038
|
+
logger23.debug("Cal.com integration connected");
|
|
4881
5039
|
}
|
|
4882
5040
|
};
|
|
4883
5041
|
}
|
|
4884
5042
|
// src/integrations/ramp.ts
|
|
4885
|
-
var
|
|
5043
|
+
var logger24 = createLogger("Ramp");
|
|
4886
5044
|
var RAMP_TOOLS = [
|
|
4887
5045
|
"ramp_list_transactions",
|
|
4888
5046
|
"ramp_get_transaction",
|
|
@@ -4914,15 +5072,15 @@ function rampIntegration(config = {}) {
|
|
|
4914
5072
|
tools: [...RAMP_TOOLS],
|
|
4915
5073
|
oauth,
|
|
4916
5074
|
async onInit(_client) {
|
|
4917
|
-
|
|
5075
|
+
logger24.debug("Ramp integration initialized");
|
|
4918
5076
|
},
|
|
4919
5077
|
async onAfterConnect(_client) {
|
|
4920
|
-
|
|
5078
|
+
logger24.debug("Ramp integration connected");
|
|
4921
5079
|
}
|
|
4922
5080
|
};
|
|
4923
5081
|
}
|
|
4924
5082
|
// src/integrations/onedrive.ts
|
|
4925
|
-
var
|
|
5083
|
+
var logger25 = createLogger("OneDrive");
|
|
4926
5084
|
var ONEDRIVE_TOOLS = [
|
|
4927
5085
|
"onedrive_list_files",
|
|
4928
5086
|
"onedrive_get_file",
|
|
@@ -4951,15 +5109,15 @@ function onedriveIntegration(config = {}) {
|
|
|
4951
5109
|
tools: [...ONEDRIVE_TOOLS],
|
|
4952
5110
|
oauth,
|
|
4953
5111
|
async onInit(_client) {
|
|
4954
|
-
|
|
5112
|
+
logger25.debug("OneDrive integration initialized");
|
|
4955
5113
|
},
|
|
4956
5114
|
async onAfterConnect(_client) {
|
|
4957
|
-
|
|
5115
|
+
logger25.debug("OneDrive integration connected");
|
|
4958
5116
|
}
|
|
4959
5117
|
};
|
|
4960
5118
|
}
|
|
4961
5119
|
// src/integrations/dropbox.ts
|
|
4962
|
-
var
|
|
5120
|
+
var logger26 = createLogger("Dropbox");
|
|
4963
5121
|
var DROPBOX_TOOLS = [
|
|
4964
5122
|
"dropbox_get_current_account",
|
|
4965
5123
|
"dropbox_get_space_usage",
|
|
@@ -4998,15 +5156,15 @@ function dropboxIntegration(options = {}) {
|
|
|
4998
5156
|
authType: "oauth",
|
|
4999
5157
|
oauth,
|
|
5000
5158
|
async onInit(_client) {
|
|
5001
|
-
|
|
5159
|
+
logger26.debug("Dropbox integration initialized");
|
|
5002
5160
|
},
|
|
5003
5161
|
async onAfterConnect(_client) {
|
|
5004
|
-
|
|
5162
|
+
logger26.debug("Dropbox integration connected");
|
|
5005
5163
|
}
|
|
5006
5164
|
};
|
|
5007
5165
|
}
|
|
5008
5166
|
// src/integrations/gdocs.ts
|
|
5009
|
-
var
|
|
5167
|
+
var logger27 = createLogger("Google Docs");
|
|
5010
5168
|
var GDOCS_TOOLS = [
|
|
5011
5169
|
"gdocs_list",
|
|
5012
5170
|
"gdocs_get",
|
|
@@ -5031,15 +5189,15 @@ function gdocsIntegration(config = {}) {
|
|
|
5031
5189
|
tools: [...GDOCS_TOOLS],
|
|
5032
5190
|
oauth,
|
|
5033
5191
|
async onInit(_client) {
|
|
5034
|
-
|
|
5192
|
+
logger27.debug("Google Docs integration initialized");
|
|
5035
5193
|
},
|
|
5036
5194
|
async onAfterConnect(_client) {
|
|
5037
|
-
|
|
5195
|
+
logger27.debug("Google Docs integration connected");
|
|
5038
5196
|
}
|
|
5039
5197
|
};
|
|
5040
5198
|
}
|
|
5041
5199
|
// src/integrations/gsheets.ts
|
|
5042
|
-
var
|
|
5200
|
+
var logger28 = createLogger("Google Sheets");
|
|
5043
5201
|
var GSHEETS_TOOLS = [
|
|
5044
5202
|
"gsheets_list",
|
|
5045
5203
|
"gsheets_get",
|
|
@@ -5067,15 +5225,15 @@ function gsheetsIntegration(config = {}) {
|
|
|
5067
5225
|
tools: [...GSHEETS_TOOLS],
|
|
5068
5226
|
oauth,
|
|
5069
5227
|
async onInit(_client) {
|
|
5070
|
-
|
|
5228
|
+
logger28.debug("Google Sheets integration initialized");
|
|
5071
5229
|
},
|
|
5072
5230
|
async onAfterConnect(_client) {
|
|
5073
|
-
|
|
5231
|
+
logger28.debug("Google Sheets integration connected");
|
|
5074
5232
|
}
|
|
5075
5233
|
};
|
|
5076
5234
|
}
|
|
5077
5235
|
// src/integrations/gslides.ts
|
|
5078
|
-
var
|
|
5236
|
+
var logger29 = createLogger("Google Slides");
|
|
5079
5237
|
var GSLIDES_TOOLS = [
|
|
5080
5238
|
"gslides_list",
|
|
5081
5239
|
"gslides_get",
|
|
@@ -5102,15 +5260,15 @@ function gslidesIntegration(config = {}) {
|
|
|
5102
5260
|
tools: [...GSLIDES_TOOLS],
|
|
5103
5261
|
oauth,
|
|
5104
5262
|
async onInit(_client) {
|
|
5105
|
-
|
|
5263
|
+
logger29.debug("Google Slides integration initialized");
|
|
5106
5264
|
},
|
|
5107
5265
|
async onAfterConnect(_client) {
|
|
5108
|
-
|
|
5266
|
+
logger29.debug("Google Slides integration connected");
|
|
5109
5267
|
}
|
|
5110
5268
|
};
|
|
5111
5269
|
}
|
|
5112
5270
|
// src/integrations/polar.ts
|
|
5113
|
-
var
|
|
5271
|
+
var logger30 = createLogger("Polar");
|
|
5114
5272
|
var POLAR_TOOLS = [
|
|
5115
5273
|
"polar_list_products",
|
|
5116
5274
|
"polar_get_product",
|
|
@@ -5167,15 +5325,15 @@ function polarIntegration(config = {}) {
|
|
|
5167
5325
|
tools: [...POLAR_TOOLS],
|
|
5168
5326
|
oauth,
|
|
5169
5327
|
async onInit(_client) {
|
|
5170
|
-
|
|
5328
|
+
logger30.debug("Polar integration initialized");
|
|
5171
5329
|
},
|
|
5172
5330
|
async onAfterConnect(_client) {
|
|
5173
|
-
|
|
5331
|
+
logger30.debug("Polar integration connected");
|
|
5174
5332
|
}
|
|
5175
5333
|
};
|
|
5176
5334
|
}
|
|
5177
5335
|
// src/integrations/figma.ts
|
|
5178
|
-
var
|
|
5336
|
+
var logger31 = createLogger("Figma");
|
|
5179
5337
|
var FIGMA_TOOLS = [
|
|
5180
5338
|
"figma_get_file",
|
|
5181
5339
|
"figma_get_file_nodes",
|
|
@@ -5241,15 +5399,15 @@ function figmaIntegration(config = {}) {
|
|
|
5241
5399
|
tools: [...FIGMA_TOOLS],
|
|
5242
5400
|
oauth,
|
|
5243
5401
|
async onInit(_client) {
|
|
5244
|
-
|
|
5402
|
+
logger31.debug("Figma integration initialized");
|
|
5245
5403
|
},
|
|
5246
5404
|
async onAfterConnect(_client) {
|
|
5247
|
-
|
|
5405
|
+
logger31.debug("Figma integration connected");
|
|
5248
5406
|
}
|
|
5249
5407
|
};
|
|
5250
5408
|
}
|
|
5251
5409
|
// src/integrations/intercom.ts
|
|
5252
|
-
var
|
|
5410
|
+
var logger32 = createLogger("Intercom");
|
|
5253
5411
|
var INTERCOM_TOOLS = [
|
|
5254
5412
|
"intercom_list_contacts",
|
|
5255
5413
|
"intercom_get_contact",
|
|
@@ -5280,15 +5438,15 @@ function intercomIntegration(config = {}) {
|
|
|
5280
5438
|
tools: [...INTERCOM_TOOLS],
|
|
5281
5439
|
oauth,
|
|
5282
5440
|
async onInit(_client) {
|
|
5283
|
-
|
|
5441
|
+
logger32.debug("Intercom integration initialized");
|
|
5284
5442
|
},
|
|
5285
5443
|
async onAfterConnect(_client) {
|
|
5286
|
-
|
|
5444
|
+
logger32.debug("Intercom integration connected");
|
|
5287
5445
|
}
|
|
5288
5446
|
};
|
|
5289
5447
|
}
|
|
5290
5448
|
// src/integrations/hubspot.ts
|
|
5291
|
-
var
|
|
5449
|
+
var logger33 = createLogger("HubSpot");
|
|
5292
5450
|
var HUBSPOT_TOOLS = [
|
|
5293
5451
|
"hubspot_list_contacts",
|
|
5294
5452
|
"hubspot_get_contact",
|
|
@@ -5338,15 +5496,15 @@ function hubspotIntegration(config = {}) {
|
|
|
5338
5496
|
tools: [...HUBSPOT_TOOLS],
|
|
5339
5497
|
oauth,
|
|
5340
5498
|
async onInit(_client) {
|
|
5341
|
-
|
|
5499
|
+
logger33.debug("HubSpot integration initialized");
|
|
5342
5500
|
},
|
|
5343
5501
|
async onAfterConnect(_client) {
|
|
5344
|
-
|
|
5502
|
+
logger33.debug("HubSpot integration connected");
|
|
5345
5503
|
}
|
|
5346
5504
|
};
|
|
5347
5505
|
}
|
|
5348
5506
|
// src/integrations/youtube.ts
|
|
5349
|
-
var
|
|
5507
|
+
var logger34 = createLogger("YouTube");
|
|
5350
5508
|
var YOUTUBE_TOOLS = [
|
|
5351
5509
|
"youtube_search",
|
|
5352
5510
|
"youtube_get_video",
|
|
@@ -5392,15 +5550,15 @@ function youtubeIntegration(config = {}) {
|
|
|
5392
5550
|
tools: [...YOUTUBE_TOOLS],
|
|
5393
5551
|
oauth,
|
|
5394
5552
|
async onInit(_client) {
|
|
5395
|
-
|
|
5553
|
+
logger34.debug("YouTube integration initialized");
|
|
5396
5554
|
},
|
|
5397
5555
|
async onAfterConnect(_client) {
|
|
5398
|
-
|
|
5556
|
+
logger34.debug("YouTube integration connected");
|
|
5399
5557
|
}
|
|
5400
5558
|
};
|
|
5401
5559
|
}
|
|
5402
5560
|
// src/integrations/cursor.ts
|
|
5403
|
-
var
|
|
5561
|
+
var logger35 = createLogger("Cursor");
|
|
5404
5562
|
var CURSOR_TOOLS = [
|
|
5405
5563
|
"cursor_list_agents",
|
|
5406
5564
|
"cursor_get_agent",
|
|
@@ -5420,10 +5578,232 @@ function cursorIntegration(_config = {}) {
|
|
|
5420
5578
|
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/cursor.jpeg",
|
|
5421
5579
|
tools: [...CURSOR_TOOLS],
|
|
5422
5580
|
async onInit(_client) {
|
|
5423
|
-
|
|
5581
|
+
logger35.debug("Cursor integration initialized");
|
|
5582
|
+
},
|
|
5583
|
+
async onAfterConnect(_client) {
|
|
5584
|
+
logger35.debug("Cursor integration connected");
|
|
5585
|
+
}
|
|
5586
|
+
};
|
|
5587
|
+
}
|
|
5588
|
+
// src/integrations/posthog.ts
|
|
5589
|
+
var logger36 = createLogger("PostHog");
|
|
5590
|
+
var DEFAULT_POSTHOG_BASE_URL = "https://us.posthog.com";
|
|
5591
|
+
var POSTHOG_SCOPES = [
|
|
5592
|
+
"openid",
|
|
5593
|
+
"profile",
|
|
5594
|
+
"email",
|
|
5595
|
+
"organization:read",
|
|
5596
|
+
"project:read",
|
|
5597
|
+
"user:read",
|
|
5598
|
+
"query:read",
|
|
5599
|
+
"insight:read",
|
|
5600
|
+
"dashboard:read",
|
|
5601
|
+
"feature_flag:read",
|
|
5602
|
+
"experiment:read",
|
|
5603
|
+
"annotation:read",
|
|
5604
|
+
"cohort:read",
|
|
5605
|
+
"person:read",
|
|
5606
|
+
"event_definition:read",
|
|
5607
|
+
"property_definition:read",
|
|
5608
|
+
"session_recording:read",
|
|
5609
|
+
"action:read"
|
|
5610
|
+
];
|
|
5611
|
+
var POSTHOG_TOOLS = [
|
|
5612
|
+
"posthog_get_current_user",
|
|
5613
|
+
"posthog_list_organizations",
|
|
5614
|
+
"posthog_get_organization",
|
|
5615
|
+
"posthog_list_projects",
|
|
5616
|
+
"posthog_get_project",
|
|
5617
|
+
"posthog_run_hogql_query",
|
|
5618
|
+
"posthog_list_insights",
|
|
5619
|
+
"posthog_get_insight",
|
|
5620
|
+
"posthog_list_dashboards",
|
|
5621
|
+
"posthog_get_dashboard",
|
|
5622
|
+
"posthog_list_feature_flags",
|
|
5623
|
+
"posthog_get_feature_flag",
|
|
5624
|
+
"posthog_list_experiments",
|
|
5625
|
+
"posthog_get_experiment",
|
|
5626
|
+
"posthog_list_annotations",
|
|
5627
|
+
"posthog_get_annotation",
|
|
5628
|
+
"posthog_list_cohorts",
|
|
5629
|
+
"posthog_get_cohort",
|
|
5630
|
+
"posthog_list_event_definitions",
|
|
5631
|
+
"posthog_get_event_definition",
|
|
5632
|
+
"posthog_list_property_definitions",
|
|
5633
|
+
"posthog_get_property_definition",
|
|
5634
|
+
"posthog_list_persons",
|
|
5635
|
+
"posthog_get_person",
|
|
5636
|
+
"posthog_list_session_recordings",
|
|
5637
|
+
"posthog_get_session_recording"
|
|
5638
|
+
];
|
|
5639
|
+
function normalizePostHogBaseUrl(baseUrl) {
|
|
5640
|
+
const value = (baseUrl || DEFAULT_POSTHOG_BASE_URL).trim().replace(/\/+$/, "");
|
|
5641
|
+
if (!value) {
|
|
5642
|
+
return DEFAULT_POSTHOG_BASE_URL;
|
|
5643
|
+
}
|
|
5644
|
+
return /^https?:\/\//i.test(value) ? value : `https://${value}`;
|
|
5645
|
+
}
|
|
5646
|
+
function posthogIntegration(config = {}) {
|
|
5647
|
+
const baseUrl = normalizePostHogBaseUrl(config.baseUrl);
|
|
5648
|
+
const oauth = {
|
|
5649
|
+
provider: "posthog",
|
|
5650
|
+
clientId: config.clientId ?? getEnv("POSTHOG_CLIENT_ID"),
|
|
5651
|
+
clientSecret: config.clientSecret ?? getEnv("POSTHOG_CLIENT_SECRET"),
|
|
5652
|
+
scopes: config.scopes ?? [...POSTHOG_SCOPES],
|
|
5653
|
+
optionalScopes: config.optionalScopes,
|
|
5654
|
+
redirectUri: config.redirectUri,
|
|
5655
|
+
config: {
|
|
5656
|
+
baseUrl,
|
|
5657
|
+
apiBaseUrl: baseUrl,
|
|
5658
|
+
authorization_endpoint: `${baseUrl}/oauth/authorize/`,
|
|
5659
|
+
token_endpoint: `${baseUrl}/oauth/token/`,
|
|
5660
|
+
token_auth_method: "client_secret_post",
|
|
5661
|
+
response_type: "code",
|
|
5662
|
+
grant_types_supported: ["authorization_code", "refresh_token"],
|
|
5663
|
+
code_challenge_method: "S256"
|
|
5664
|
+
}
|
|
5665
|
+
};
|
|
5666
|
+
return {
|
|
5667
|
+
id: "posthog",
|
|
5668
|
+
name: "PostHog",
|
|
5669
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/posthog.png",
|
|
5670
|
+
description: "Read PostHog organizations, projects, insights, flags, and analytics data",
|
|
5671
|
+
category: "Analytics",
|
|
5672
|
+
tools: [...POSTHOG_TOOLS],
|
|
5673
|
+
oauth,
|
|
5674
|
+
async onInit(_client) {
|
|
5675
|
+
logger36.debug("PostHog integration initialized");
|
|
5676
|
+
},
|
|
5677
|
+
async onAfterConnect(_client) {
|
|
5678
|
+
logger36.debug("PostHog integration connected");
|
|
5679
|
+
}
|
|
5680
|
+
};
|
|
5681
|
+
}
|
|
5682
|
+
// src/integrations/sentry.ts
|
|
5683
|
+
var logger37 = createLogger("Sentry");
|
|
5684
|
+
var SENTRY_SCOPES = [
|
|
5685
|
+
"org:read",
|
|
5686
|
+
"project:read",
|
|
5687
|
+
"team:read",
|
|
5688
|
+
"member:read",
|
|
5689
|
+
"event:read",
|
|
5690
|
+
"event:write",
|
|
5691
|
+
"project:releases"
|
|
5692
|
+
];
|
|
5693
|
+
var SENTRY_TOOLS = [
|
|
5694
|
+
"sentry_get_organization",
|
|
5695
|
+
"sentry_list_org_projects",
|
|
5696
|
+
"sentry_list_org_members",
|
|
5697
|
+
"sentry_get_project",
|
|
5698
|
+
"sentry_list_issues",
|
|
5699
|
+
"sentry_get_issue",
|
|
5700
|
+
"sentry_update_issue",
|
|
5701
|
+
"sentry_list_issue_events",
|
|
5702
|
+
"sentry_list_project_events",
|
|
5703
|
+
"sentry_list_releases",
|
|
5704
|
+
"sentry_get_release",
|
|
5705
|
+
"sentry_create_release",
|
|
5706
|
+
"sentry_list_release_commits",
|
|
5707
|
+
"sentry_resolve_short_id"
|
|
5708
|
+
];
|
|
5709
|
+
function sentryIntegration(config = {}) {
|
|
5710
|
+
const oauth = {
|
|
5711
|
+
provider: "sentry",
|
|
5712
|
+
clientId: config.clientId ?? getEnv("SENTRY_CLIENT_ID"),
|
|
5713
|
+
clientSecret: config.clientSecret ?? getEnv("SENTRY_CLIENT_SECRET"),
|
|
5714
|
+
scopes: config.scopes ?? [...SENTRY_SCOPES],
|
|
5715
|
+
redirectUri: config.redirectUri,
|
|
5716
|
+
config: {
|
|
5717
|
+
authorization_endpoint: "https://sentry.io/oauth/authorize/",
|
|
5718
|
+
token_endpoint: "https://sentry.io/oauth/token/",
|
|
5719
|
+
response_type: "code",
|
|
5720
|
+
grant_types_supported: ["authorization_code", "refresh_token"]
|
|
5721
|
+
}
|
|
5722
|
+
};
|
|
5723
|
+
return {
|
|
5724
|
+
id: "sentry",
|
|
5725
|
+
name: "Sentry",
|
|
5726
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/sentry.png",
|
|
5727
|
+
description: "Monitor Sentry errors, issues, releases, and projects",
|
|
5728
|
+
category: "Engineering",
|
|
5729
|
+
tools: [...SENTRY_TOOLS],
|
|
5730
|
+
oauth,
|
|
5731
|
+
async onInit(_client) {
|
|
5732
|
+
logger37.debug("Sentry integration initialized");
|
|
5733
|
+
},
|
|
5734
|
+
async onAfterConnect(_client) {
|
|
5735
|
+
logger37.debug("Sentry integration connected");
|
|
5736
|
+
}
|
|
5737
|
+
};
|
|
5738
|
+
}
|
|
5739
|
+
// src/integrations/netlify.ts
|
|
5740
|
+
var logger38 = createLogger("Netlify");
|
|
5741
|
+
var NETLIFY_TOOLS = [
|
|
5742
|
+
"netlify_get_current_user",
|
|
5743
|
+
"netlify_list_accounts",
|
|
5744
|
+
"netlify_get_account",
|
|
5745
|
+
"netlify_list_sites",
|
|
5746
|
+
"netlify_get_site",
|
|
5747
|
+
"netlify_create_site",
|
|
5748
|
+
"netlify_update_site",
|
|
5749
|
+
"netlify_delete_site",
|
|
5750
|
+
"netlify_enable_site",
|
|
5751
|
+
"netlify_disable_site",
|
|
5752
|
+
"netlify_list_deploys",
|
|
5753
|
+
"netlify_get_deploy",
|
|
5754
|
+
"netlify_create_deploy",
|
|
5755
|
+
"netlify_cancel_deploy",
|
|
5756
|
+
"netlify_restore_deploy",
|
|
5757
|
+
"netlify_lock_deploy",
|
|
5758
|
+
"netlify_unlock_deploy",
|
|
5759
|
+
"netlify_list_builds",
|
|
5760
|
+
"netlify_get_build",
|
|
5761
|
+
"netlify_trigger_build",
|
|
5762
|
+
"netlify_list_env_vars",
|
|
5763
|
+
"netlify_get_env_var",
|
|
5764
|
+
"netlify_create_env_vars",
|
|
5765
|
+
"netlify_update_env_var",
|
|
5766
|
+
"netlify_delete_env_var",
|
|
5767
|
+
"netlify_list_build_hooks",
|
|
5768
|
+
"netlify_create_build_hook",
|
|
5769
|
+
"netlify_delete_build_hook",
|
|
5770
|
+
"netlify_list_forms",
|
|
5771
|
+
"netlify_list_form_submissions",
|
|
5772
|
+
"netlify_list_dns_zones",
|
|
5773
|
+
"netlify_get_dns_records",
|
|
5774
|
+
"netlify_create_dns_record",
|
|
5775
|
+
"netlify_delete_dns_record",
|
|
5776
|
+
"netlify_list_functions",
|
|
5777
|
+
"netlify_list_files",
|
|
5778
|
+
"netlify_purge_cache"
|
|
5779
|
+
];
|
|
5780
|
+
function netlifyIntegration(config = {}) {
|
|
5781
|
+
const oauth = {
|
|
5782
|
+
provider: "netlify",
|
|
5783
|
+
clientId: config.clientId ?? getEnv("NETLIFY_CLIENT_ID"),
|
|
5784
|
+
clientSecret: config.clientSecret ?? getEnv("NETLIFY_CLIENT_SECRET"),
|
|
5785
|
+
scopes: [],
|
|
5786
|
+
redirectUri: config.redirectUri,
|
|
5787
|
+
config: {
|
|
5788
|
+
authorization_endpoint: "https://app.netlify.com/authorize",
|
|
5789
|
+
token_endpoint: "https://api.netlify.com/oauth/token",
|
|
5790
|
+
response_type: "code",
|
|
5791
|
+
grant_types_supported: ["authorization_code", "refresh_token"]
|
|
5792
|
+
}
|
|
5793
|
+
};
|
|
5794
|
+
return {
|
|
5795
|
+
id: "netlify",
|
|
5796
|
+
name: "Netlify",
|
|
5797
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/netlify.png",
|
|
5798
|
+
description: "Manage Netlify sites, deploys, builds, and environment variables",
|
|
5799
|
+
category: "Infrastructure",
|
|
5800
|
+
tools: [...NETLIFY_TOOLS],
|
|
5801
|
+
oauth,
|
|
5802
|
+
async onInit(_client) {
|
|
5803
|
+
logger38.debug("Netlify integration initialized");
|
|
5424
5804
|
},
|
|
5425
5805
|
async onAfterConnect(_client) {
|
|
5426
|
-
|
|
5806
|
+
logger38.debug("Netlify integration connected");
|
|
5427
5807
|
}
|
|
5428
5808
|
};
|
|
5429
5809
|
}
|
|
@@ -5545,7 +5925,7 @@ function validateStepLimit(stepIndex, maxSteps) {
|
|
|
5545
5925
|
return { valid: true };
|
|
5546
5926
|
}
|
|
5547
5927
|
// src/triggers/webhooks.ts
|
|
5548
|
-
var
|
|
5928
|
+
var logger39 = createLogger("Webhooks", "server");
|
|
5549
5929
|
async function signPayload(payload, secret) {
|
|
5550
5930
|
const encoder = new TextEncoder;
|
|
5551
5931
|
const data = encoder.encode(JSON.stringify(payload));
|
|
@@ -5571,7 +5951,7 @@ async function deliverWebhook(webhook, payload, timeoutMs) {
|
|
|
5571
5951
|
signal: controller.signal
|
|
5572
5952
|
});
|
|
5573
5953
|
if (!response.ok) {
|
|
5574
|
-
|
|
5954
|
+
logger39.warn(`Webhook delivery to ${webhook.url} returned ${response.status}`);
|
|
5575
5955
|
}
|
|
5576
5956
|
} finally {
|
|
5577
5957
|
clearTimeout(timeout);
|
|
@@ -5584,7 +5964,7 @@ async function deliverWebhooks(webhooks, payload, timeoutMs) {
|
|
|
5584
5964
|
for (let i = 0;i < results.length; i++) {
|
|
5585
5965
|
const result = results[i];
|
|
5586
5966
|
if (result.status === "rejected") {
|
|
5587
|
-
|
|
5967
|
+
logger39.warn(`Webhook delivery to ${webhooks[i].url} failed:`, result.reason);
|
|
5588
5968
|
}
|
|
5589
5969
|
}
|
|
5590
5970
|
}
|
|
@@ -5621,7 +6001,7 @@ function createSimpleIntegration(config) {
|
|
|
5621
6001
|
};
|
|
5622
6002
|
}
|
|
5623
6003
|
// src/integrations/word.ts
|
|
5624
|
-
var
|
|
6004
|
+
var logger40 = createLogger("Word");
|
|
5625
6005
|
var WORD_TOOLS = [
|
|
5626
6006
|
"word_list",
|
|
5627
6007
|
"word_get",
|
|
@@ -5647,16 +6027,16 @@ function wordIntegration(config = {}) {
|
|
|
5647
6027
|
tools: [...WORD_TOOLS],
|
|
5648
6028
|
oauth,
|
|
5649
6029
|
async onInit(_client) {
|
|
5650
|
-
|
|
6030
|
+
logger40.debug("Word integration initialized");
|
|
5651
6031
|
},
|
|
5652
6032
|
async onAfterConnect(_client) {
|
|
5653
|
-
|
|
6033
|
+
logger40.debug("Word integration connected");
|
|
5654
6034
|
}
|
|
5655
6035
|
};
|
|
5656
6036
|
}
|
|
5657
6037
|
|
|
5658
6038
|
// src/integrations/excel.ts
|
|
5659
|
-
var
|
|
6039
|
+
var logger41 = createLogger("Excel");
|
|
5660
6040
|
var EXCEL_TOOLS = [
|
|
5661
6041
|
"excel_list",
|
|
5662
6042
|
"excel_get",
|
|
@@ -5692,16 +6072,16 @@ function excelIntegration(config = {}) {
|
|
|
5692
6072
|
tools: [...EXCEL_TOOLS],
|
|
5693
6073
|
oauth,
|
|
5694
6074
|
async onInit(_client) {
|
|
5695
|
-
|
|
6075
|
+
logger41.debug("Excel integration initialized");
|
|
5696
6076
|
},
|
|
5697
6077
|
async onAfterConnect(_client) {
|
|
5698
|
-
|
|
6078
|
+
logger41.debug("Excel integration connected");
|
|
5699
6079
|
}
|
|
5700
6080
|
};
|
|
5701
6081
|
}
|
|
5702
6082
|
|
|
5703
6083
|
// src/integrations/powerpoint.ts
|
|
5704
|
-
var
|
|
6084
|
+
var logger42 = createLogger("PowerPoint");
|
|
5705
6085
|
var POWERPOINT_TOOLS = [
|
|
5706
6086
|
"powerpoint_list",
|
|
5707
6087
|
"powerpoint_get",
|
|
@@ -5727,16 +6107,16 @@ function powerpointIntegration(config = {}) {
|
|
|
5727
6107
|
tools: [...POWERPOINT_TOOLS],
|
|
5728
6108
|
oauth,
|
|
5729
6109
|
async onInit(_client) {
|
|
5730
|
-
|
|
6110
|
+
logger42.debug("PowerPoint integration initialized");
|
|
5731
6111
|
},
|
|
5732
6112
|
async onAfterConnect(_client) {
|
|
5733
|
-
|
|
6113
|
+
logger42.debug("PowerPoint integration connected");
|
|
5734
6114
|
}
|
|
5735
6115
|
};
|
|
5736
6116
|
}
|
|
5737
6117
|
|
|
5738
6118
|
// src/integrations/gdrive.ts
|
|
5739
|
-
var
|
|
6119
|
+
var logger43 = createLogger("Google Drive");
|
|
5740
6120
|
var GDRIVE_TOOLS = [
|
|
5741
6121
|
"gdrive_list_files",
|
|
5742
6122
|
"gdrive_get_file",
|
|
@@ -5770,10 +6150,10 @@ function gdriveIntegration(config = {}) {
|
|
|
5770
6150
|
tools: [...GDRIVE_TOOLS],
|
|
5771
6151
|
oauth,
|
|
5772
6152
|
async onInit(_client) {
|
|
5773
|
-
|
|
6153
|
+
logger43.debug("Google Drive integration initialized");
|
|
5774
6154
|
},
|
|
5775
6155
|
async onAfterConnect(_client) {
|
|
5776
|
-
|
|
6156
|
+
logger43.debug("Google Drive integration connected");
|
|
5777
6157
|
}
|
|
5778
6158
|
};
|
|
5779
6159
|
}
|
|
@@ -5809,7 +6189,10 @@ var client = createMCPClient({
|
|
|
5809
6189
|
intercomIntegration(),
|
|
5810
6190
|
hubspotIntegration(),
|
|
5811
6191
|
youtubeIntegration(),
|
|
5812
|
-
cursorIntegration()
|
|
6192
|
+
cursorIntegration(),
|
|
6193
|
+
posthogIntegration(),
|
|
6194
|
+
sentryIntegration(),
|
|
6195
|
+
netlifyIntegration()
|
|
5813
6196
|
],
|
|
5814
6197
|
useServerConfig: true
|
|
5815
6198
|
});
|
|
@@ -5824,14 +6207,18 @@ export {
|
|
|
5824
6207
|
toTanStackStartHandler,
|
|
5825
6208
|
stripeIntegration,
|
|
5826
6209
|
slackIntegration,
|
|
6210
|
+
sentryIntegration,
|
|
5827
6211
|
sendCallbackToOpener,
|
|
5828
6212
|
rampIntegration,
|
|
6213
|
+
railwayIntegration,
|
|
6214
|
+
posthogIntegration,
|
|
5829
6215
|
polarIntegration,
|
|
5830
6216
|
parseState,
|
|
5831
6217
|
parseServerError,
|
|
5832
6218
|
outlookIntegration,
|
|
5833
6219
|
onedriveIntegration,
|
|
5834
6220
|
notionIntegration,
|
|
6221
|
+
netlifyIntegration,
|
|
5835
6222
|
mercuryIntegration,
|
|
5836
6223
|
linearIntegration,
|
|
5837
6224
|
isTokenExpiredError,
|