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.
Files changed (41) hide show
  1. package/dist/adapters/auto-routes.js +61 -23
  2. package/dist/adapters/base-handler.d.ts.map +1 -1
  3. package/dist/adapters/base-handler.js +61 -23
  4. package/dist/adapters/index.js +99 -49
  5. package/dist/adapters/nextjs.js +61 -23
  6. package/dist/adapters/solid-start.js +99 -49
  7. package/dist/adapters/svelte-kit.js +99 -49
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +488 -101
  11. package/dist/oauth.js +60 -23
  12. package/dist/server.js +376 -122
  13. package/dist/src/adapters/base-handler.d.ts.map +1 -1
  14. package/dist/src/client.d.ts +3 -1
  15. package/dist/src/client.d.ts.map +1 -1
  16. package/dist/src/index.d.ts +8 -0
  17. package/dist/src/index.d.ts.map +1 -1
  18. package/dist/src/integrations/library-metadata.d.ts +1 -1
  19. package/dist/src/integrations/library-metadata.d.ts.map +1 -1
  20. package/dist/src/integrations/netlify-client.d.ts +161 -0
  21. package/dist/src/integrations/netlify-client.d.ts.map +1 -0
  22. package/dist/src/integrations/netlify.d.ts +18 -0
  23. package/dist/src/integrations/netlify.d.ts.map +1 -0
  24. package/dist/src/integrations/posthog-client.d.ts +222 -0
  25. package/dist/src/integrations/posthog-client.d.ts.map +1 -0
  26. package/dist/src/integrations/posthog.d.ts +30 -0
  27. package/dist/src/integrations/posthog.d.ts.map +1 -0
  28. package/dist/src/integrations/railway-client.d.ts +302 -0
  29. package/dist/src/integrations/railway-client.d.ts.map +1 -0
  30. package/dist/src/integrations/railway.d.ts +24 -0
  31. package/dist/src/integrations/railway.d.ts.map +1 -0
  32. package/dist/src/integrations/sentry-client.d.ts +78 -0
  33. package/dist/src/integrations/sentry-client.d.ts.map +1 -0
  34. package/dist/src/integrations/sentry.d.ts +22 -0
  35. package/dist/src/integrations/sentry.d.ts.map +1 -0
  36. package/dist/src/oauth/types.d.ts +2 -0
  37. package/dist/src/oauth/types.d.ts.map +1 -1
  38. package/dist/src/server.d.ts +2 -0
  39. package/dist/src/server.d.ts.map +1 -1
  40. package/index.ts +6 -1
  41. 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 OAUTH_FIELDS = new Set([
3352
- "clientId",
3353
- "clientSecret",
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 logger14 = createLogger("Vercel");
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
- logger14.debug("Vercel integration initialized");
4563
+ logger15.debug("Vercel integration initialized");
4406
4564
  },
4407
4565
  async onAfterConnect(_client) {
4408
- logger14.debug("Vercel integration connected");
4566
+ logger15.debug("Vercel integration connected");
4409
4567
  }
4410
4568
  };
4411
4569
  }
4412
4570
  // src/integrations/zendesk.ts
4413
- var logger15 = createLogger("Zendesk");
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
- logger15.debug("Zendesk integration initialized");
4620
+ logger16.debug("Zendesk integration initialized");
4463
4621
  },
4464
4622
  async onAfterConnect(_client) {
4465
- logger15.debug("Zendesk integration connected");
4623
+ logger16.debug("Zendesk integration connected");
4466
4624
  }
4467
4625
  };
4468
4626
  }
4469
4627
  // src/integrations/stripe.ts
4470
- var logger16 = createLogger("Stripe");
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
- logger16.debug("Stripe integration initialized");
4684
+ logger17.debug("Stripe integration initialized");
4527
4685
  },
4528
4686
  async onAfterConnect(_client) {
4529
- logger16.debug("Stripe integration connected");
4687
+ logger17.debug("Stripe integration connected");
4530
4688
  }
4531
4689
  };
4532
4690
  }
4533
4691
  // src/integrations/gcal.ts
4534
- var logger17 = createLogger("Google Calendar");
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
- logger17.debug("Google Calendar integration initialized");
4725
+ logger18.debug("Google Calendar integration initialized");
4568
4726
  },
4569
4727
  async onAfterConnect(_client) {
4570
- logger17.debug("Google Calendar integration connected");
4728
+ logger18.debug("Google Calendar integration connected");
4571
4729
  }
4572
4730
  };
4573
4731
  }
4574
4732
  // src/integrations/outlook.ts
4575
- var logger18 = createLogger("Outlook");
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
- logger18.debug("Outlook integration initialized");
4780
+ logger19.debug("Outlook integration initialized");
4623
4781
  },
