integrate-sdk 0.6.1 → 0.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -43,7 +43,7 @@ For production, use: `https://yourdomain.com/api/integrate/oauth/callback`
43
43
 
44
44
  ### 1. Create Server Config
45
45
 
46
- Define your OAuth providers once:
46
+ Define your OAuth providers once. Plugins automatically read credentials from environment variables:
47
47
 
48
48
  ```typescript
49
49
  // lib/integrate-server.ts (server-side only!)
@@ -53,16 +53,14 @@ import {
53
53
  gmailPlugin,
54
54
  } from "integrate-sdk/server";
55
55
 
56
+ // Plugins automatically use GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET,
57
+ // GMAIL_CLIENT_ID, GMAIL_CLIENT_SECRET from environment
56
58
  export const { client: serverClient } = createMCPServer({
57
59
  plugins: [
58
60
  githubPlugin({
59
- clientId: process.env.GITHUB_CLIENT_ID,
60
- clientSecret: process.env.GITHUB_CLIENT_SECRET,
61
61
  scopes: ["repo", "user"],
62
62
  }),
63
63
  gmailPlugin({
64
- clientId: process.env.GMAIL_CLIENT_ID,
65
- clientSecret: process.env.GMAIL_CLIENT_SECRET,
66
64
  scopes: ["gmail.readonly"],
67
65
  }),
68
66
  ],
@@ -152,6 +150,7 @@ The SDK automatically manages connections for you - no manual `connect()` or `di
152
150
 
153
151
  ```typescript
154
152
  // ✅ Default behavior - automatic connection
153
+ // Plugins automatically use GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET from environment
155
154
  const client = createMCPClient({
156
155
  plugins: [
157
156
  githubPlugin({
@@ -308,11 +307,10 @@ Use `genericOAuthPlugin` to configure any server-supported integration:
308
307
  ```typescript
309
308
  import { genericOAuthPlugin } from "integrate-sdk/server";
310
309
 
310
+ // Automatically uses SLACK_CLIENT_ID and SLACK_CLIENT_SECRET from environment
311
311
  const slackPlugin = genericOAuthPlugin({
312
312
  id: "slack",
313
313
  provider: "slack",
314
- clientId: process.env.SLACK_CLIENT_ID,
315
- clientSecret: process.env.SLACK_CLIENT_SECRET,
316
314
  scopes: ["chat:write", "channels:read"],
317
315
  tools: ["slack_send_message", "slack_list_channels"],
318
316
  });
