integrate-sdk 0.8.74-dev.0 → 0.8.75-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 (63) hide show
  1. package/dist/adapters/auto-routes.js +31 -0
  2. package/dist/adapters/base-handler.d.ts +5 -0
  3. package/dist/adapters/base-handler.d.ts.map +1 -1
  4. package/dist/adapters/index.js +31 -0
  5. package/dist/adapters/nextjs.js +31 -0
  6. package/dist/adapters/node.js +31 -0
  7. package/dist/adapters/svelte-kit.js +31 -0
  8. package/dist/adapters/tanstack-start.js +31 -0
  9. package/dist/index.js +31 -0
  10. package/dist/oauth.js +31 -0
  11. package/dist/server.js +31 -0
  12. package/dist/src/adapters/base-handler.d.ts +5 -0
  13. package/dist/src/adapters/base-handler.d.ts.map +1 -1
  14. package/dist/src/integrations/airtable.d.ts +2 -0
  15. package/dist/src/integrations/airtable.d.ts.map +1 -1
  16. package/dist/src/integrations/calcom.d.ts +2 -0
  17. package/dist/src/integrations/calcom.d.ts.map +1 -1
  18. package/dist/src/integrations/figma.d.ts +2 -0
  19. package/dist/src/integrations/figma.d.ts.map +1 -1
  20. package/dist/src/integrations/gcal.d.ts +2 -0
  21. package/dist/src/integrations/gcal.d.ts.map +1 -1
  22. package/dist/src/integrations/generic.d.ts +2 -0
  23. package/dist/src/integrations/generic.d.ts.map +1 -1
  24. package/dist/src/integrations/github.d.ts +2 -0
  25. package/dist/src/integrations/github.d.ts.map +1 -1
  26. package/dist/src/integrations/gmail.d.ts +2 -0
  27. package/dist/src/integrations/gmail.d.ts.map +1 -1
  28. package/dist/src/integrations/gworkspace.d.ts +2 -0
  29. package/dist/src/integrations/gworkspace.d.ts.map +1 -1
  30. package/dist/src/integrations/hubspot.d.ts +2 -0
  31. package/dist/src/integrations/hubspot.d.ts.map +1 -1
  32. package/dist/src/integrations/intercom.d.ts +2 -0
  33. package/dist/src/integrations/intercom.d.ts.map +1 -1
  34. package/dist/src/integrations/linear.d.ts +2 -0
  35. package/dist/src/integrations/linear.d.ts.map +1 -1
  36. package/dist/src/integrations/notion.d.ts +2 -0
  37. package/dist/src/integrations/notion.d.ts.map +1 -1
  38. package/dist/src/integrations/onedrive.d.ts +2 -0
  39. package/dist/src/integrations/onedrive.d.ts.map +1 -1
  40. package/dist/src/integrations/outlook.d.ts +2 -0
  41. package/dist/src/integrations/outlook.d.ts.map +1 -1
  42. package/dist/src/integrations/polar.d.ts +2 -0
  43. package/dist/src/integrations/polar.d.ts.map +1 -1
  44. package/dist/src/integrations/ramp.d.ts +2 -0
  45. package/dist/src/integrations/ramp.d.ts.map +1 -1
  46. package/dist/src/integrations/slack.d.ts +2 -0
  47. package/dist/src/integrations/slack.d.ts.map +1 -1
  48. package/dist/src/integrations/stripe.d.ts +2 -0
  49. package/dist/src/integrations/stripe.d.ts.map +1 -1
  50. package/dist/src/integrations/todoist.d.ts +2 -0
  51. package/dist/src/integrations/todoist.d.ts.map +1 -1
  52. package/dist/src/integrations/types.d.ts +2 -0
  53. package/dist/src/integrations/types.d.ts.map +1 -1
  54. package/dist/src/integrations/vercel.d.ts +2 -0
  55. package/dist/src/integrations/vercel.d.ts.map +1 -1
  56. package/dist/src/integrations/whatsapp.d.ts +2 -0
  57. package/dist/src/integrations/whatsapp.d.ts.map +1 -1
  58. package/dist/src/integrations/youtube.d.ts +2 -0
  59. package/dist/src/integrations/youtube.d.ts.map +1 -1
  60. package/dist/src/integrations/zendesk.d.ts +2 -0
  61. package/dist/src/integrations/zendesk.d.ts.map +1 -1
  62. package/dist/src/server.d.ts.map +1 -1
  63. package/package.json +1 -1
