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 +5 -7
- package/dist/index.js +15 -11
- package/dist/oauth.js +2 -1
- package/dist/react.d.ts +8 -0
- package/dist/react.d.ts.map +1 -0
- package/dist/server.js +30 -14
- package/dist/src/adapters/base-handler.d.ts +5 -0
- package/dist/src/adapters/base-handler.d.ts.map +1 -1
- package/dist/src/client.d.ts +11 -7
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/config/types.d.ts +37 -7
- package/dist/src/config/types.d.ts.map +1 -1
- package/dist/src/plugins/generic.d.ts +21 -8
- package/dist/src/plugins/generic.d.ts.map +1 -1
- package/dist/src/plugins/github.d.ts +26 -8
- package/dist/src/plugins/github.d.ts.map +1 -1
- package/dist/src/plugins/gmail.d.ts +26 -8
- package/dist/src/plugins/gmail.d.ts.map +1 -1
- package/dist/src/server.d.ts +9 -19
- package/dist/src/server.d.ts.map +1 -1
- package/package.json +9 -9
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
|
|
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
|
|
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];
|
package/dist/react.d.ts
ADDED
|
@@ -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
|
|
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 = {
|
|
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
|
-
|
|
1997
|
-
|
|
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;
|
|
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"}
|
package/dist/src/client.d.ts
CHANGED
|
@@ -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
|
-
*
|
|
407
|
+
* ⚠️ For server-side usage with API key, use createMCPServer() instead.
|
|
402
408
|
*
|
|
403
409
|
* @example
|
|
404
410
|
* ```typescript
|
|
405
|
-
* //
|
|
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:
|
|
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
|
-
*
|
|
424
|
-
* plugins: [githubPlugin({ ... })],
|
|
428
|
+
* plugins: [githubPlugin({ clientId: '...' })],
|
|
425
429
|
* connectionMode: 'manual',
|
|
426
430
|
* singleton: false,
|
|
427
431
|
* });
|
package/dist/src/client.d.ts.map
CHANGED
|
@@ -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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
41
|
-
* plugins: [...]
|
|
70
|
+
* serverUrl: 'http://localhost:8080/api/v1/mcp',
|
|
71
|
+
* plugins: [githubPlugin({ ... })]
|
|
42
72
|
* })
|
|
43
73
|
* ```
|
|
44
74
|
*/
|
|
45
|
-
|
|
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
|
|
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
|
|
16
|
-
/** OAuth client secret */
|
|
17
|
-
clientSecret
|
|
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
|
-
*
|
|
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
|
-
* //
|
|
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,
|
|
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:
|
|
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 (
|
|
14
|
+
/** GitHub OAuth client ID (defaults to GITHUB_CLIENT_ID env var) */
|
|
14
15
|
clientId?: string;
|
|
15
|
-
/** GitHub OAuth client secret (
|
|
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
|
-
*
|
|
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.
|
|
42
|
-
* clientSecret: process.env.
|
|
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
|
|
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
|
|
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:
|
|
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 (
|
|
14
|
+
/** Google OAuth client ID (defaults to GMAIL_CLIENT_ID env var) */
|
|
14
15
|
clientId?: string;
|
|
15
|
-
/** Google OAuth client secret (
|
|
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
|
-
*
|
|
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.
|
|
40
|
-
* clientSecret: process.env.
|
|
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
|
|
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
|
|
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"}
|
package/dist/src/server.d.ts
CHANGED
|
@@ -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 {
|
|
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
|
-
*
|
|
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
|
-
* //
|
|
25
|
+
* // ✅ CORRECT - Server-side only, API key from secure env var
|
|
25
26
|
* export const { client: serverClient } = createMCPServer({
|
|
26
|
-
*
|
|
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:
|
|
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;
|
package/dist/src/server.d.ts.map
CHANGED
|
@@ -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;
|
|
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.
|
|
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
|
-
"
|
|
20
|
-
"
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"import": "./dist/index.js"
|
|
21
21
|
},
|
|
22
22
|
"./server": {
|
|
23
|
-
"
|
|
24
|
-
"
|
|
23
|
+
"types": "./dist/server.d.ts",
|
|
24
|
+
"import": "./dist/server.js"
|
|
25
25
|
},
|
|
26
26
|
"./oauth": {
|
|
27
|
-
"
|
|
28
|
-
"
|
|
27
|
+
"types": "./dist/oauth.d.ts",
|
|
28
|
+
"import": "./dist/oauth.js"
|
|
29
29
|
},
|
|
30
30
|
"./react": {
|
|
31
|
-
"
|
|
32
|
-
"
|
|
31
|
+
"types": "./dist/react.d.ts",
|
|
32
|
+
"import": "./dist/react.js"
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
"files": [
|