integrate-sdk 0.4.6 → 0.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/server.js +36 -3
- package/dist/src/config/types.d.ts +14 -0
- package/dist/src/config/types.d.ts.map +1 -1
- package/dist/src/server.d.ts +48 -2
- package/dist/src/server.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
package/dist/server.js
CHANGED
|
@@ -1737,7 +1737,7 @@ var GMAIL_TOOLS = [
|
|
|
1737
1737
|
];
|
|
1738
1738
|
function gmailPlugin(config) {
|
|
1739
1739
|
const oauth = {
|
|
1740
|
-
provider: "
|
|
1740
|
+
provider: "gmail",
|
|
1741
1741
|
clientId: config.clientId,
|
|
1742
1742
|
clientSecret: config.clientSecret,
|
|
1743
1743
|
scopes: config.scopes || [
|
|
@@ -1791,6 +1791,19 @@ function createSimplePlugin(config) {
|
|
|
1791
1791
|
}
|
|
1792
1792
|
|
|
1793
1793
|
// src/server.ts
|
|
1794
|
+
var globalServerConfig = null;
|
|
1795
|
+
function getDefaultRedirectUri() {
|
|
1796
|
+
if (typeof window !== "undefined") {
|
|
1797
|
+
return `${window.location.origin}/oauth/callback`;
|
|
1798
|
+
}
|
|
1799
|
+
if (process.env.VERCEL_URL) {
|
|
1800
|
+
return `https://${process.env.VERCEL_URL}/oauth/callback`;
|
|
1801
|
+
}
|
|
1802
|
+
if (process.env.NEXTAUTH_URL) {
|
|
1803
|
+
return `${process.env.NEXTAUTH_URL}/oauth/callback`;
|
|
1804
|
+
}
|
|
1805
|
+
return "http://localhost:3000/oauth/callback";
|
|
1806
|
+
}
|
|
1794
1807
|
function createMCPServer(config) {
|
|
1795
1808
|
if (typeof window !== "undefined") {
|
|
1796
1809
|
throw new Error("createMCPServer() should only be called on the server-side. " + "Use createMCPClient() for client-side code.");
|
|
@@ -1798,11 +1811,12 @@ function createMCPServer(config) {
|
|
|
1798
1811
|
const providers = {};
|
|
1799
1812
|
for (const plugin of config.plugins) {
|
|
1800
1813
|
if (plugin.oauth) {
|
|
1801
|
-
const { clientId, clientSecret, redirectUri } = plugin.oauth;
|
|
1814
|
+
const { clientId, clientSecret, redirectUri: pluginRedirectUri } = plugin.oauth;
|
|
1802
1815
|
if (!clientId || !clientSecret) {
|
|
1803
1816
|
console.warn(`Warning: Plugin "${plugin.id}" is missing OAuth credentials. ` + `Provide clientId and clientSecret in the plugin configuration.`);
|
|
1804
1817
|
continue;
|
|
1805
1818
|
}
|
|
1819
|
+
const redirectUri = pluginRedirectUri || config.redirectUri || getDefaultRedirectUri();
|
|
1806
1820
|
providers[plugin.id] = {
|
|
1807
1821
|
clientId,
|
|
1808
1822
|
clientSecret,
|
|
@@ -1810,6 +1824,7 @@ function createMCPServer(config) {
|
|
|
1810
1824
|
};
|
|
1811
1825
|
}
|
|
1812
1826
|
}
|
|
1827
|
+
globalServerConfig = { providers };
|
|
1813
1828
|
const client = new MCPClient(config);
|
|
1814
1829
|
const { POST, GET } = createOAuthRouteHandlers({ providers });
|
|
1815
1830
|
return {
|
|
@@ -1822,10 +1837,28 @@ function createOAuthRouteHandlers(config) {
|
|
|
1822
1837
|
const handler = createNextOAuthHandler(config);
|
|
1823
1838
|
return handler.createRoutes();
|
|
1824
1839
|
}
|
|
1840
|
+
var POST = async (req, context) => {
|
|
1841
|
+
if (!globalServerConfig) {
|
|
1842
|
+
return Response.json({ error: "OAuth not configured. Call createMCPServer() in your server initialization file first." }, { status: 500 });
|
|
1843
|
+
}
|
|
1844
|
+
const handler = createNextOAuthHandler(globalServerConfig);
|
|
1845
|
+
const routes = handler.createRoutes();
|
|
1846
|
+
return routes.POST(req, context);
|
|
1847
|
+
};
|
|
1848
|
+
var GET = async (req, context) => {
|
|
1849
|
+
if (!globalServerConfig) {
|
|
1850
|
+
return Response.json({ error: "OAuth not configured. Call createMCPServer() in your server initialization file first." }, { status: 500 });
|
|
1851
|
+
}
|
|
1852
|
+
const handler = createNextOAuthHandler(globalServerConfig);
|
|
1853
|
+
const routes = handler.createRoutes();
|
|
1854
|
+
return routes.GET(req, context);
|
|
1855
|
+
};
|
|
1825
1856
|
export {
|
|
1826
1857
|
gmailPlugin,
|
|
1827
1858
|
githubPlugin,
|
|
1828
1859
|
genericOAuthPlugin,
|
|
1829
1860
|
createSimplePlugin,
|
|
1830
|
-
createMCPServer
|
|
1861
|
+
createMCPServer,
|
|
1862
|
+
POST,
|
|
1863
|
+
GET
|
|
1831
1864
|
};
|
|
@@ -163,6 +163,20 @@ export interface MCPClientConfig<TPlugins extends readonly MCPPlugin[]> {
|
|
|
163
163
|
* ```
|
|
164
164
|
*/
|
|
165
165
|
autoHandleOAuthCallback?: boolean;
|
|
166
|
+
/**
|
|
167
|
+
* Global OAuth redirect URI for all providers
|
|
168
|
+
* Used as fallback when individual plugins don't specify their own redirectUri
|
|
169
|
+
* If not provided, will auto-detect from VERCEL_URL or NEXTAUTH_URL
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```typescript
|
|
173
|
+
* createMCPServer({
|
|
174
|
+
* redirectUri: 'https://myapp.com/oauth/callback',
|
|
175
|
+
* plugins: [...]
|
|
176
|
+
* })
|
|
177
|
+
* ```
|
|
178
|
+
*/
|
|
179
|
+
redirectUri?: string;
|
|
166
180
|
}
|
|
167
181
|
/**
|
|
168
182
|
* Helper type to infer enabled tools from plugins
|
|
@@ -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,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;
|
|
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,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;;;;;;;;;;;;OAYG;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,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;CAC/C,CAAC"}
|
package/dist/src/server.d.ts
CHANGED
|
@@ -11,12 +11,18 @@ import type { MCPPlugin } from './plugins/types.js';
|
|
|
11
11
|
* This is for SERVER-SIDE ONLY - includes OAuth secrets from environment variables.
|
|
12
12
|
* Use this in your server configuration file (e.g., lib/integrate-server.ts)
|
|
13
13
|
*
|
|
14
|
+
* The redirectUri can be specified globally and will be used for all plugins.
|
|
15
|
+
* If not provided, it will auto-detect from VERCEL_URL or NEXTAUTH_URL.
|
|
16
|
+
*
|
|
14
17
|
* @example
|
|
15
18
|
* ```typescript
|
|
16
19
|
* // lib/integrate-server.ts (server-side only!)
|
|
17
20
|
* import { createMCPServer, githubPlugin, gmailPlugin } from 'integrate-sdk/server';
|
|
18
21
|
*
|
|
19
|
-
* export const { client: serverClient
|
|
22
|
+
* export const { client: serverClient } = createMCPServer({
|
|
23
|
+
* redirectUri: process.env.VERCEL_URL
|
|
24
|
+
* ? `https://${process.env.VERCEL_URL}/oauth/callback`
|
|
25
|
+
* : 'http://localhost:3000/oauth/callback',
|
|
20
26
|
* plugins: [
|
|
21
27
|
* githubPlugin({
|
|
22
28
|
* clientId: process.env.GITHUB_CLIENT_ID!,
|
|
@@ -35,7 +41,7 @@ import type { MCPPlugin } from './plugins/types.js';
|
|
|
35
41
|
* Then in your route file:
|
|
36
42
|
* ```typescript
|
|
37
43
|
* // app/api/integrate/oauth/[action]/route.ts
|
|
38
|
-
* export { POST, GET } from '
|
|
44
|
+
* export { POST, GET } from 'integrate-sdk/server';
|
|
39
45
|
* ```
|
|
40
46
|
*/
|
|
41
47
|
export declare function createMCPServer<TPlugins extends readonly MCPPlugin[]>(config: MCPClientConfig<TPlugins>): {
|
|
@@ -63,4 +69,44 @@ export type { MCPClientConfig } from './config/types.js';
|
|
|
63
69
|
export { githubPlugin } from './plugins/github.js';
|
|
64
70
|
export { gmailPlugin } from './plugins/gmail.js';
|
|
65
71
|
export { genericOAuthPlugin, createSimplePlugin } from './plugins/generic.js';
|
|
72
|
+
/**
|
|
73
|
+
* Singleton POST handler for OAuth routes
|
|
74
|
+
* Uses the configuration from createMCPServer()
|
|
75
|
+
*
|
|
76
|
+
* This handler must be used after calling createMCPServer() to register
|
|
77
|
+
* OAuth provider configuration.
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* // app/api/integrate/oauth/[action]/route.ts
|
|
82
|
+
* export { POST, GET } from 'integrate-sdk/server';
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export declare const POST: (req: any, context: {
|
|
86
|
+
params: {
|
|
87
|
+
action: string;
|
|
88
|
+
} | Promise<{
|
|
89
|
+
action: string;
|
|
90
|
+
}>;
|
|
91
|
+
}) => Promise<any>;
|
|
92
|
+
/**
|
|
93
|
+
* Singleton GET handler for OAuth routes
|
|
94
|
+
* Uses the configuration from createMCPServer()
|
|
95
|
+
*
|
|
96
|
+
* This handler must be used after calling createMCPServer() to register
|
|
97
|
+
* OAuth provider configuration.
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```typescript
|
|
101
|
+
* // app/api/integrate/oauth/[action]/route.ts
|
|
102
|
+
* export { POST, GET } from 'integrate-sdk/server';
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
export declare const GET: (req: any, context: {
|
|
106
|
+
params: {
|
|
107
|
+
action: string;
|
|
108
|
+
} | Promise<{
|
|
109
|
+
action: string;
|
|
110
|
+
}>;
|
|
111
|
+
}) => Promise<any>;
|
|
66
112
|
//# sourceMappingURL=server.d.ts.map
|
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;AAyCpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,eAAe,CAAC,QAAQ,SAAS,SAAS,SAAS,EAAE,EACnE,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC;IAkD/B,sCAAsC;;IAGtC,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"}
|