@@ -2629,6 +2629,7 @@ function githubIntegration(config = {}) {
2629
2629
  clientId: config.clientId ?? getEnv("GITHUB_CLIENT_ID"),
2630
2630
  clientSecret: config.clientSecret ?? getEnv("GITHUB_CLIENT_SECRET"),
2631
2631
  scopes: config.scopes || ["repo", "user"],
2632
+ optionalScopes: config.optionalScopes,
2632
2633
  redirectUri: config.redirectUri,
2633
2634
  config: {
2634
2635
  apiBaseUrl: config.apiBaseUrl || "https://api.github.com",
@@ -2716,6 +2717,7 @@ function gmailIntegration(config = {}) {
2716
2717
  "https://www.googleapis.com/auth/gmail.modify",
2717
2718
  "https://www.googleapis.com/auth/gmail.labels"
2718
2719
  ],
2720
+ optionalScopes: config.optionalScopes,
2719
2721
  redirectUri: config.redirectUri,
2720
2722
  config
2721
2723
  };
@@ -2752,6 +2754,7 @@ function notionIntegration(config = {}) {
2752
2754
  clientId: config.clientId ?? getEnv("NOTION_CLIENT_ID"),
2753
2755
  clientSecret: config.clientSecret ?? getEnv("NOTION_CLIENT_SECRET"),
2754
2756
  scopes: [],
2757
+ optionalScopes: config.optionalScopes,
2755
2758
  redirectUri: config.redirectUri,
2756
2759
  config: {
2757
2760
  owner: config.owner || "user",
@@ -2817,6 +2820,7 @@ function slackIntegration(config = {}) {
2817
2820
  clientId: config.clientId ?? getEnv("SLACK_CLIENT_ID"),
2818
2821
  clientSecret: config.clientSecret ?? getEnv("SLACK_CLIENT_SECRET"),
2819
2822
  scopes: config.scopes || ["chat:write", "channels:read", "users:read", "search:read", "files:write"],
2823
+ optionalScopes: config.optionalScopes,
2820
2824
  redirectUri: config.redirectUri,
2821
2825
  config: {
2822
2826
  ...config
@@ -2860,6 +2864,7 @@ function linearIntegration(config = {}) {
2860
2864
  clientId: config.clientId ?? getEnv("LINEAR_CLIENT_ID"),
2861
2865
  clientSecret: config.clientSecret ?? getEnv("LINEAR_CLIENT_SECRET"),
2862
2866
  scopes: config.scopes || ["read", "write", "issues:create", "comments:create"],
2867
+ optionalScopes: config.optionalScopes,
2863
2868
  redirectUri: config.redirectUri,
2864
2869
  config: {
2865
2870
  ...config
@@ -2927,6 +2932,7 @@ function vercelIntegration(config = {}) {
2927
2932
  clientId: config.clientId ?? getEnv("VERCEL_CLIENT_ID"),
2928
2933
  clientSecret: config.clientSecret ?? getEnv("VERCEL_CLIENT_SECRET"),
2929
2934
  scopes: config.scopes || [],
2935
+ optionalScopes: config.optionalScopes,
2930
2936
  redirectUri: config.redirectUri,
2931
2937
  config: {
2932
2938
  ...config
@@ -2970,6 +2976,7 @@ function zendeskIntegration(config = {}) {
2970
2976
  clientId: config.clientId ?? getEnv("ZENDESK_CLIENT_ID"),
2971
2977
  clientSecret: config.clientSecret ?? getEnv("ZENDESK_CLIENT_SECRET"),
2972
2978
  scopes: config.scopes || ["read", "write"],
2979
+ optionalScopes: config.optionalScopes,
2973
2980
  redirectUri: config.redirectUri,
2974
2981
  config: {
2975
2982
  subdomain: config.subdomain ?? getEnv("ZENDESK_SUBDOMAIN"),
@@ -3014,6 +3021,7 @@ function stripeIntegration(config = {}) {
3014
3021
  clientId: config.clientId ?? getEnv("STRIPE_CLIENT_ID"),
3015
3022
  clientSecret: config.clientSecret ?? getEnv("STRIPE_CLIENT_SECRET"),
3016
3023
  scopes: config.scopes || ["read_write"],
3024
+ optionalScopes: config.optionalScopes,
3017
3025
  redirectUri: config.redirectUri,
3018
3026
  config: {
3019
3027
  ...config
@@ -3057,6 +3065,7 @@ function gcalIntegration(config = {}) {
3057
3065
  clientId: config.clientId ?? getEnv("GCAL_CLIENT_ID"),
3058
3066
  clientSecret: config.clientSecret ?? getEnv("GCAL_CLIENT_SECRET"),
3059
3067
  scopes: config.scopes || ["https://www.googleapis.com/auth/calendar"],
3068
+ optionalScopes: config.optionalScopes,
3060
3069
  redirectUri: config.redirectUri,
3061
3070
  config: {
3062
3071
  ...config
@@ -3100,6 +3109,7 @@ function outlookIntegration(config = {}) {
3100
3109
  clientId: config.clientId ?? getEnv("OUTLOOK_CLIENT_ID"),
3101
3110
  clientSecret: config.clientSecret ?? getEnv("OUTLOOK_CLIENT_SECRET"),
3102
3111
  scopes: config.scopes || ["Mail.Read", "Mail.Send", "Calendars.ReadWrite", "Contacts.Read"],
3112
+ optionalScopes: config.optionalScopes,
3103
3113
  redirectUri: config.redirectUri,
3104
3114
  config: {
3105
3115
  ...config
@@ -3151,6 +3161,7 @@ function airtableIntegration(config = {}) {
3151
3161
  "schema.bases:write",
3152
3162
  "webhook:manage"
3153
3163
  ],
3164
+ optionalScopes: config.optionalScopes,
3154
3165
  redirectUri: config.redirectUri,
3155
3166
  config: {
3156
3167
  ...config
@@ -3209,6 +3220,7 @@ function todoistIntegration(config = {}) {
3209
3220
  clientId: config.clientId ?? getEnv("TODOIST_CLIENT_ID"),
3210
3221
  clientSecret: config.clientSecret ?? getEnv("TODOIST_CLIENT_SECRET"),
3211
3222
  scopes: config.scopes || ["data:read_write"],
3223
+ optionalScopes: config.optionalScopes,
3212
3224
  redirectUri: config.redirectUri,
3213
3225
  config: {
3214
3226
  ...config
@@ -3252,6 +3264,7 @@ function whatsappIntegration(config = {}) {
3252
3264
  clientId: config.clientId ?? getEnv("WHATSAPP_CLIENT_ID"),
3253
3265
  clientSecret: config.clientSecret ?? getEnv("WHATSAPP_CLIENT_SECRET"),
3254
3266
  scopes: config.scopes || ["business_management", "whatsapp_business_messaging", "whatsapp_business_management"],
3267
+ optionalScopes: config.optionalScopes,
3255
3268
  redirectUri: config.redirectUri,
3256
3269
  config: {
3257
3270
  businessAccountId: config.businessAccountId,
@@ -3295,6 +3308,7 @@ function calcomIntegration(config = {}) {
3295
3308
  clientId: config.clientId ?? getEnv("CALCOM_CLIENT_ID"),
3296
3309
  clientSecret: config.clientSecret ?? getEnv("CALCOM_CLIENT_SECRET"),
3297
3310
  scopes: config.scopes || ["READ_BOOKING", "WRITE_BOOKING", "READ_PROFILE", "WRITE_PROFILE"],
3311
+ optionalScopes: config.optionalScopes,
3298
3312
  redirectUri: config.redirectUri,
3299
3313
  config: {
3300
3314
  apiBaseUrl: config.apiBaseUrl || "https://api.cal.com/v1",
@@ -3383,6 +3397,7 @@ function rampIntegration(config = {}) {
3383
3397
  clientId: config.clientId ?? getEnv("RAMP_CLIENT_ID"),
3384
3398
  clientSecret: config.clientSecret ?? getEnv("RAMP_CLIENT_SECRET"),
3385
3399
  scopes: config.scopes || ["transactions:read", "cards:read", "users:read"],
3400
+ optionalScopes: config.optionalScopes,
3386
3401
  redirectUri: config.redirectUri,
3387
3402
  config: {
3388
3403
  apiBaseUrl: config.apiBaseUrl || "https://api.ramp.com/v1",
@@ -3427,6 +3442,7 @@ function onedriveIntegration(config = {}) {
3427
3442
  clientId: config.clientId ?? getEnv("ONEDRIVE_CLIENT_ID"),
3428
3443
  clientSecret: config.clientSecret ?? getEnv("ONEDRIVE_CLIENT_SECRET"),
3429
3444
  scopes: config.scopes || ["Files.Read", "Files.ReadWrite", "offline_access"],
3445
+ optionalScopes: config.optionalScopes,
3430
3446
  redirectUri: config.redirectUri,
3431
3447
  config: {
3432
3448
  ...config
@@ -3478,6 +3494,7 @@ function gworkspaceIntegration(config = {}) {
3478
3494
  "https://www.googleapis.com/auth/presentations",
3479
3495
  "https://www.googleapis.com/auth/drive.readonly"
3480
3496
  ],
3497
+ optionalScopes: config.optionalScopes,
3481
3498
  redirectUri: config.redirectUri,
3482
3499
  config: {
3483
3500
  ...config
@@ -3543,6 +3560,7 @@ function polarIntegration(config = {}) {
3543
3560
  "metrics:read",
3544
3561
  "organizations:read"
3545
3562
  ],
3563
+ optionalScopes: config.optionalScopes,
3546
3564
  redirectUri: config.redirectUri,
3547
3565
  config: {
3548
3566
  apiBaseUrl: config.apiBaseUrl || "https://api.polar.sh"
@@ -3612,6 +3630,7 @@ function figmaIntegration(config = {}) {
3612
3630
  clientId: config.clientId ?? getEnv("FIGMA_CLIENT_ID"),
3613
3631
  clientSecret: config.clientSecret ?? getEnv("FIGMA_CLIENT_SECRET"),
3614
3632
  scopes: config.scopes || ["files:read", "file_comments:write"],
3633
+ optionalScopes: config.optionalScopes,
3615
3634
  redirectUri: config.redirectUri,
3616
3635
  config: {
3617
3636
  ...config
@@ -3655,6 +3674,7 @@ function intercomIntegration(config = {}) {
3655
3674
  clientId: config.clientId ?? getEnv("INTERCOM_CLIENT_ID"),
3656
3675
  clientSecret: config.clientSecret ?? getEnv("INTERCOM_CLIENT_SECRET"),
3657
3676
  scopes: config.scopes || [],
3677
+ optionalScopes: config.optionalScopes,
3658
3678
  redirectUri: config.redirectUri,
3659
3679
  config: {
3660
3680
  ...config
@@ -3708,6 +3728,7 @@ function hubspotIntegration(config = {}) {
3708
3728
  "crm.objects.tickets.write",
3709
3729
  "crm.objects.owners.read"
3710
3730
  ],
3731
+ optionalScopes: config.optionalScopes,
3711
3732
  redirectUri: config.redirectUri,
3712
3733
  config: {
3713
3734
  ...config
@@ -3770,6 +3791,7 @@ function youtubeIntegration(config = {}) {
3770
3791
  clientId: config.clientId ?? getEnv("YOUTUBE_CLIENT_ID"),
3771
3792
  clientSecret: config.clientSecret ?? getEnv("YOUTUBE_CLIENT_SECRET"),
3772
3793
  scopes: config.scopes || ["https://www.googleapis.com/auth/youtube.readonly"],
3794
+ optionalScopes: config.optionalScopes,
3773
3795
  redirectUri: config.redirectUri,
3774
3796
  config: {
3775
3797
  ...config
@@ -3847,6 +3869,7 @@ function genericOAuthIntegration(config) {
3847
3869
  clientId: config.clientId ?? getEnv(`${providerUpper}_CLIENT_ID`),
3848
3870
  clientSecret: config.clientSecret ?? getEnv(`${providerUpper}_CLIENT_SECRET`),
3849
3871
  scopes: config.scopes,
3872
+ optionalScopes: config.optionalScopes,
3850
3873
  redirectUri: config.redirectUri,
3851
3874
  config
3852
3875
  };
@@ -10561,6 +10584,7 @@ function createMCPServer(config) {
10561
10584
  tools: integration.tools,
10562
10585
  hasOAuth: !!integration.oauth,
10563
10586
  scopes: integration.oauth?.scopes,
10587
+ optionalScopes: integration.oauth?.optionalScopes,
10564
10588
  provider: integration.oauth?.provider
10565
10589
  }));
10566
10590
  return Response.json({ integrations });
@@ -11524,6 +11548,7 @@ class OAuthHandler {
11524
11548
  tools: integration.tools,
11525
11549
  hasOAuth: !!integration.oauth,
11526
11550
  scopes: integration.oauth?.scopes,
11551
+ optionalScopes: integration.oauth?.optionalScopes,
11527
11552
  provider: integration.oauth?.provider
11528
11553
  }))
11529
11554
  };
@@ -11566,6 +11591,10 @@ class OAuthHandler {
11566
11591
  if (scopes.length > 0) {
11567
11592
  url.searchParams.set("scope", scopes.join(","));
11568
11593
  }
11594
+ const optionalScopes = authorizeRequest.optionalScopes || providerConfig.optionalScopes || [];
11595
+ if (optionalScopes.length > 0) {
11596
+ url.searchParams.set("optional_scope", optionalScopes.join(","));
11597
+ }
11569
11598
  url.searchParams.set("state", authorizeRequest.state);
11570
11599
  url.searchParams.set("code_challenge", authorizeRequest.codeChallenge);
11571
11600
  url.searchParams.set("code_challenge_method", authorizeRequest.codeChallengeMethod);
@@ -11577,10 +11606,12 @@ class OAuthHandler {
11577
11606
  "clientId",
11578
11607
  "clientSecret",
11579
11608
  "scopes",
11609
+ "optionalScopes",
11580
11610
  "redirectUri",
11581
11611
  "client_id",
11582
11612
  "client_secret",
11583
11613
  "scope",
11614
+ "optional_scope",
11584
11615
  "redirect_uri",
11585
11616
  "provider"
11586
11617
  ]);
@@ -19,6 +19,8 @@ export interface OAuthHandlerConfig {
19
19
  redirectUri?: string;
20
20
  /** Optional scopes for OAuth authorization */
21
21
  scopes?: string[];
22
+ /** Optional scopes that users may choose to grant or deny */
23
+ optionalScopes?: string[];
22
24
  /** Optional provider-specific configuration (e.g., Notion's 'owner' parameter) */
23
25
  config?: Record<string, any>;
24
26
  }>;
@@ -38,6 +40,7 @@ export interface OAuthHandlerConfig {
38
40
  tools: readonly string[];
39
41
  oauth?: {
40
42
  scopes?: string[];
43
+ optionalScopes?: string[];
41
44
  provider?: string;
42
45
  };
43
46
  [key: string]: any;
@@ -117,6 +120,7 @@ export interface AuthorizeRequest {
117
120
  codeChallenge: string;
118
121
  codeChallengeMethod: string;
119
122
  redirectUri?: string;
123
+ optionalScopes?: string[];
120
124
  /** Optional codeVerifier for backend redirect flow (when apiBaseUrl is set) */
121
125
  codeVerifier?: string;
122
126
  /** Optional frontend origin for backend redirect flow (when apiBaseUrl is set) */
@@ -218,6 +222,7 @@ export declare class OAuthHandler {
218
222
  tools: readonly string[];
219
223
  hasOAuth: boolean;
220
224
  scopes?: string[];
225
+ optionalScopes?: string[];
221
226
  provider?: string;
222
227
  }>;
223
228
  };
@@ -1 +1 @@
1
- {"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/adapters/base-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/adapters/base-handler.ts"],"names":[],"mappings":"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"}
@@ -2629,6 +2629,7 @@ function githubIntegration(config = {}) {
2629
2629
  clientId: config.clientId ?? getEnv("GITHUB_CLIENT_ID"),
2630
2630
  clientSecret: config.clientSecret ?? getEnv("GITHUB_CLIENT_SECRET"),
2631
2631
  scopes: config.scopes || ["repo", "user"],
2632
+ optionalScopes: config.optionalScopes,
2632
2633
  redirectUri: config.redirectUri,
2633
2634
  config: {
2634
2635
  apiBaseUrl: config.apiBaseUrl || "https://api.github.com",
@@ -2716,6 +2717,7 @@ function gmailIntegration(config = {}) {
2716
2717
  "https://www.googleapis.com/auth/gmail.modify",
2717
2718
  "https://www.googleapis.com/auth/gmail.labels"
2718
2719
  ],
2720
+ optionalScopes: config.optionalScopes,
2719
2721
  redirectUri: config.redirectUri,
2720
2722
  config
2721
2723
  };
@@ -2752,6 +2754,7 @@ function notionIntegration(config = {}) {
2752
2754
  clientId: config.clientId ?? getEnv("NOTION_CLIENT_ID"),
2753
2755
  clientSecret: config.clientSecret ?? getEnv("NOTION_CLIENT_SECRET"),
2754
2756
  scopes: [],
2757
+ optionalScopes: config.optionalScopes,
2755
2758
  redirectUri: config.redirectUri,
2756
2759
  config: {
2757
2760
  owner: config.owner || "user",
@@ -2817,6 +2820,7 @@ function slackIntegration(config = {}) {
2817
2820
  clientId: config.clientId ?? getEnv("SLACK_CLIENT_ID"),
2818
2821
  clientSecret: config.clientSecret ?? getEnv("SLACK_CLIENT_SECRET"),
2819
2822
  scopes: config.scopes || ["chat:write", "channels:read", "users:read", "search:read", "files:write"],
2823
+ optionalScopes: config.optionalScopes,
2820
2824
  redirectUri: config.redirectUri,
2821
2825
  config: {
2822
2826
  ...config
@@ -2860,6 +2864,7 @@ function linearIntegration(config = {}) {
2860
2864
  clientId: config.clientId ?? getEnv("LINEAR_CLIENT_ID"),
2861
2865
  clientSecret: config.clientSecret ?? getEnv("LINEAR_CLIENT_SECRET"),
2862
2866
  scopes: config.scopes || ["read", "write", "issues:create", "comments:create"],
2867
+ optionalScopes: config.optionalScopes,
2863
2868
  redirectUri: config.redirectUri,
2864
2869
  config: {
2865
2870
  ...config
@@ -2927,6 +2932,7 @@ function vercelIntegration(config = {}) {
2927
2932
  clientId: config.clientId ?? getEnv("VERCEL_CLIENT_ID"),
2928
2933
  clientSecret: config.clientSecret ?? getEnv("VERCEL_CLIENT_SECRET"),
2929
2934
  scopes: config.scopes || [],
2935
+ optionalScopes: config.optionalScopes,
2930
2936
  redirectUri: config.redirectUri,
2931
2937
  config: {
2932
2938
  ...config
@@ -2970,6 +2976,7 @@ function zendeskIntegration(config = {}) {
2970
2976
  clientId: config.clientId ?? getEnv("ZENDESK_CLIENT_ID"),
2971
2977
  clientSecret: config.clientSecret ?? getEnv("ZENDESK_CLIENT_SECRET"),
2972
2978
  scopes: config.scopes || ["read", "write"],
2979
+ optionalScopes: config.optionalScopes,
2973
2980
  redirectUri: config.redirectUri,
2974
2981
  config: {
2975
2982
  subdomain: config.subdomain ?? getEnv("ZENDESK_SUBDOMAIN"),
@@ -3014,6 +3021,7 @@ function stripeIntegration(config = {}) {
3014
3021
  clientId: config.clientId ?? getEnv("STRIPE_CLIENT_ID"),
3015
3022
  clientSecret: config.clientSecret ?? getEnv("STRIPE_CLIENT_SECRET"),
3016
3023
  scopes: config.scopes || ["read_write"],
3024
+ optionalScopes: config.optionalScopes,
3017
3025
  redirectUri: config.redirectUri,
3018
3026
  config: {
3019
3027
  ...config
@@ -3057,6 +3065,7 @@ function gcalIntegration(config = {}) {
3057
3065
  clientId: config.clientId ?? getEnv("GCAL_CLIENT_ID"),
3058
3066
  clientSecret: config.clientSecret ?? getEnv("GCAL_CLIENT_SECRET"),
3059
3067
  scopes: config.scopes || ["https://www.googleapis.com/auth/calendar"],
3068
+ optionalScopes: config.optionalScopes,
3060
3069
  redirectUri: config.redirectUri,
3061
3070
  config: {
3062
3071
  ...config
@@ -3100,6 +3109,7 @@ function outlookIntegration(config = {}) {
3100
3109
  clientId: config.clientId ?? getEnv("OUTLOOK_CLIENT_ID"),
3101
3110
  clientSecret: config.clientSecret ?? getEnv("OUTLOOK_CLIENT_SECRET"),
3102
3111
  scopes: config.scopes || ["Mail.Read", "Mail.Send", "Calendars.ReadWrite", "Contacts.Read"],
3112
+ optionalScopes: config.optionalScopes,
3103
3113
  redirectUri: config.redirectUri,
3104
3114
  config: {
3105
3115
  ...config
@@ -3151,6 +3161,7 @@ function airtableIntegration(config = {}) {
3151
3161
  "schema.bases:write",
3152
3162
  "webhook:manage"
3153
3163
  ],
3164
+ optionalScopes: config.optionalScopes,
3154
3165
  redirectUri: config.redirectUri,
3155
3166
  config: {
3156
3167
  ...config
@@ -3209,6 +3220,7 @@ function todoistIntegration(config = {}) {
3209
3220
  clientId: config.clientId ?? getEnv("TODOIST_CLIENT_ID"),
3210
3221
  clientSecret: config.clientSecret ?? getEnv("TODOIST_CLIENT_SECRET"),
3211
3222
  scopes: config.scopes || ["data:read_write"],
3223
+ optionalScopes: config.optionalScopes,
3212
3224
  redirectUri: config.redirectUri,
3213
3225
  config: {
3214
3226
  ...config
@@ -3252,6 +3264,7 @@ function whatsappIntegration(config = {}) {
3252
3264
  clientId: config.clientId ?? getEnv("WHATSAPP_CLIENT_ID"),
3253
3265
  clientSecret: config.clientSecret ?? getEnv("WHATSAPP_CLIENT_SECRET"),
3254
3266
  scopes: config.scopes || ["business_management", "whatsapp_business_messaging", "whatsapp_business_management"],
3267
+ optionalScopes: config.optionalScopes,
3255
3268
  redirectUri: config.redirectUri,
3256
3269
  config: {
3257
3270
  businessAccountId: config.businessAccountId,
@@ -3295,6 +3308,7 @@ function calcomIntegration(config = {}) {
3295
3308
  clientId: config.clientId ?? getEnv("CALCOM_CLIENT_ID"),
3296
3309
  clientSecret: config.clientSecret ?? getEnv("CALCOM_CLIENT_SECRET"),
3297
3310
  scopes: config.scopes || ["READ_BOOKING", "WRITE_BOOKING", "READ_PROFILE", "WRITE_PROFILE"],
3311
+ optionalScopes: config.optionalScopes,
3298
3312
  redirectUri: config.redirectUri,
3299
3313
  config: {
3300
3314
  apiBaseUrl: config.apiBaseUrl || "https://api.cal.com/v1",
@@ -3383,6 +3397,7 @@ function rampIntegration(config = {}) {
3383
3397
  clientId: config.clientId ?? getEnv("RAMP_CLIENT_ID"),
3384
3398
  clientSecret: config.clientSecret ?? getEnv("RAMP_CLIENT_SECRET"),
3385
3399
  scopes: config.scopes || ["transactions:read", "cards:read", "users:read"],
3400
+ optionalScopes: config.optionalScopes,
3386
3401
  redirectUri: config.redirectUri,
3387
3402
  config: {
3388
3403
  apiBaseUrl: config.apiBaseUrl || "https://api.ramp.com/v1",
@@ -3427,6 +3442,7 @@ function onedriveIntegration(config = {}) {
3427
3442
  clientId: config.clientId ?? getEnv("ONEDRIVE_CLIENT_ID"),
3428
3443
  clientSecret: config.clientSecret ?? getEnv("ONEDRIVE_CLIENT_SECRET"),
3429
3444
  scopes: config.scopes || ["Files.Read", "Files.ReadWrite", "offline_access"],
3445
+ optionalScopes: config.optionalScopes,
3430
3446
  redirectUri: config.redirectUri,
3431
3447
  config: {
3432
3448
  ...config
@@ -3478,6 +3494,7 @@ function gworkspaceIntegration(config = {}) {
3478
3494
  "https://www.googleapis.com/auth/presentations",
3479
3495
  "https://www.googleapis.com/auth/drive.readonly"
3480
3496
  ],
3497
+ optionalScopes: config.optionalScopes,
3481
3498
  redirectUri: config.redirectUri,
3482
3499
  config: {
3483
3500
  ...config
@@ -3543,6 +3560,7 @@ function polarIntegration(config = {}) {
3543
3560
  "metrics:read",
3544
3561
  "organizations:read"
3545
3562
  ],
3563
+ optionalScopes: config.optionalScopes,
3546
3564
  redirectUri: config.redirectUri,
3547
3565
  config: {
3548
3566
  apiBaseUrl: config.apiBaseUrl || "https://api.polar.sh"
@@ -3612,6 +3630,7 @@ function figmaIntegration(config = {}) {
3612
3630
  clientId: config.clientId ?? getEnv("FIGMA_CLIENT_ID"),
3613
3631
  clientSecret: config.clientSecret ?? getEnv("FIGMA_CLIENT_SECRET"),
3614
3632
  scopes: config.scopes || ["files:read", "file_comments:write"],
3633
+ optionalScopes: config.optionalScopes,
3615
3634
  redirectUri: config.redirectUri,
3616
3635
  config: {
3617
3636
  ...config
@@ -3655,6 +3674,7 @@ function intercomIntegration(config = {}) {
3655
3674
  clientId: config.clientId ?? getEnv("INTERCOM_CLIENT_ID"),
3656
3675
  clientSecret: config.clientSecret ?? getEnv("INTERCOM_CLIENT_SECRET"),
3657
3676
  scopes: config.scopes || [],
3677
+ optionalScopes: config.optionalScopes,
3658
3678
  redirectUri: config.redirectUri,
3659
3679
  config: {
3660
3680
  ...config
@@ -3708,6 +3728,7 @@ function hubspotIntegration(config = {}) {
3708
3728
  "crm.objects.tickets.write",
3709
3729
  "crm.objects.owners.read"
3710
3730
  ],
3731
+ optionalScopes: config.optionalScopes,
3711
3732
  redirectUri: config.redirectUri,
3712
3733
  config: {
3713
3734
  ...config
@@ -3770,6 +3791,7 @@ function youtubeIntegration(config = {}) {
3770
3791
  clientId: config.clientId ?? getEnv("YOUTUBE_CLIENT_ID"),
3771
3792
  clientSecret: config.clientSecret ?? getEnv("YOUTUBE_CLIENT_SECRET"),
3772
3793
  scopes: config.scopes || ["https://www.googleapis.com/auth/youtube.readonly"],
3794
+ optionalScopes: config.optionalScopes,
3773
3795
  redirectUri: config.redirectUri,
3774
3796
  config: {
3775
3797
  ...config
@@ -3847,6 +3869,7 @@ function genericOAuthIntegration(config) {
3847
3869
  clientId: config.clientId ?? getEnv(`${providerUpper}_CLIENT_ID`),
3848
3870
  clientSecret: config.clientSecret ?? getEnv(`${providerUpper}_CLIENT_SECRET`),
3849
3871
  scopes: config.scopes,
3872
+ optionalScopes: config.optionalScopes,
3850
3873
  redirectUri: config.redirectUri,
3851
3874
  config
3852
3875
  };
@@ -10561,6 +10584,7 @@ function createMCPServer(config) {
10561
10584
  tools: integration.tools,
10562
10585
  hasOAuth: !!integration.oauth,
10563
10586
  scopes: integration.oauth?.scopes,
10587
+ optionalScopes: integration.oauth?.optionalScopes,
10564
10588
  provider: integration.oauth?.provider
10565
10589
  }));
10566
10590
  return Response.json({ integrations });
@@ -11524,6 +11548,7 @@ class OAuthHandler {
11524
11548
  tools: integration.tools,
11525
11549
  hasOAuth: !!integration.oauth,
11526
11550
  scopes: integration.oauth?.scopes,
11551
+ optionalScopes: integration.oauth?.optionalScopes,
11527
11552
  provider: integration.oauth?.provider
11528
11553
  }))
11529
11554
  };
@@ -11566,6 +11591,10 @@ class OAuthHandler {
11566
11591
  if (scopes.length > 0) {
11567
11592
  url.searchParams.set("scope", scopes.join(","));
11568
11593
  }
11594
+ const optionalScopes = authorizeRequest.optionalScopes || providerConfig.optionalScopes || [];
11595
+ if (optionalScopes.length > 0) {
11596
+ url.searchParams.set("optional_scope", optionalScopes.join(","));
11597
+ }
11569
11598
  url.searchParams.set("state", authorizeRequest.state);
11570
11599
  url.searchParams.set("code_challenge", authorizeRequest.codeChallenge);
11571
11600
  url.searchParams.set("code_challenge_method", authorizeRequest.codeChallengeMethod);
@@ -11577,10 +11606,12 @@ class OAuthHandler {
11577
11606
  "clientId",
11578
11607
  "clientSecret",
11579
11608
  "scopes",
11609
+ "optionalScopes",
11580
11610
  "redirectUri",
11581
11611
  "client_id",
11582
11612
  "client_secret",
11583
11613
  "scope",
11614
+ "optional_scope",
11584
11615
  "redirect_uri",
11585
11616
  "provider"
11586
11617
  ]);