4624
4782
  async onAfterConnect(_client) {
4625
- logger18.debug("Outlook integration connected");
4783
+ logger19.debug("Outlook integration connected");
4626
4784
  }
4627
4785
  };
4628
4786
  }
4629
4787
  // src/integrations/airtable.ts
4630
- var logger19 = createLogger("Airtable");
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
- logger19.debug("Airtable integration initialized");
4834
+ logger20.debug("Airtable integration initialized");
4677
4835
  },
4678
4836
  async onAfterConnect(_client) {
4679
- logger19.debug("Airtable integration connected");
4837
+ logger20.debug("Airtable integration connected");
4680
4838
  }
4681
4839
  };
4682
4840
  }
4683
4841
  // src/integrations/todoist.ts
4684
- var logger20 = createLogger("Todoist");
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
- logger20.debug("Todoist integration initialized");
4897
+ logger21.debug("Todoist integration initialized");
4740
4898
  },
4741
4899
  async onAfterConnect(_client) {
4742
- logger20.debug("Todoist integration connected");
4900
+ logger21.debug("Todoist integration connected");
4743
4901
  }
4744
4902
  };
4745
4903
  }
4746
4904
  // src/integrations/whatsapp.ts
4747
- var logger21 = createLogger("WhatsApp");
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
- logger21.debug("WhatsApp Business integration initialized");
4951
+ logger22.debug("WhatsApp Business integration initialized");
4794
4952
  },
4795
4953
  async onAfterConnect(_client) {
4796
- logger21.debug("WhatsApp Business integration connected");
4954
+ logger22.debug("WhatsApp Business integration connected");
4797
4955
  }
4798
4956
  };
4799
4957
  }
4800
4958
  // src/integrations/calcom.ts
4801
- var logger22 = createLogger("Cal.com");
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
- logger22.debug("Cal.com integration initialized");
5035
+ logger23.debug("Cal.com integration initialized");
4878
5036
  },
4879
5037
  async onAfterConnect(_client) {
4880
- logger22.debug("Cal.com integration connected");
5038
+ logger23.debug("Cal.com integration connected");
4881
5039
  }
4882
5040
  };
4883
5041
  }
4884
5042
  // src/integrations/ramp.ts
4885
- var logger23 = createLogger("Ramp");
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
- logger23.debug("Ramp integration initialized");
5075
+ logger24.debug("Ramp integration initialized");
4918
5076
  },
4919
5077
  async onAfterConnect(_client) {
4920
- logger23.debug("Ramp integration connected");
5078
+ logger24.debug("Ramp integration connected");
4921
5079
  }
4922
5080
  };
4923
5081
  }
4924
5082
  // src/integrations/onedrive.ts
4925
- var logger24 = createLogger("OneDrive");
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
- logger24.debug("OneDrive integration initialized");
5112
+ logger25.debug("OneDrive integration initialized");
4955
5113
  },
4956
5114
  async onAfterConnect(_client) {
4957
- logger24.debug("OneDrive integration connected");
5115
+ logger25.debug("OneDrive integration connected");
4958
5116
  }
4959
5117
  };
4960
5118
  }
4961
5119
  // src/integrations/dropbox.ts
4962
- var logger25 = createLogger("Dropbox");
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
- logger25.debug("Dropbox integration initialized");
5159
+ logger26.debug("Dropbox integration initialized");
5002
5160
  },
5003
5161
  async onAfterConnect(_client) {
5004
- logger25.debug("Dropbox integration connected");
5162
+ logger26.debug("Dropbox integration connected");
5005
5163
  }
5006
5164
  };
5007
5165
  }
5008
5166
  // src/integrations/gdocs.ts
5009
- var logger26 = createLogger("Google Docs");
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
- logger26.debug("Google Docs integration initialized");
5192
+ logger27.debug("Google Docs integration initialized");
5035
5193
  },
5036
5194
  async onAfterConnect(_client) {
5037
- logger26.debug("Google Docs integration connected");
5195
+ logger27.debug("Google Docs integration connected");
5038
5196
  }
5039
5197
  };
5040
5198
  }
5041
5199
  // src/integrations/gsheets.ts
5042
- var logger27 = createLogger("Google Sheets");
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
- logger27.debug("Google Sheets integration initialized");
5228
+ logger28.debug("Google Sheets integration initialized");
5071
5229
  },
5072
5230
  async onAfterConnect(_client) {
5073
- logger27.debug("Google Sheets integration connected");
5231
+ logger28.debug("Google Sheets integration connected");
5074
5232
  }
5075
5233
  };
5076
5234
  }
5077
5235
  // src/integrations/gslides.ts
5078
- var logger28 = createLogger("Google Slides");
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
- logger28.debug("Google Slides integration initialized");
5263
+ logger29.debug("Google Slides integration initialized");
5106
5264
  },
