spiceflow 1.12.2 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +107 -4
- package/dist/_node-server-unsupported.js +1 -0
- package/dist/_node-server-unsupported.js.map +1 -0
- package/dist/_node-server.d.ts.map +1 -1
- package/dist/_node-server.js +2 -2
- package/dist/_node-server.js.map +1 -0
- package/dist/client/errors.js +1 -0
- package/dist/client/errors.js.map +1 -0
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +7 -4
- package/dist/client/index.js.map +1 -0
- package/dist/client/types.js +1 -0
- package/dist/client/types.js.map +1 -0
- package/dist/client/utils.js +1 -0
- package/dist/client/utils.js.map +1 -0
- package/dist/client.test.js +1 -0
- package/dist/client.test.js.map +1 -0
- package/dist/context.d.ts +4 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +1 -0
- package/dist/context.js.map +1 -0
- package/dist/cors.js +1 -0
- package/dist/cors.js.map +1 -0
- package/dist/cors.test.js +1 -0
- package/dist/cors.test.js.map +1 -0
- package/dist/error.js +1 -0
- package/dist/error.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-client-transport.d.ts +35 -0
- package/dist/mcp-client-transport.d.ts.map +1 -0
- package/dist/mcp-client-transport.js +147 -0
- package/dist/mcp-client-transport.js.map +1 -0
- package/dist/mcp-transport.js +1 -0
- package/dist/mcp-transport.js.map +1 -0
- package/dist/mcp.d.ts +18 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +43 -224
- package/dist/mcp.js.map +1 -0
- package/dist/middleware.test.js +1 -0
- package/dist/middleware.test.js.map +1 -0
- package/dist/openapi-to-mcp.d.ts +38 -0
- package/dist/openapi-to-mcp.d.ts.map +1 -0
- package/dist/openapi-to-mcp.js +367 -0
- package/dist/openapi-to-mcp.js.map +1 -0
- package/dist/openapi.d.ts.map +1 -1
- package/dist/openapi.js +7 -2
- package/dist/openapi.js.map +1 -0
- package/dist/openapi.test.js +32 -31
- package/dist/openapi.test.js.map +1 -0
- package/dist/simple.benchmark.js +1 -0
- package/dist/simple.benchmark.js.map +1 -0
- package/dist/spiceflow.d.ts +5 -2
- package/dist/spiceflow.d.ts.map +1 -1
- package/dist/spiceflow.js +26 -6
- package/dist/spiceflow.js.map +1 -0
- package/dist/spiceflow.test.js +15 -3
- package/dist/spiceflow.test.js.map +1 -0
- package/dist/static-node.js +1 -0
- package/dist/static-node.js.map +1 -0
- package/dist/static.benchmark.js +1 -0
- package/dist/static.benchmark.js.map +1 -0
- package/dist/static.js +1 -0
- package/dist/static.js.map +1 -0
- package/dist/stream.test.js +1 -0
- package/dist/stream.test.js.map +1 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/dist/types.test.js +1 -0
- package/dist/types.test.js.map +1 -0
- package/dist/utils.js +1 -0
- package/dist/utils.js.map +1 -0
- package/dist/waitUntil.test.d.ts +2 -0
- package/dist/waitUntil.test.d.ts.map +1 -0
- package/dist/waitUntil.test.js +142 -0
- package/dist/waitUntil.test.js.map +1 -0
- package/dist/zod.test.js +1 -0
- package/dist/zod.test.js.map +1 -0
- package/package.json +4 -3
- package/src/_node-server.ts +1 -2
- package/src/client/index.ts +9 -7
- package/src/context.ts +4 -1
- package/src/index.ts +1 -1
- package/src/mcp-client-transport.ts +184 -0
- package/src/mcp.ts +49 -307
- package/src/openapi-to-mcp.ts +510 -0
- package/src/openapi.test.ts +31 -31
- package/src/openapi.ts +9 -3
- package/src/spiceflow.test.ts +18 -4
- package/src/spiceflow.ts +42 -15
- package/src/waitUntil.test.ts +168 -0
- package/dist/serialize.d.ts +0 -2
- package/dist/serialize.d.ts.map +0 -1
- package/dist/serialize.js +0 -9
- package/src/serialize.ts +0 -10
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { JSONRPCMessageSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import { streamSSEResponse } from "./client/index.js";
|
|
3
|
+
export class FetchMCPCLientTransport {
|
|
4
|
+
_endpoint;
|
|
5
|
+
sseUrl;
|
|
6
|
+
_abortController;
|
|
7
|
+
fetch;
|
|
8
|
+
onmessage;
|
|
9
|
+
onerror = (e) => {
|
|
10
|
+
throw e;
|
|
11
|
+
};
|
|
12
|
+
onclose;
|
|
13
|
+
constructor(opts) {
|
|
14
|
+
this.fetch = opts.fetch || fetch;
|
|
15
|
+
this.sseUrl = new URL(opts.url);
|
|
16
|
+
this._abortController = new AbortController();
|
|
17
|
+
}
|
|
18
|
+
onEndpointMessage = () => { };
|
|
19
|
+
async start() {
|
|
20
|
+
const { promise, resolve, reject } = withResolvers();
|
|
21
|
+
this.consumeEvents().catch((e) => {
|
|
22
|
+
reject(e);
|
|
23
|
+
});
|
|
24
|
+
this.onEndpointMessage = (endpoint) => {
|
|
25
|
+
this._endpoint = endpoint;
|
|
26
|
+
resolve(endpoint);
|
|
27
|
+
};
|
|
28
|
+
await promise;
|
|
29
|
+
this.log(`finished start`);
|
|
30
|
+
}
|
|
31
|
+
log(...x) {
|
|
32
|
+
// console.log(...x)
|
|
33
|
+
//
|
|
34
|
+
}
|
|
35
|
+
async consumeEvents() {
|
|
36
|
+
const sseRes = await this.fetch(new Request(this.sseUrl.toString(), {
|
|
37
|
+
method: 'GET',
|
|
38
|
+
signal: this._abortController.signal,
|
|
39
|
+
headers: {
|
|
40
|
+
...(await this._commonHeaders()),
|
|
41
|
+
accept: 'text/event-stream',
|
|
42
|
+
},
|
|
43
|
+
}));
|
|
44
|
+
if (!sseRes.ok || !sseRes.body) {
|
|
45
|
+
const text = sseRes.body ? await sseRes.text().catch(() => '') : '';
|
|
46
|
+
throw new Error(`SSE connection failed (HTTP ${sseRes.status})\nURL: ${this.sseUrl}\nText: ${text}`);
|
|
47
|
+
}
|
|
48
|
+
for await (const evt of streamSSEResponse(sseRes, (x) => {
|
|
49
|
+
return x;
|
|
50
|
+
})) {
|
|
51
|
+
if (evt.event === 'endpoint') {
|
|
52
|
+
const url = new URL(evt.data, this.sseUrl);
|
|
53
|
+
if (url.origin !== this.sseUrl.origin) {
|
|
54
|
+
throw new Error(`Endpoint origin mismatch: ${url.origin}`);
|
|
55
|
+
}
|
|
56
|
+
this.onEndpointMessage(url);
|
|
57
|
+
this._endpoint = url;
|
|
58
|
+
}
|
|
59
|
+
else if (evt.event === 'message') {
|
|
60
|
+
// JSON-RPC payload
|
|
61
|
+
try {
|
|
62
|
+
const msg = JSONRPCMessageSchema.parse(JSON.parse(evt.data));
|
|
63
|
+
this.log(msg);
|
|
64
|
+
this.onmessage?.(msg);
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
this.onerror?.(err);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
this.log('Unknown MCP event:', evt);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
this.close?.();
|
|
75
|
+
}
|
|
76
|
+
catch(err) {
|
|
77
|
+
this.onerror?.(err);
|
|
78
|
+
}
|
|
79
|
+
async _commonHeaders() {
|
|
80
|
+
const headers = {};
|
|
81
|
+
// if (this._authProvider) {
|
|
82
|
+
// const tokens = await this._authProvider.tokens()
|
|
83
|
+
// if (tokens) {
|
|
84
|
+
// headers['Authorization'] = `Bearer ${tokens.access_token}`
|
|
85
|
+
// }
|
|
86
|
+
// }
|
|
87
|
+
if (this._protocolVersion) {
|
|
88
|
+
headers['mcp-protocol-version'] = this._protocolVersion;
|
|
89
|
+
}
|
|
90
|
+
return headers;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Sends a JSON-RPC message by POSTing to the negotiated endpoint.
|
|
94
|
+
* Must call start() first so that endpoint is set.
|
|
95
|
+
*/
|
|
96
|
+
async send(message) {
|
|
97
|
+
if (!this._endpoint) {
|
|
98
|
+
throw new Error('Not connected');
|
|
99
|
+
}
|
|
100
|
+
this.log(`sending`, message);
|
|
101
|
+
const res = await this.fetch(new Request(this._endpoint.toString(), {
|
|
102
|
+
method: 'POST',
|
|
103
|
+
headers: {
|
|
104
|
+
...(await this._commonHeaders()),
|
|
105
|
+
'content-type': 'application/json',
|
|
106
|
+
},
|
|
107
|
+
body: JSON.stringify(message),
|
|
108
|
+
signal: this._abortController?.signal,
|
|
109
|
+
}));
|
|
110
|
+
if (!res.ok) {
|
|
111
|
+
const text = await res.text().catch(() => '');
|
|
112
|
+
const err = new Error(`Error POSTing to endpoint ${this._endpoint || '.'} (HTTP ${res.status}): ${text}`);
|
|
113
|
+
this.onerror?.(err);
|
|
114
|
+
throw err;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Aborts the SSE stream and notifies onclose.
|
|
119
|
+
*/
|
|
120
|
+
async close() {
|
|
121
|
+
this._abortController?.abort();
|
|
122
|
+
this.onclose?.();
|
|
123
|
+
}
|
|
124
|
+
_protocolVersion;
|
|
125
|
+
setProtocolVersion(version) {
|
|
126
|
+
this._protocolVersion = version;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Polyfill for Promise.withResolvers
|
|
131
|
+
* Returns an object { promise, resolve, reject }
|
|
132
|
+
* If native Promise.withResolvers exists, uses it.
|
|
133
|
+
*/
|
|
134
|
+
function withResolvers() {
|
|
135
|
+
if (typeof Promise.withResolvers === 'function') {
|
|
136
|
+
return Promise.withResolvers();
|
|
137
|
+
}
|
|
138
|
+
let resolve;
|
|
139
|
+
let reject;
|
|
140
|
+
const promise = new Promise((res, rej) => {
|
|
141
|
+
resolve = res;
|
|
142
|
+
reject = rej;
|
|
143
|
+
});
|
|
144
|
+
// @ts-ignore checked by closure above
|
|
145
|
+
return { promise, resolve, reject };
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=mcp-client-transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-client-transport.js","sourceRoot":"","sources":["../src/mcp-client-transport.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp-transport.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-transport.js","sourceRoot":"","sources":["../src/mcp-transport.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { SSEServerTransportSpiceflow } from './mcp-transport.ts';
|
|
1
2
|
import { Spiceflow } from './spiceflow.ts';
|
|
2
|
-
export declare const mcp: <Path extends string = "/mcp">({ path, name, version, }?: {
|
|
3
|
+
export declare const mcp: <Path extends string = "/mcp">({ path, name, version, transports, }?: {
|
|
3
4
|
path?: Path | undefined;
|
|
4
5
|
name?: string | undefined;
|
|
5
6
|
version?: string | undefined;
|
|
7
|
+
transports?: Map<string, SSEServerTransportSpiceflow> | undefined;
|
|
6
8
|
}) => Spiceflow<"", true, {
|
|
7
9
|
state: {};
|
|
8
10
|
}, {
|
|
@@ -24,6 +26,21 @@ export declare const mcp: <Path extends string = "/mcp">({ path, name, version,
|
|
|
24
26
|
};
|
|
25
27
|
};
|
|
26
28
|
};
|
|
29
|
+
} & {
|
|
30
|
+
_mcp_config: {
|
|
31
|
+
get: {
|
|
32
|
+
request: unknown;
|
|
33
|
+
params: {};
|
|
34
|
+
query: unknown;
|
|
35
|
+
response: {
|
|
36
|
+
200: {
|
|
37
|
+
name: string;
|
|
38
|
+
version: string;
|
|
39
|
+
path: Path;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
};
|
|
27
44
|
} & {
|
|
28
45
|
[x: string]: {
|
|
29
46
|
post: {
|
package/dist/mcp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAA;AAGhE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAI1C,eAAO,MAAM,GAAG,GAAI,IAAI,SAAS,MAAM,GAAG,MAAM,EAAE;;;;;CAQ5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAiFL,CAAA"}
|
package/dist/mcp.js
CHANGED
|
@@ -1,211 +1,27 @@
|
|
|
1
|
-
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
2
|
-
import { CallToolRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
3
1
|
import { SSEServerTransportSpiceflow } from "./mcp-transport.js";
|
|
2
|
+
import { createMCPServer } from "./openapi-to-mcp.js";
|
|
4
3
|
import { openapi } from "./openapi.js";
|
|
5
4
|
import { Spiceflow } from "./spiceflow.js";
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return content?.schema;
|
|
13
|
-
}
|
|
14
|
-
function getOperationParameters(operation) {
|
|
15
|
-
if (!operation.parameters)
|
|
16
|
-
return {};
|
|
17
|
-
const queryProperties = {};
|
|
18
|
-
const pathProperties = {};
|
|
19
|
-
const queryRequired = [];
|
|
20
|
-
const pathRequired = [];
|
|
21
|
-
operation.parameters.forEach((param) => {
|
|
22
|
-
if ('$ref' in param)
|
|
23
|
-
return; // TODO referenced parameters
|
|
24
|
-
if (param.in === 'query') {
|
|
25
|
-
queryProperties[param.name] = param.schema;
|
|
26
|
-
if (param.required)
|
|
27
|
-
queryRequired.push(param.name);
|
|
28
|
-
}
|
|
29
|
-
else if (param.in === 'path') {
|
|
30
|
-
pathProperties[param.name] = param.schema;
|
|
31
|
-
if (param.required)
|
|
32
|
-
pathRequired.push(param.name);
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
const result = {};
|
|
36
|
-
if (Object.keys(queryProperties).length > 0) {
|
|
37
|
-
result.queryParams = {
|
|
38
|
-
type: 'object',
|
|
39
|
-
properties: queryProperties,
|
|
40
|
-
required: queryRequired.length > 0 ? queryRequired : undefined,
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
if (Object.keys(pathProperties).length > 0) {
|
|
44
|
-
result.pathParams = {
|
|
45
|
-
type: 'object',
|
|
46
|
-
properties: pathProperties,
|
|
47
|
-
required: pathRequired.length > 0 ? pathRequired : undefined,
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
return result;
|
|
51
|
-
}
|
|
52
|
-
function createMCPServer({ name = 'spiceflow', version = '1.0.0', openapi, app, }) {
|
|
53
|
-
const server = new Server({ name, version }, {
|
|
54
|
-
capabilities: {
|
|
55
|
-
tools: {},
|
|
56
|
-
resources: {},
|
|
57
|
-
},
|
|
58
|
-
});
|
|
59
|
-
const basePath = app.topLevelApp.prefix || '';
|
|
60
|
-
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
61
|
-
const paths = Object.entries(openapi.paths).filter(([path]) => !['/mcp-openapi', '/mcp', '/mcp/message'].includes(path.replace(basePath, '')));
|
|
62
|
-
const tools = paths.flatMap(([path, pathObj]) => Object.entries(pathObj || {})
|
|
63
|
-
.filter(([method]) => method !== 'parameters')
|
|
64
|
-
.map(([method, operation]) => {
|
|
65
|
-
const properties = {};
|
|
66
|
-
const required = [];
|
|
67
|
-
const requestBody = getOperationRequestBody(operation);
|
|
68
|
-
if (requestBody) {
|
|
69
|
-
properties.body = requestBody;
|
|
70
|
-
required.push('body');
|
|
71
|
-
}
|
|
72
|
-
const { queryParams, pathParams } = getOperationParameters(operation);
|
|
73
|
-
if (queryParams) {
|
|
74
|
-
properties.query = queryParams;
|
|
75
|
-
}
|
|
76
|
-
if (pathParams) {
|
|
77
|
-
properties.params = pathParams;
|
|
78
|
-
}
|
|
79
|
-
return {
|
|
80
|
-
name: getRouteName({ method, path }),
|
|
81
|
-
description: operation.description ||
|
|
82
|
-
operation.summary ||
|
|
83
|
-
`${method.toUpperCase()} ${path}`,
|
|
84
|
-
inputSchema: {
|
|
85
|
-
type: 'object',
|
|
86
|
-
properties,
|
|
87
|
-
required: required.length > 0 ? required : undefined,
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
}));
|
|
91
|
-
return { tools };
|
|
92
|
-
});
|
|
93
|
-
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
94
|
-
const toolName = request.params.name;
|
|
95
|
-
let { path, method } = getPathFromToolName(toolName);
|
|
96
|
-
const pathObj = openapi.paths[path];
|
|
97
|
-
if (!pathObj || !pathObj[method.toLowerCase()]) {
|
|
98
|
-
return {
|
|
99
|
-
content: [{ type: 'text', text: `Tool ${toolName} not found` }],
|
|
100
|
-
isError: true,
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
try {
|
|
104
|
-
const { body, query, params } = request.params.arguments || {};
|
|
105
|
-
if (params) {
|
|
106
|
-
Object.entries(params).forEach(([key, value]) => {
|
|
107
|
-
path = path.replace(`{${key}}`, encodeURIComponent(String(value)));
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
const basePath = app.topLevelApp.prefix || '';
|
|
111
|
-
const url = new URL(`http://localhost${basePath}${path}`);
|
|
112
|
-
if (query) {
|
|
113
|
-
Object.entries(query).forEach(([key, value]) => {
|
|
114
|
-
url.searchParams.set(key, String(value));
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
const response = await app.handle(new Request(url, {
|
|
118
|
-
method: method,
|
|
119
|
-
headers: {
|
|
120
|
-
'content-type': 'application/json',
|
|
121
|
-
},
|
|
122
|
-
body: body ? JSON.stringify(body) : undefined,
|
|
123
|
-
}));
|
|
124
|
-
const isError = !response.ok;
|
|
125
|
-
const contentType = response.headers.get('content-type');
|
|
126
|
-
if (contentType?.includes('application/json')) {
|
|
127
|
-
const json = await response.json();
|
|
128
|
-
return {
|
|
129
|
-
isError,
|
|
130
|
-
content: [{ type: 'text', text: JSON.stringify(json, null, 2) }],
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
const text = await response.text();
|
|
134
|
-
return {
|
|
135
|
-
isError,
|
|
136
|
-
content: [{ type: 'text', text }],
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
catch (error) {
|
|
140
|
-
return {
|
|
141
|
-
content: [{ type: 'text', text: error.message || 'Unknown error' }],
|
|
142
|
-
isError: true,
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
});
|
|
146
|
-
server.setRequestHandler(ListResourcesRequestSchema, async () => {
|
|
147
|
-
const resources = [];
|
|
148
|
-
for (const [path, pathObj] of Object.entries(openapi.paths)) {
|
|
149
|
-
if (path.startsWith('/mcp')) {
|
|
150
|
-
continue;
|
|
151
|
-
}
|
|
152
|
-
const getOperation = pathObj?.get;
|
|
153
|
-
if (getOperation && !path.includes('{')) {
|
|
154
|
-
const { queryParams } = getOperationParameters(getOperation);
|
|
155
|
-
const hasRequiredQuery = queryParams?.required && queryParams.required.length > 0;
|
|
156
|
-
if (!hasRequiredQuery) {
|
|
157
|
-
resources.push({
|
|
158
|
-
uri: new URL(path, 'http://localhost').href,
|
|
159
|
-
mimeType: 'application/json',
|
|
160
|
-
name: `GET ${path}`,
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
return { resources };
|
|
166
|
-
});
|
|
167
|
-
server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
|
|
168
|
-
const resourceUrl = new URL(request.params.uri);
|
|
169
|
-
const path = resourceUrl.pathname;
|
|
170
|
-
const pathObj = openapi.paths[path];
|
|
171
|
-
if (!pathObj?.get) {
|
|
172
|
-
throw new Error('Resource not found');
|
|
173
|
-
}
|
|
174
|
-
const response = await app.handle(new Request(resourceUrl, {
|
|
175
|
-
method: 'GET',
|
|
176
|
-
headers: {
|
|
177
|
-
'content-type': 'application/json',
|
|
178
|
-
},
|
|
179
|
-
}));
|
|
180
|
-
const contentType = response.headers.get('content-type');
|
|
181
|
-
const text = await response.text();
|
|
182
|
-
if (contentType?.includes('application/json')) {
|
|
183
|
-
return {
|
|
184
|
-
contents: [
|
|
185
|
-
{
|
|
186
|
-
uri: request.params.uri,
|
|
187
|
-
mimeType: 'application/json',
|
|
188
|
-
text: text,
|
|
189
|
-
},
|
|
190
|
-
],
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
return {
|
|
194
|
-
contents: [
|
|
195
|
-
{
|
|
196
|
-
uri: request.params.uri,
|
|
197
|
-
mimeType: 'text/plain',
|
|
198
|
-
text,
|
|
199
|
-
},
|
|
200
|
-
],
|
|
201
|
-
};
|
|
202
|
-
});
|
|
203
|
-
return { server, transports };
|
|
204
|
-
}
|
|
205
|
-
export const mcp = ({ path = '/mcp', name = 'spiceflow', version = '1.0.0', } = {}) => {
|
|
5
|
+
const defaultTransports = new Map();
|
|
6
|
+
export const mcp = ({ path = '/mcp', name = 'spiceflow', version = '1.0.0',
|
|
7
|
+
/**
|
|
8
|
+
* Map to get a transport from a sessionId and
|
|
9
|
+
*/
|
|
10
|
+
transports = defaultTransports, } = {}) => {
|
|
206
11
|
const messagePath = path + '/message';
|
|
207
12
|
let app = new Spiceflow({ name: 'mcp' })
|
|
208
|
-
.use(openapi({ path: '/
|
|
13
|
+
.use(openapi({ path: '/_mcp_openapi' }))
|
|
14
|
+
.route({
|
|
15
|
+
method: 'GET',
|
|
16
|
+
path: '/_mcp_config',
|
|
17
|
+
handler: async () => {
|
|
18
|
+
return {
|
|
19
|
+
name,
|
|
20
|
+
version,
|
|
21
|
+
path,
|
|
22
|
+
};
|
|
23
|
+
},
|
|
24
|
+
})
|
|
209
25
|
.post(messagePath, async ({ request, query }) => {
|
|
210
26
|
const sessionId = query.sessionId;
|
|
211
27
|
const t = transports.get(sessionId);
|
|
@@ -216,20 +32,37 @@ export const mcp = ({ path = '/mcp', name = 'spiceflow', version = '1.0.0', } =
|
|
|
216
32
|
return 'ok';
|
|
217
33
|
})
|
|
218
34
|
.get(path, async ({ request }) => {
|
|
219
|
-
const basePath = app.topLevelApp.
|
|
35
|
+
const basePath = app.topLevelApp.basePath || '';
|
|
220
36
|
const transport = new SSEServerTransportSpiceflow(basePath + messagePath);
|
|
221
37
|
transports.set(transport.sessionId, transport);
|
|
222
|
-
const openapi = await
|
|
223
|
-
|
|
224
|
-
|
|
38
|
+
const [openapi, mcpConfig] = await Promise.all([
|
|
39
|
+
app
|
|
40
|
+
.topLevelApp.handle(new Request(`http://localhost${basePath}/_mcp_openapi`))
|
|
41
|
+
.then((r) => r.json()),
|
|
42
|
+
app
|
|
43
|
+
.topLevelApp.handle(new Request(`http://localhost${basePath}/_mcp_config`))
|
|
44
|
+
.then((r) => r.json()),
|
|
45
|
+
]);
|
|
46
|
+
const mcpPath = mcpConfig?.path;
|
|
47
|
+
if (!mcpPath)
|
|
48
|
+
throw new Error('Missing MCP path from app, make sure to use the mcp() Spiceflow plugin');
|
|
225
49
|
const { server } = createMCPServer({
|
|
226
50
|
name,
|
|
227
51
|
version,
|
|
52
|
+
ignorePaths: [
|
|
53
|
+
'/_mcp_openapi',
|
|
54
|
+
'/_mcp_config',
|
|
55
|
+
mcpPath,
|
|
56
|
+
mcpPath + '/message', //
|
|
57
|
+
],
|
|
58
|
+
fetch: (url, init) => {
|
|
59
|
+
const req = new Request(url, init);
|
|
60
|
+
return app.handle(req);
|
|
61
|
+
},
|
|
228
62
|
openapi,
|
|
229
|
-
app: app.topLevelApp,
|
|
230
63
|
});
|
|
231
64
|
server.onclose = () => {
|
|
232
|
-
transports.delete(transport.sessionId)
|
|
65
|
+
// transports.delete(transport.sessionId)
|
|
233
66
|
};
|
|
234
67
|
await server.connect(transport);
|
|
235
68
|
request.signal.addEventListener('abort', () => {
|
|
@@ -237,22 +70,8 @@ export const mcp = ({ path = '/mcp', name = 'spiceflow', version = '1.0.0', } =
|
|
|
237
70
|
console.error('Error closing transport:', error);
|
|
238
71
|
});
|
|
239
72
|
});
|
|
240
|
-
if (request.method === 'POST') {
|
|
241
|
-
return await transport.handlePostMessage(request);
|
|
242
|
-
}
|
|
243
73
|
return transport.response;
|
|
244
74
|
});
|
|
245
75
|
return app;
|
|
246
76
|
};
|
|
247
|
-
|
|
248
|
-
return `${method.toUpperCase()} ${path}`;
|
|
249
|
-
}
|
|
250
|
-
function getPathFromToolName(toolName) {
|
|
251
|
-
const parts = toolName.split(' ');
|
|
252
|
-
if (parts.length < 2) {
|
|
253
|
-
throw new Error('Invalid tool name format');
|
|
254
|
-
}
|
|
255
|
-
const method = parts[0].toUpperCase();
|
|
256
|
-
const path = parts.slice(1).join(' ');
|
|
257
|
-
return { path, method };
|
|
258
|
-
}
|
|
77
|
+
//# sourceMappingURL=mcp.js.map
|
package/dist/mcp.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/middleware.test.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.test.js","sourceRoot":"","sources":["../src/middleware.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
2
|
+
import { OpenAPIV3 } from 'openapi-types';
|
|
3
|
+
type Fetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
4
|
+
export declare function createMCPServer({ name, version, openapi, fetch, paths, ignorePaths, baseUrl, }: {
|
|
5
|
+
name?: string;
|
|
6
|
+
version?: string;
|
|
7
|
+
fetch?: Fetch;
|
|
8
|
+
openapi: OpenAPIV3.Document;
|
|
9
|
+
paths?: string[];
|
|
10
|
+
ignorePaths?: string[];
|
|
11
|
+
baseUrl?: string;
|
|
12
|
+
}): {
|
|
13
|
+
server: Server<{
|
|
14
|
+
method: string;
|
|
15
|
+
params?: {
|
|
16
|
+
[x: string]: unknown;
|
|
17
|
+
_meta?: {
|
|
18
|
+
[x: string]: unknown;
|
|
19
|
+
progressToken?: string | number | undefined;
|
|
20
|
+
} | undefined;
|
|
21
|
+
} | undefined;
|
|
22
|
+
}, {
|
|
23
|
+
method: string;
|
|
24
|
+
params?: {
|
|
25
|
+
[x: string]: unknown;
|
|
26
|
+
_meta?: {
|
|
27
|
+
[x: string]: unknown;
|
|
28
|
+
} | undefined;
|
|
29
|
+
} | undefined;
|
|
30
|
+
}, {
|
|
31
|
+
[x: string]: unknown;
|
|
32
|
+
_meta?: {
|
|
33
|
+
[x: string]: unknown;
|
|
34
|
+
} | undefined;
|
|
35
|
+
}>;
|
|
36
|
+
};
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=openapi-to-mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openapi-to-mcp.d.ts","sourceRoot":"","sources":["../src/openapi-to-mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AASlE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AA8JzC,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAGhF,wBAAgB,eAAe,CAAC,EAC9B,IAAkB,EAClB,OAAiB,EACjB,OAAO,EAEP,KAAoB,EACpB,KAAK,EACL,WAAW,EACX,OAAY,GACb,EAAE;IACD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;;;;;;;;;;;;;;;;;;;;;;;;EA4OA"}
|