package/dist/index.js CHANGED
@@ -1019,11 +1019,10 @@ class MCPClient {
1019
1019
  server;
1020
1020
  constructor(config) {
1021
1021
  this.transport = new HttpSessionTransport({
1022
- url: MCP_SERVER_URL,
1022
+ url: config.serverUrl || MCP_SERVER_URL,
1023
1023
  headers: config.headers,
1024
1024
  timeout: config.timeout
1025
1025
  });
1026
- this.transport.setHeader("X-Customer-ID", config.customerId);
1027
1026
  const oauthApiBase = config.oauthApiBase || "/api/integrate/oauth";
1028
1027
  const defaultRedirectUri = this.getDefaultRedirectUri(oauthApiBase);
1029
1028
  this.plugins = config.plugins.map((plugin) => {
@@ -1258,6 +1257,9 @@ class MCPClient {
1258
1257
  getAvailableTools() {
1259
1258
  return Array.from(this.availableTools.values());
1260
1259
  }
1260
+ setRequestHeader(key, value) {
1261
+ this.transport.setHeader(key, value);
1262
+ }
1261
1263
  getEnabledTools() {
1262
1264
  return Array.from(this.availableTools.values()).filter((tool) => this.enabledToolNames.has(tool.name));
1263
1265
  }
@@ -1557,12 +1559,13 @@ var MCP_SERVER_URL2 = "https://mcp.integrate.dev/api/v1/mcp";
1557
1559
 
1558
1560
  class OAuthHandler {
1559
1561
  config;
1560
- serverUrl = MCP_SERVER_URL2;
1562
+ serverUrl;
1561
1563
  constructor(config) {
1562
1564
  this.config = config;
1563
1565
  if (!config || !config.providers) {
1564
1566
  throw new Error("OAuthHandler requires a valid config with providers");
1565
1567
  }
1568
+ this.serverUrl = config.serverUrl || MCP_SERVER_URL2;
1566
1569
  }
1567
1570
  async handleAuthorize(request) {
1568
1571
  const providerConfig = this.config.providers[request.provider];
@@ -1984,11 +1987,11 @@ var GITHUB_TOOLS = [
1984
1987
  "github_list_commits",
1985
1988
  "github_get_commit"
1986
1989
  ];
1987
- function githubPlugin(config) {
1990
+ function githubPlugin(config = {}) {
1988
1991
  const oauth = {
1989
1992
  provider: "github",
1990
- clientId: config.clientId,
1991
- clientSecret: config.clientSecret,
1993
+ clientId: config.clientId ?? process.env.GITHUB_CLIENT_ID,
1994
+ clientSecret: config.clientSecret ?? process.env.GITHUB_CLIENT_SECRET,
1992
1995
  scopes: config.scopes || ["repo", "user"],
1993
1996
  redirectUri: config.redirectUri,
1994
1997
  config: {
@@ -2015,11 +2018,11 @@ var GMAIL_TOOLS = [
2015
2018
  "gmail_get_message",
2016
2019
  "gmail_search_messages"
2017
2020
  ];
2018
- function gmailPlugin(config) {
2021
+ function gmailPlugin(config = {}) {
2019
2022
  const oauth = {
2020
2023
  provider: "gmail",
2021
- clientId: config.clientId,
2022
- clientSecret: config.clientSecret,
2024
+ clientId: config.clientId ?? process.env.GMAIL_CLIENT_ID,
2025
+ clientSecret: config.clientSecret ?? process.env.GMAIL_CLIENT_SECRET,
2023
2026
  scopes: config.scopes || [
2024
2027
  "https://www.googleapis.com/auth/gmail.send",
2025
2028
  "https://www.googleapis.com/auth/gmail.readonly",
@@ -2043,10 +2046,11 @@ function gmailPlugin(config) {
2043
2046
  }
2044
2047
  // src/plugins/generic.ts
2045
2048
  function genericOAuthPlugin(config) {
2049
+ const providerUpper = config.provider.toUpperCase().replace(/[^A-Z0-9]/g, "_");
2046
2050
  const oauth = {
2047
2051
  provider: config.provider,
2048
- clientId: config.clientId,
2049
- clientSecret: config.clientSecret,
2052
+ clientId: config.clientId ?? process.env[`${providerUpper}_CLIENT_ID`],
2053
+ clientSecret: config.clientSecret ?? process.env[`${providerUpper}_CLIENT_SECRET`],
2050
2054
  scopes: config.scopes,
2051
2055
  redirectUri: config.redirectUri,
2052
2056
  config
package/dist/oauth.js CHANGED
@@ -15,12 +15,13 @@ var MCP_SERVER_URL = "https://mcp.integrate.dev/api/v1/mcp";
15
15
 
16
16
  class OAuthHandler {
17
17
  config;
18
- serverUrl = MCP_SERVER_URL;
18
+ serverUrl;
19
19
  constructor(config) {
20
20
  this.config = config;
21
21
  if (!config || !config.providers) {
22
22
  throw new Error("OAuthHandler requires a valid config with providers");
23
23
  }
24
+ this.serverUrl = config.serverUrl || MCP_SERVER_URL;
24
25
  }
25
26
  async handleAuthorize(request) {
26
27
  const providerConfig = this.config.providers[request.provider];
@@ -0,0 +1,8 @@
1
+ /**
2
+ * React integration for integrate-sdk
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ export { useIntegrateTokens, useIntegrateAI } from "./src/react/hooks.js";
7
+ export type { UseIntegrateTokensResult, UseIntegrateAIOptions } from "./src/react/hooks.js";
8
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../react.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1E,YAAY,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/server.js CHANGED
@@ -1019,11 +1019,10 @@ class MCPClient {
1019
1019
  server;
1020
1020
  constructor(config) {
1021
1021
  this.transport = new HttpSessionTransport({
1022
- url: MCP_SERVER_URL,
1022
+ url: config.serverUrl || MCP_SERVER_URL,
1023
1023
  headers: config.headers,
1024
1024
  timeout: config.timeout
1025
1025
  });
1026
- this.transport.setHeader("X-Customer-ID", config.customerId);
1027
1026
  const oauthApiBase = config.oauthApiBase || "/api/integrate/oauth";
1028
1027
  const defaultRedirectUri = this.getDefaultRedirectUri(oauthApiBase);
1029
1028
  this.plugins = config.plugins.map((plugin) => {
@@ -1258,6 +1257,9 @@ class MCPClient {
1258
1257
  getAvailableTools() {
1259
1258
  return Array.from(this.availableTools.values());
1260
1259
  }
1260
+ setRequestHeader(key, value) {
1261
+ this.transport.setHeader(key, value);
1262
+ }
1261
1263
  getEnabledTools() {
1262
1264
  return Array.from(this.availableTools.values()).filter((tool) => this.enabledToolNames.has(tool.name));
1263
1265
  }
@@ -1558,12 +1560,13 @@ var MCP_SERVER_URL2 = "https://mcp.integrate.dev/api/v1/mcp";
1558
1560
 
1559
1561
  class OAuthHandler {
1560
1562
  config;
1561
- serverUrl = MCP_SERVER_URL2;
1563
+ serverUrl;
1562
1564
  constructor(config) {
1563
1565
  this.config = config;
1564
1566
  if (!config || !config.providers) {
1565
1567
  throw new Error("OAuthHandler requires a valid config with providers");
1566
1568
  }
1569
+ this.serverUrl = config.serverUrl || MCP_SERVER_URL2;
1567
1570
  }
1568
1571
  async handleAuthorize(request) {
1569
1572
  const providerConfig = this.config.providers[request.provider];
@@ -1857,11 +1860,11 @@ var GITHUB_TOOLS = [
1857
1860
  "github_list_commits",
1858
1861
  "github_get_commit"
1859
1862
  ];
1860
- function githubPlugin(config) {
1863
+ function githubPlugin(config = {}) {
1861
1864
  const oauth = {
1862
1865
  provider: "github",
1863
- clientId: config.clientId,
1864
- clientSecret: config.clientSecret,
1866
+ clientId: config.clientId ?? process.env.GITHUB_CLIENT_ID,
1867
+ clientSecret: config.clientSecret ?? process.env.GITHUB_CLIENT_SECRET,
1865
1868
  scopes: config.scopes || ["repo", "user"],
1866
1869
  redirectUri: config.redirectUri,
1867
1870
  config: {
@@ -1888,11 +1891,11 @@ var GMAIL_TOOLS = [
1888
1891
  "gmail_get_message",
1889
1892
  "gmail_search_messages"
1890
1893
  ];
1891
- function gmailPlugin(config) {
1894
+ function gmailPlugin(config = {}) {
1892
1895
  const oauth = {
1893
1896
  provider: "gmail",
1894
- clientId: config.clientId,
1895
- clientSecret: config.clientSecret,
1897
+ clientId: config.clientId ?? process.env.GMAIL_CLIENT_ID,
1898
+ clientSecret: config.clientSecret ?? process.env.GMAIL_CLIENT_SECRET,
1896
1899
  scopes: config.scopes || [
1897
1900
  "https://www.googleapis.com/auth/gmail.send",
1898
1901
  "https://www.googleapis.com/auth/gmail.readonly",
@@ -1916,10 +1919,11 @@ function gmailPlugin(config) {
1916
1919
  }
1917
1920
  // src/plugins/generic.ts
1918
1921
  function genericOAuthPlugin(config) {
1922
+ const providerUpper = config.provider.toUpperCase().replace(/[^A-Z0-9]/g, "_");
1919
1923
  const oauth = {
1920
1924
  provider: config.provider,
1921
- clientId: config.clientId,
1922
- clientSecret: config.clientSecret,
1925
+ clientId: config.clientId ?? process.env[`${providerUpper}_CLIENT_ID`],
1926
+ clientSecret: config.clientSecret ?? process.env[`${providerUpper}_CLIENT_SECRET`],
1923
1927
  scopes: config.scopes,
1924
1928
  redirectUri: config.redirectUri,
1925
1929
  config
@@ -1985,7 +1989,10 @@ function createMCPServer(config) {
1985
1989
  }
1986
1990
  return plugin;
1987
1991
  });
1988
- globalServerConfig = { providers };
1992
+ globalServerConfig = {
1993
+ providers,
1994
+ serverUrl: config.serverUrl
1995
+ };
1989
1996
  const clientConfig = {
1990
1997
  ...config,
1991
1998
  plugins: updatedPlugins,
@@ -1993,8 +2000,17 @@ function createMCPServer(config) {
1993
2000
  singleton: config.singleton ?? true
1994
2001
  };
1995
2002
  const client = new MCPClient(clientConfig);
1996
- client.__oauthConfig = { providers };
1997
- const { POST, GET } = createOAuthRouteHandlers({ providers });
2003
+ if (config.apiKey) {
2004
+ client.setRequestHeader("X-API-KEY", config.apiKey);
2005
+ }
2006
+ client.__oauthConfig = {
2007
+ providers,
2008
+ serverUrl: config.serverUrl
2009
+ };
2010
+ const { POST, GET } = createOAuthRouteHandlers({
2011
+ providers,
2012
+ serverUrl: config.serverUrl
2013
+ });
1998
2014
  return {
1999
2015
  client,
2000
2016
  POST,
@@ -16,6 +16,11 @@ export interface OAuthHandlerConfig {
16
16
  /** Optional redirect URI override */
17
17
  redirectUri?: string;
18
18
  }>;
19
+ /**
20
+ * MCP Server URL
21
+ * @default 'https://mcp.integrate.dev/api/v1/mcp'
22
+ */
23
+ serverUrl?: string;
19
24
  }
20
25
  /**
21
26
  * Request body for authorize endpoint
@@ -1 +1 @@
1
- {"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/adapters/base-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QACxB,iDAAiD;QACjD,QAAQ,EAAE,MAAM,CAAC;QACjB,qDAAqD;QACrD,YAAY,EAAE,MAAM,CAAC;QACrB,qCAAqC;QACrC,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,qBAAa,YAAY;IAGX,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;gBAExB,MAAM,EAAE,kBAAkB;IAO9C;;;;;;;;;OASG;IACG,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0C5E;;;;;;;;;OASG;IACG,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA2CzE;;;;;;;;;OASG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA4BlF;;;;;;;;;;OAUG;IACG,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA2BrG"}
1
+ {"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/adapters/base-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QACxB,iDAAiD;QACjD,QAAQ,EAAE,MAAM,CAAC;QACjB,qDAAqD;QACrD,YAAY,EAAE,MAAM,CAAC;QACrB,qCAAqC;QACrC,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,qBAAa,YAAY;IAGX,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEf,MAAM,EAAE,kBAAkB;IAU9C;;;;;;;;;OASG;IACG,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0C5E;;;;;;;;;OASG;IACG,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA2CzE;;;;;;;;;OASG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA4BlF;;;;;;;;;;OAUG;IACG,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA2BrG"}
@@ -141,6 +141,12 @@ export declare class MCPClient<TPlugins extends readonly MCPPlugin[] = readonly
141
141
  * Get all available tools
142
142
  */
143
143
  getAvailableTools(): MCPTool[];
144
+ /**
145
+ * Set a custom HTTP header for all requests to the MCP server
146
+ *
147
+ * @internal Used by createMCPServer() to set the API key header
148
+ */
149
+ setRequestHeader(key: string, value: string): void;
144
150
  /**
145
151
  * Get all enabled tools (filtered by plugins)
146
152
  */
@@ -391,22 +397,21 @@ export declare class MCPClient<TPlugins extends readonly MCPPlugin[] = readonly
391
397
  reauthenticate(provider: string): Promise<boolean>;
392
398
  }
393
399
  /**
394
- * Create a new MCP Client instance
400
+ * Create a new MCP Client instance (CLIENT-SIDE)
395
401
  *
396
402
  * By default, uses singleton pattern and lazy connection:
397
403
  * - Returns cached instance if one exists with same configuration
398
404
  * - Automatically connects on first method call
399
405
  * - Automatically cleans up on process exit
400
406
  *
401
- * **Required**: customerId must be provided for usage tracking and billing.
407
+ * ⚠️ For server-side usage with API key, use createMCPServer() instead.
402
408
  *
403
409
  * @example
404
410
  * ```typescript
405
- * // Lazy connection (default) - connects automatically on first use
411
+ * // Client-side usage (no API key)
406
412
  * const client = createMCPClient({
407
- * customerId: 'cust_abc123', // REQUIRED for usage tracking
408
413
  * plugins: [
409
- * githubPlugin({ clientId: '...', clientSecret: '...' }),
414
+ * githubPlugin({ clientId: process.env.NEXT_PUBLIC_GITHUB_CLIENT_ID }),
410
415
  * ],
411
416
  * });
412
417
  *
@@ -420,8 +425,7 @@ export declare class MCPClient<TPlugins extends readonly MCPPlugin[] = readonly
420
425
  * ```typescript
421
426
  * // Manual connection mode (original behavior)
422
427
  * const client = createMCPClient({
423
- * customerId: 'cust_abc123', // REQUIRED
424
- * plugins: [githubPlugin({ ... })],
428
+ * plugins: [githubPlugin({ clientId: '...' })],
425
429
  * connectionMode: 'manual',
426
430
  * singleton: false,
427
431
  * });
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,37 @@ export interface ReauthContext {
21
21
  * Should return true if re-authentication was successful, false otherwise
22
22
  */
23
23
  export type ReauthHandler = (context: ReauthContext) => Promise<boolean> | boolean;
24
+ /**
25
+ * Server-side configuration (extends client config with API key)
26
+ *
27
+ * API key is only available server-side for security reasons.
28
+ */
29
+ export interface MCPServerConfig<TPlugins extends readonly MCPPlugin[]> extends MCPClientConfig<TPlugins> {
30
+ /**
31
+ * API Key for authentication and usage tracking (SERVER-SIDE ONLY)
32
+ * Sent as X-API-KEY header to the MCP server for tracking API usage
33
+ * Used by Polar.sh for usage-based billing
34
+ *
35
+ * ⚠️ SECURITY: Never expose this in client-side code or environment variables
36
+ * prefixed with NEXT_PUBLIC_ or similar. This should only be used server-side.
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * // ✅ CORRECT - Server-side only
41
+ * createMCPServer({
42
+ * apiKey: process.env.INTEGRATE_API_KEY, // No NEXT_PUBLIC_ prefix
43
+ * plugins: [...]
44
+ * })
45
+ *
46
+ * // ❌ WRONG - Never do this
47
+ * createMCPClient({
48
+ * apiKey: process.env.NEXT_PUBLIC_INTEGRATE_API_KEY, // Exposed to browser!
49
+ * plugins: [...]
50
+ * })
51
+ * ```
52
+ */
53
+ apiKey?: string;
54
+ }
24
55
  /**
25
56
  * Main client configuration
26
57
  */
@@ -28,21 +59,20 @@ export interface MCPClientConfig<TPlugins extends readonly MCPPlugin[]> {
28
59
  /** Array of plugins to enable */
29
60
  plugins: TPlugins;
30
61
  /**
31
- * Customer ID for usage tracking (REQUIRED)
32
- * Sent as X-Customer-ID header to the MCP server for tracking API usage
33
- * Used by Polar.sh for usage-based billing
62
+ * MCP Server URL
34
63
  *
35
- * This field is required to ensure all usage is properly tracked and billed.
64
+ * @default 'https://mcp.integrate.dev/api/v1/mcp'
36
65
  *
37
66
  * @example
38
67
  * ```typescript
68
+ * // For local development
39
69
  * createMCPClient({
40
- * customerId: 'cust_xyz789',
41
- * plugins: [...]
70
+ * serverUrl: 'http://localhost:8080/api/v1/mcp',
71
+ * plugins: [githubPlugin({ ... })]
42
72
  * })
43
73
  * ```
44
74
  */
45
- customerId: string;
75
+ serverUrl?: string;
46
76
  /** Optional HTTP headers to include in requests */
47
77
  headers?: Record<string, string>;
48
78
  /** Request timeout in milliseconds (default: 30000) */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,KAAK,EAAE,mBAAmB,CAAC;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAEnF;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,QAAQ,SAAS,SAAS,SAAS,EAAE;IACpE,iCAAiC;IACjC,OAAO,EAAE,QAAQ,CAAC;IAElB;;;;;;;;;;;;;;OAcG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,yBAAyB;IACzB,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF;;;;;;;;;;;;;;;;;;;OAmBG;IACH,gBAAgB,CAAC,EAAE,aAAa,CAAC;IAEjC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAE7C;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,EAAE;QACV,+DAA+D;QAC/D,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;QAC5B,oDAAoD;QACpD,YAAY,CAAC,EAAE;YACb,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,sDAAsD;QACtD,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACnF,CAAC;IAEF;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;;;;;;;;;OAaG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,QAAQ,SAAS,SAAS,SAAS,EAAE,IACjE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpC;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,QAAQ,SAAS,SAAS,SAAS,EAAE,IAAI;KACnE,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;CAC9C,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"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"}
@@ -11,10 +11,10 @@ export interface GenericOAuthPluginConfig {
11
11
  id: string;
12
12
  /** OAuth provider name */
13
13
  provider: string;
14
- /** OAuth client ID */
15
- clientId: string;
16
- /** OAuth client secret */
17
- clientSecret: string;
14
+ /** OAuth client ID (defaults to {PROVIDER}_CLIENT_ID env var) */
15
+ clientId?: string;
16
+ /** OAuth client secret (defaults to {PROVIDER}_CLIENT_SECRET env var) */
17
+ clientSecret?: string;
18
18
  /** OAuth scopes */
19
19
  scopes: string[];
20
20
  /** Tool names to enable from the server (must exist on the server) */
@@ -37,14 +37,15 @@ export interface GenericOAuthPluginConfig {
37
37
  * Note: This does NOT create new tools - it only configures access to existing server-side tools.
38
38
  * All tools must be implemented on the server and exposed via the MCP protocol.
39
39
  *
40
- * @example
40
+ * By default, reads {PROVIDER}_CLIENT_ID and {PROVIDER}_CLIENT_SECRET from environment variables
41
+ * (e.g., SLACK_CLIENT_ID, SLACK_CLIENT_SECRET). You can override these by providing explicit values.
42
+ *
43
+ * @example Minimal (uses env vars):
41
44
  * ```typescript
42
- * // Configure Slack integration (assuming server supports Slack tools)
45
+ * // Automatically uses SLACK_CLIENT_ID and SLACK_CLIENT_SECRET from env
43
46
  * const slackPlugin = genericOAuthPlugin({
44
47
  * id: 'slack',
45
48
  * provider: 'slack',
46
- * clientId: process.env.SLACK_CLIENT_ID!,
47
- * clientSecret: process.env.SLACK_CLIENT_SECRET!,
48
49
  * scopes: ['chat:write', 'channels:read'],
49
50
  * tools: [
50
51
  * 'slack_send_message', // Must exist on server
@@ -60,6 +61,18 @@ export interface GenericOAuthPluginConfig {
60
61
  * // Call server tools using _callToolByName
61
62
  * await client._callToolByName('slack_send_message', { channel: '#general', text: 'Hello' });
62
63
  * ```
64
+ *
65
+ * @example With explicit override:
66
+ * ```typescript
67
+ * const slackPlugin = genericOAuthPlugin({
68
+ * id: 'slack',
69
+ * provider: 'slack',
70
+ * clientId: process.env.CUSTOM_SLACK_ID!,
71
+ * clientSecret: process.env.CUSTOM_SLACK_SECRET!,
72
+ * scopes: ['chat:write', 'channels:read'],
73
+ * tools: ['slack_send_message', 'slack_list_channels'],
74
+ * });
75
+ * ```
63
76
  */
64
77
  export declare function genericOAuthPlugin(config: GenericOAuthPluginConfig): MCPPlugin;
65
78
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../../src/plugins/generic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,6EAA6E;IAC7E,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,sEAAsE;IACtE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,uCAAuC;IACvC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/C,sCAAsC;IACtC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvD,mCAAmC;IACnC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,wBAAwB,GAC/B,SAAS,CAmBX;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACtD,GAAG,SAAS,CAQZ"}
1
+ {"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../../src/plugins/generic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,6EAA6E;IAC7E,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,sEAAsE;IACtE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,uCAAuC;IACvC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/C,sCAAsC;IACtC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvD,mCAAmC;IACnC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,wBAAwB,GAC/B,SAAS,CAqBX;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACtD,GAAG,SAAS,CAQZ"}
@@ -6,13 +6,14 @@ import type { MCPPlugin } from "./types.js";
6
6
  /**
7
7
  * GitHub plugin configuration
8
8
  *
9
- * SERVER-SIDE: Include clientId and clientSecret when using createMCPServer()
9
+ * SERVER-SIDE: Automatically reads GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET from environment.
10
+ * You can override by providing explicit clientId and clientSecret values.
10
11
  * CLIENT-SIDE: Omit clientId and clientSecret when using createMCPClient()
11
12
  */
12
13
  export interface GitHubPluginConfig {
13
- /** GitHub OAuth client ID (required on server, omit on client) */
14
+ /** GitHub OAuth client ID (defaults to GITHUB_CLIENT_ID env var) */
14
15
  clientId?: string;
15
- /** GitHub OAuth client secret (required on server, omit on client) */
16
+ /** GitHub OAuth client secret (defaults to GITHUB_CLIENT_SECRET env var) */
16
17
  clientSecret?: string;
17
18
  /** Additional OAuth scopes (default: ['repo', 'user']) */
18
19
  scopes?: string[];
@@ -29,17 +30,34 @@ declare const GITHUB_TOOLS: readonly ["github_create_issue", "github_list_issues
29
30
  /**
30
31
  * GitHub Plugin
31
32
  *
32
- * Enables GitHub integration with OAuth authentication
33
+ * Enables GitHub integration with OAuth authentication.
33
34
  *
34
- * @example Server-side (with secrets):
35
+ * By default, reads GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET from environment variables.
36
+ * You can override these by providing explicit values in the config.
37
+ *
38
+ * @example Server-side (minimal - uses env vars):
39
+ * ```typescript
40
+ * import { createMCPServer, githubPlugin } from 'integrate-sdk/server';
41
+ *
42
+ * // Automatically uses GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET from env
43
+ * export const { client } = createMCPServer({
44
+ * plugins: [
45
+ * githubPlugin({
46
+ * scopes: ['repo', 'user', 'read:org'],
47
+ * }),
48
+ * ],
49
+ * });
50
+ * ```
51
+ *
52
+ * @example Server-side (with explicit override):
35
53
  * ```typescript
36
54
  * import { createMCPServer, githubPlugin } from 'integrate-sdk/server';
37
55
  *
38
56
  * export const { client } = createMCPServer({
39
57
  * plugins: [
40
58
  * githubPlugin({
41
- * clientId: process.env.GITHUB_CLIENT_ID!,
42
- * clientSecret: process.env.GITHUB_CLIENT_SECRET!,
59
+ * clientId: process.env.CUSTOM_GITHUB_ID!,
60
+ * clientSecret: process.env.CUSTOM_GITHUB_SECRET!,
43
61
  * scopes: ['repo', 'user', 'read:org'],
44
62
  * }),
45
63
  * ],
@@ -59,7 +77,7 @@ declare const GITHUB_TOOLS: readonly ["github_create_issue", "github_list_issues
59
77
  * });
60
78
  * ```
61
79
  */
62
- export declare function githubPlugin(config: GitHubPluginConfig): MCPPlugin;
80
+ export declare function githubPlugin(config?: GitHubPluginConfig): MCPPlugin;
63
81
  /**
64
82
  * Export tool names for type inference
65
83
  */
@@ -1 +1 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../src/plugins/github.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,QAAA,MAAM,YAAY,kbAmBR,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,SAAS,CA0BlE;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAEtD;;GAEG;AACH,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../src/plugins/github.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,QAAA,MAAM,YAAY,kbAmBR,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,wBAAgB,YAAY,CAAC,MAAM,GAAE,kBAAuB,GAAG,SAAS,CA0BvE;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAEtD;;GAEG;AACH,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -6,13 +6,14 @@ import type { MCPPlugin } from "./types.js";
6
6
  /**
7
7
  * Gmail plugin configuration
8
8
  *
9
- * SERVER-SIDE: Include clientId and clientSecret when using createMCPServer()
9
+ * SERVER-SIDE: Automatically reads GMAIL_CLIENT_ID and GMAIL_CLIENT_SECRET from environment.
10
+ * You can override by providing explicit clientId and clientSecret values.
10
11
  * CLIENT-SIDE: Omit clientId and clientSecret when using createMCPClient()
11
12
  */
12
13
  export interface GmailPluginConfig {
13
- /** Google OAuth client ID (required on server, omit on client) */
14
+ /** Google OAuth client ID (defaults to GMAIL_CLIENT_ID env var) */
14
15
  clientId?: string;
15
- /** Google OAuth client secret (required on server, omit on client) */
16
+ /** Google OAuth client secret (defaults to GMAIL_CLIENT_SECRET env var) */
16
17
  clientSecret?: string;
17
18
  /** Additional OAuth scopes (default: Gmail API scopes) */
18
19
  scopes?: string[];
@@ -27,17 +28,34 @@ declare const GMAIL_TOOLS: readonly ["gmail_send_message", "gmail_list_messages"
27
28
  /**
28
29
  * Gmail Plugin
29
30
  *
30
- * Enables Gmail integration with OAuth authentication
31
+ * Enables Gmail integration with OAuth authentication.
31
32
  *
32
- * @example Server-side (with secrets):
33
+ * By default, reads GMAIL_CLIENT_ID and GMAIL_CLIENT_SECRET from environment variables.
34
+ * You can override these by providing explicit values in the config.
35
+ *
36
+ * @example Server-side (minimal - uses env vars):
37
+ * ```typescript
38
+ * import { createMCPServer, gmailPlugin } from 'integrate-sdk/server';
39
+ *
40
+ * // Automatically uses GMAIL_CLIENT_ID and GMAIL_CLIENT_SECRET from env
41
+ * export const { client } = createMCPServer({
42
+ * plugins: [
43
+ * gmailPlugin({
44
+ * scopes: ['gmail.send', 'gmail.readonly'],
45
+ * }),
46
+ * ],
47
+ * });
48
+ * ```
49
+ *
50
+ * @example Server-side (with explicit override):
33
51
  * ```typescript
34
52
  * import { createMCPServer, gmailPlugin } from 'integrate-sdk/server';
35
53
  *
36
54
  * export const { client } = createMCPServer({
37
55
  * plugins: [
38
56
  * gmailPlugin({
39
- * clientId: process.env.GMAIL_CLIENT_ID!,
40
- * clientSecret: process.env.GMAIL_CLIENT_SECRET!,
57
+ * clientId: process.env.CUSTOM_GMAIL_ID!,
58
+ * clientSecret: process.env.CUSTOM_GMAIL_SECRET!,
41
59
  * scopes: ['gmail.send', 'gmail.readonly'],
42
60
  * }),
43
61
  * ],
@@ -57,7 +75,7 @@ declare const GMAIL_TOOLS: readonly ["gmail_send_message", "gmail_list_messages"
57
75
  * });
58
76
  * ```
59
77
  */
60
- export declare function gmailPlugin(config: GmailPluginConfig): MCPPlugin;
78
+ export declare function gmailPlugin(config?: GmailPluginConfig): MCPPlugin;
61
79
  /**
62
80
  * Export tool names for type inference
63
81
  */
@@ -1 +1 @@
1
- {"version":3,"file":"gmail.d.ts","sourceRoot":"","sources":["../../../src/plugins/gmail.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,QAAA,MAAM,WAAW,sGAKP,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,CA4BhE;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAEpD;;GAEG;AACH,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"gmail.d.ts","sourceRoot":"","sources":["../../../src/plugins/gmail.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,QAAA,MAAM,WAAW,sGAKP,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,wBAAgB,WAAW,CAAC,MAAM,GAAE,iBAAsB,GAAG,SAAS,CA4BrE;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAEpD;;GAEG;AACH,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -3,27 +3,28 @@
3
3
  * Use this for server-side configuration with OAuth secrets
4
4
  */
5
5
  import { MCPClient } from './client.js';
6
- import type { MCPClientConfig } from './config/types.js';
6
+ import type { MCPServerConfig } from './config/types.js';
7
7
  import type { MCPPlugin } from './plugins/types.js';
8
8
  /**
9
- * Create MCP Server instance with OAuth secrets
9
+ * Create MCP Server instance with OAuth secrets (SERVER-SIDE ONLY)
10
10
  *
11
- * This is for SERVER-SIDE ONLY - includes OAuth secrets from environment variables.
11
+ * This is for SERVER-SIDE ONLY - includes OAuth secrets and API key from environment variables.
12
12
  * Use this in your server configuration file (e.g., lib/integrate-server.ts)
13
13
  *
14
14
  * The redirectUri can be specified globally and will be used for all plugins.
15
15
  * If not provided, it will auto-detect from INTEGRATE_URL or VERCEL_URL
16
16
  *
17
- * **Required**: customerId must be provided for usage tracking and billing.
17
+ * ⚠️ SECURITY: The API key should NEVER be exposed to client-side code.
18
+ * Use environment variables WITHOUT the NEXT_PUBLIC_ prefix.
18
19
  *
19
20
  * @example
20
21
  * ```typescript
21
22
  * // lib/integrate-server.ts (server-side only!)
22
23
  * import { createMCPServer, githubPlugin, gmailPlugin } from 'integrate-sdk/server';
23
24
  *
24
- * // With explicit redirectUri
25
+ * // CORRECT - Server-side only, API key from secure env var
25
26
  * export const { client: serverClient } = createMCPServer({
26
- * customerId: 'cust_server_internal', // REQUIRED for usage tracking
27
+ * apiKey: process.env.INTEGRATE_API_KEY, // No NEXT_PUBLIC_ prefix
27
28
  * redirectUri: process.env.INTEGRATE_URL
28
29
  * ? `${process.env.INTEGRATE_URL}/oauth/callback`
29
30
  * : 'http://localhost:3000/api/integrate/oauth/callback',
@@ -40,18 +41,6 @@ import type { MCPPlugin } from './plugins/types.js';
40
41
  * }),
41
42
  * ],
42
43
  * });
43
- *
44
- * // Or omit redirectUri to use auto-detection from environment variables
45
- * export const { client: serverClient } = createMCPServer({
46
- * customerId: 'cust_server_internal', // REQUIRED
47
- * plugins: [
48
- * githubPlugin({
49
- * clientId: process.env.GITHUB_CLIENT_ID!,
50
- * clientSecret: process.env.GITHUB_CLIENT_SECRET!,
51
- * scopes: ['repo', 'user'],
52
- * }),
53
- * ],
54
- * });
55
44
  * ```
56
45
  *
57
46
  * Then in your route file:
@@ -60,7 +49,7 @@ import type { MCPPlugin } from './plugins/types.js';
60
49
  * export { POST, GET } from 'integrate-sdk/server';
61
50
  * ```
62
51
  */
63
- export declare function createMCPServer<TPlugins extends readonly MCPPlugin[]>(config: MCPClientConfig<TPlugins>): {
52
+ export declare function createMCPServer<TPlugins extends readonly MCPPlugin[]>(config: MCPServerConfig<TPlugins>): {
64
53
  /** Server-side MCP client instance with auto-connection */
65
54
  client: MCPClient<TPlugins>;
66
55
  /** OAuth POST handler - export this from your route file */
@@ -184,6 +173,7 @@ export declare function toNextJsHandler(options: {
184
173
  clientSecret: string;
185
174
  redirectUri?: string;
186
175
  }>;
176
+ serverUrl?: string;
187
177
  };
188
178
  /** URL to redirect to after successful OAuth */
189
179
  redirectUrl?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAyCpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,wBAAgB,eAAe,CAAC,QAAQ,SAAS,SAAS,SAAS,EAAE,EACnE,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC;IAsE/B,2DAA2D;;IAG3D,4DAA4D;;;;;;;;IAG5D,2DAA2D;;;;;;;;EAG9D;AAYD,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE9E;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,IAAI,GACf,KAAK,GAAG,EACR,SAAS;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,iBAYtE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,GAAG,GACd,KAAK,GAAG,EACR,SAAS;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,iBAYtE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,kFAAkF;IAClF,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,mDAAmD;IACnD,MAAM,CAAC,EAAE;QACP,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;YACxB,QAAQ,EAAE,MAAM,CAAC;YACjB,YAAY,EAAE,MAAM,CAAC;YACrB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC,CAAC;KACJ,CAAC;IACF,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;gBAMQ,GAAG,WACC;QAAE,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,EAAE,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,GAAG,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE;eAwB9D,GAAG,WACC;QAAE,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,EAAE,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,GAAG,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE;EAoBtE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AA0CpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,eAAe,CAAC,QAAQ,SAAS,SAAS,SAAS,EAAE,EACnE,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC;IAoF/B,2DAA2D;;IAG3D,4DAA4D;;;;;;;;IAG5D,2DAA2D;;;;;;;;EAG9D;AAYD,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE9E;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,IAAI,GACf,KAAK,GAAG,EACR,SAAS;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,iBAYtE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,GAAG,GACd,KAAK,GAAG,EACR,SAAS;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,iBAYtE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,kFAAkF;IAClF,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,mDAAmD;IACnD,MAAM,CAAC,EAAE;QACP,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;YACxB,QAAQ,EAAE,MAAM,CAAC;YACjB,YAAY,EAAE,MAAM,CAAC;YACrB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC,CAAC;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;gBAMQ,GAAG,WACC;QAAE,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,EAAE,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,GAAG,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE;eAwB9D,GAAG,WACC;QAAE,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,EAAE,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,GAAG,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE;EAoBtE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "integrate-sdk",
3
- "version": "0.6.1",
3
+ "version": "0.6.4",
4
4
  "description": "Type-safe TypeScript SDK for MCP Client with plugin-based OAuth provider configuration",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -16,20 +16,20 @@
16
16
  "homepage": "https://github.com/Revyo/integrate-sdk#readme",
17
17
  "exports": {
18
18
  ".": {
19
- "import": "./dist/index.js",
20
- "types": "./dist/index.d.ts"
19
+ "types": "./dist/index.d.ts",
20
+ "import": "./dist/index.js"
21
21
  },
22
22
  "./server": {
23
- "import": "./dist/server.js",
24
- "types": "./dist/server.d.ts"
23
+ "types": "./dist/server.d.ts",
24
+ "import": "./dist/server.js"
25
25
  },
26
26
  "./oauth": {
27
- "import": "./dist/oauth.js",
28
- "types": "./dist/oauth.d.ts"
27
+ "types": "./dist/oauth.d.ts",
28
+ "import": "./dist/oauth.js"
29
29
  },
30
30
  "./react": {
31
- "import": "./dist/react.js",
32
- "types": "./dist/react.d.ts"
31
+ "types": "./dist/react.d.ts",
32
+ "import": "./dist/react.js"
33
33
  }
34
34
  },
35
35
  "files": [