5107
5265
  async onAfterConnect(_client) {
5108
- logger28.debug("Google Slides integration connected");
5266
+ logger29.debug("Google Slides integration connected");
5109
5267
  }
5110
5268
  };
5111
5269
  }
5112
5270
  // src/integrations/polar.ts
5113
- var logger29 = createLogger("Polar");
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
- logger29.debug("Polar integration initialized");
5328
+ logger30.debug("Polar integration initialized");
5171
5329
  },
5172
5330
  async onAfterConnect(_client) {
5173
- logger29.debug("Polar integration connected");
5331
+ logger30.debug("Polar integration connected");
5174
5332
  }
5175
5333
  };
5176
5334
  }
5177
5335
  // src/integrations/figma.ts
5178
- var logger30 = createLogger("Figma");
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
- logger30.debug("Figma integration initialized");
5402
+ logger31.debug("Figma integration initialized");
5245
5403
  },
5246
5404
  async onAfterConnect(_client) {
5247
- logger30.debug("Figma integration connected");
5405
+ logger31.debug("Figma integration connected");
5248
5406
  }
5249
5407
  };
5250
5408
  }
5251
5409
  // src/integrations/intercom.ts
5252
- var logger31 = createLogger("Intercom");
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
- logger31.debug("Intercom integration initialized");
5441
+ logger32.debug("Intercom integration initialized");
5284
5442
  },
5285
5443
  async onAfterConnect(_client) {
5286
- logger31.debug("Intercom integration connected");
5444
+ logger32.debug("Intercom integration connected");
5287
5445
  }
5288
5446
  };
5289
5447
  }
5290
5448
  // src/integrations/hubspot.ts
5291
- var logger32 = createLogger("HubSpot");
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
- logger32.debug("HubSpot integration initialized");
5499
+ logger33.debug("HubSpot integration initialized");
5342
5500
  },
5343
5501
  async onAfterConnect(_client) {
5344
- logger32.debug("HubSpot integration connected");
5502
+ logger33.debug("HubSpot integration connected");
5345
5503
  }
5346
5504
  };
5347
5505
  }
5348
5506
  // src/integrations/youtube.ts
5349
- var logger33 = createLogger("YouTube");
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
- logger33.debug("YouTube integration initialized");
5553
+ logger34.debug("YouTube integration initialized");
5396
5554
  },
5397
5555
  async onAfterConnect(_client) {
5398
- logger33.debug("YouTube integration connected");
5556
+ logger34.debug("YouTube integration connected");
5399
5557
  }
5400
5558
  };
5401
5559
  }
5402
5560
  // src/integrations/cursor.ts
5403
- var logger34 = createLogger("Cursor");
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
- logger34.debug("Cursor integration initialized");
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
- logger34.debug("Cursor integration connected");
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 logger35 = createLogger("Webhooks", "server");
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
- logger35.warn(`Webhook delivery to ${webhook.url} returned ${response.status}`);
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
- logger35.warn(`Webhook delivery to ${webhooks[i].url} failed:`, result.reason);
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 logger36 = createLogger("Word");
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
- logger36.debug("Word integration initialized");
6030
+ logger40.debug("Word integration initialized");
5651
6031
  },
5652
6032
  async onAfterConnect(_client) {
5653
- logger36.debug("Word integration connected");
6033
+ logger40.debug("Word integration connected");
5654
6034
  }
5655
6035
  };
5656
6036
  }
5657
6037
 
5658
6038
  // src/integrations/excel.ts
5659
- var logger37 = createLogger("Excel");
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
- logger37.debug("Excel integration initialized");
6075
+ logger41.debug("Excel integration initialized");
5696
6076
  },
5697
6077
  async onAfterConnect(_client) {
5698
- logger37.debug("Excel integration connected");
6078
+ logger41.debug("Excel integration connected");
5699
6079
  }
5700
6080
  };
5701
6081
  }
5702
6082
 
5703
6083
  // src/integrations/powerpoint.ts
5704
- var logger38 = createLogger("PowerPoint");
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
- logger38.debug("PowerPoint integration initialized");
6110
+ logger42.debug("PowerPoint integration initialized");
5731
6111
  },
5732
6112
  async onAfterConnect(_client) {
5733
- logger38.debug("PowerPoint integration connected");
6113
+ logger42.debug("PowerPoint integration connected");
5734
6114
  }
5735
6115
  };
5736
6116
  }
5737
6117
 
5738
6118
  // src/integrations/gdrive.ts
5739
- var logger39 = createLogger("Google Drive");
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
- logger39.debug("Google Drive integration initialized");
6153
+ logger43.debug("Google Drive integration initialized");
5774
6154
  },
5775
6155
  async onAfterConnect(_client) {
5776
- logger39.debug("Google Drive integration connected");
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,