@transloadit/mcp-server 0.3.12 → 0.3.14
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/express.d.ts.map +1 -1
- package/dist/express.js +15 -50
- package/dist/express.js.map +1 -1
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +30 -63
- package/dist/http.js.map +1 -1
- package/package.json +2 -2
package/dist/express.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../src/express.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../src/express.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAM1D,MAAM,MAAM,4BAA4B,GAAG,yBAAyB,GAAG;IACrE,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,wBAAgB,iCAAiC,CAAC,OAAO,GAAE,4BAAiC,8CA4F3F"}
|
package/dist/express.js
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
import { randomUUID } from 'node:crypto';
|
|
2
1
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
3
|
-
import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';
|
|
4
2
|
import express from 'express';
|
|
5
3
|
import { isBasicAuthorized } from "./http-helpers.js";
|
|
6
4
|
import { getMetrics, getMetricsContentType } from "./metrics.js";
|
|
7
5
|
import { createTransloaditMcpServer } from "./server.js";
|
|
8
6
|
import { buildServerCard, serverCardPath } from "./server-card.js";
|
|
9
7
|
export function createTransloaditMcpExpressRouter(options = {}) {
|
|
10
|
-
const sessionIdGenerator = options.sessionIdGenerator ?? (() => randomUUID());
|
|
11
|
-
// Per-session transport map: each MCP client gets its own transport + server pair.
|
|
12
|
-
const transports = new Map();
|
|
13
8
|
const router = express.Router();
|
|
14
9
|
const routePath = options.path ?? '/mcp';
|
|
15
10
|
const metricsPath = options.metricsPath === false ? undefined : (options.metricsPath ?? '/metrics');
|
|
@@ -41,56 +36,26 @@ export function createTransloaditMcpExpressRouter(options = {}) {
|
|
|
41
36
|
sendServerCard(res, false);
|
|
42
37
|
});
|
|
43
38
|
router.all(routePath, async (req, res) => {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (sessionId) {
|
|
47
|
-
transport = transports.get(sessionId);
|
|
48
|
-
if (!transport) {
|
|
49
|
-
res.status(404).json({
|
|
50
|
-
jsonrpc: '2.0',
|
|
51
|
-
error: { code: -32000, message: 'Session not found' },
|
|
52
|
-
id: null,
|
|
53
|
-
});
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
else if (req.method === 'POST' && isInitializeRequest(req.body)) {
|
|
58
|
-
// New initialization request — create a new transport + server pair.
|
|
59
|
-
const newTransport = new StreamableHTTPServerTransport({
|
|
60
|
-
sessionIdGenerator,
|
|
61
|
-
allowedOrigins: options.allowedOrigins,
|
|
62
|
-
allowedHosts: options.allowedHosts,
|
|
63
|
-
enableDnsRebindingProtection: options.enableDnsRebindingProtection,
|
|
64
|
-
onsessioninitialized: (sid) => {
|
|
65
|
-
transports.set(sid, newTransport);
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
|
-
newTransport.onclose = () => {
|
|
69
|
-
const sid = newTransport.sessionId;
|
|
70
|
-
if (sid) {
|
|
71
|
-
transports.delete(sid);
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
const server = createTransloaditMcpServer(options);
|
|
75
|
-
await server.connect(newTransport);
|
|
76
|
-
transport = newTransport;
|
|
77
|
-
}
|
|
78
|
-
else if (req.method === 'POST') {
|
|
79
|
-
res.status(400).json({
|
|
80
|
-
jsonrpc: '2.0',
|
|
81
|
-
error: { code: -32600, message: 'Bad Request: No valid session ID provided' },
|
|
82
|
-
id: null,
|
|
83
|
-
});
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
if (!transport) {
|
|
87
|
-
res.status(400).json({
|
|
39
|
+
if (req.method !== 'POST') {
|
|
40
|
+
res.status(405).json({
|
|
88
41
|
jsonrpc: '2.0',
|
|
89
|
-
error: { code: -
|
|
42
|
+
error: { code: -32000, message: 'Method not allowed.' },
|
|
90
43
|
id: null,
|
|
91
44
|
});
|
|
92
45
|
return;
|
|
93
46
|
}
|
|
47
|
+
const transport = new StreamableHTTPServerTransport({
|
|
48
|
+
sessionIdGenerator: undefined,
|
|
49
|
+
allowedOrigins: options.allowedOrigins,
|
|
50
|
+
allowedHosts: options.allowedHosts,
|
|
51
|
+
enableDnsRebindingProtection: options.enableDnsRebindingProtection,
|
|
52
|
+
});
|
|
53
|
+
const server = createTransloaditMcpServer(options);
|
|
54
|
+
res.on('close', () => {
|
|
55
|
+
void transport.close();
|
|
56
|
+
void server.close();
|
|
57
|
+
});
|
|
58
|
+
await server.connect(transport);
|
|
94
59
|
await transport.handleRequest(req, res, req.body);
|
|
95
60
|
});
|
|
96
61
|
if (metricsPath) {
|
package/dist/express.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express.js","sourceRoot":"","sources":["../src/express.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"express.js","sourceRoot":"","sources":["../src/express.ts"],"names":[],"mappings":"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"}
|
package/dist/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AASxD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAI9D,MAAM,MAAM,yBAAyB,GAAG,2BAA2B,GAAG;IACpE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,4BAA4B,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IAC5B,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;IAEpD,kBAAkB,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAA;IAC/C,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,CAAC,CACvC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG;IACpB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B,CAAA;AAyBD,wBAAgB,+BAA+B,CAC7C,OAAO,GAAE,yBAA8B,GACtC,yBAAyB,CA6J3B"}
|
package/dist/http.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import { randomUUID } from 'node:crypto';
|
|
2
1
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
3
|
-
import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';
|
|
4
2
|
import { applyCorsHeaders, isAuthorized, isBasicAuthorized, normalizePath, parsePathname, } from "./http-helpers.js";
|
|
5
3
|
import { getMetrics, getMetricsContentType } from "./metrics.js";
|
|
6
4
|
import { createTransloaditMcpServer } from "./server.js";
|
|
7
5
|
import { buildServerCard, serverCardPath } from "./server-card.js";
|
|
8
6
|
const defaultPath = '/mcp';
|
|
9
|
-
/** Read the full request body and JSON-parse it
|
|
7
|
+
/** Read the full request body and JSON-parse it before handing it to the MCP transport. */
|
|
10
8
|
function readJsonBody(req) {
|
|
11
9
|
return new Promise((resolve, reject) => {
|
|
12
10
|
const chunks = [];
|
|
@@ -28,12 +26,10 @@ function readJsonBody(req) {
|
|
|
28
26
|
});
|
|
29
27
|
}
|
|
30
28
|
export function createTransloaditMcpHttpHandler(options = {}) {
|
|
29
|
+
const activeRequests = new Set();
|
|
31
30
|
const expectedPath = options.path ?? defaultPath;
|
|
32
31
|
const metricsPath = options.metricsPath === false ? undefined : normalizePath(options.metricsPath ?? '/metrics');
|
|
33
32
|
const metricsAuth = options.metricsAuth;
|
|
34
|
-
const sessionIdGenerator = options.sessionIdGenerator ?? (() => randomUUID());
|
|
35
|
-
// Per-session transport map: each MCP client gets its own transport + server pair.
|
|
36
|
-
const transports = new Map();
|
|
37
33
|
const serverCardJson = JSON.stringify(buildServerCard(expectedPath, { authKey: options.authKey, authSecret: options.authSecret }));
|
|
38
34
|
const handler = (async (req, res) => {
|
|
39
35
|
const pathname = normalizePath(parsePathname(req.url, expectedPath));
|
|
@@ -113,67 +109,33 @@ export function createTransloaditMcpHttpHandler(options = {}) {
|
|
|
113
109
|
}));
|
|
114
110
|
return;
|
|
115
111
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
let transport;
|
|
119
|
-
if (sessionId) {
|
|
120
|
-
transport = transports.get(sessionId);
|
|
121
|
-
if (!transport) {
|
|
122
|
-
res.statusCode = 404;
|
|
123
|
-
res.setHeader('Content-Type', 'application/json');
|
|
124
|
-
res.end(JSON.stringify({
|
|
125
|
-
jsonrpc: '2.0',
|
|
126
|
-
error: { code: -32000, message: 'Session not found' },
|
|
127
|
-
id: null,
|
|
128
|
-
}));
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
// For POST requests without a session, read the body to check for initialization.
|
|
133
|
-
let parsedBody;
|
|
134
|
-
if (req.method === 'POST' && !transport) {
|
|
135
|
-
parsedBody = await readJsonBody(req);
|
|
136
|
-
if (isInitializeRequest(parsedBody)) {
|
|
137
|
-
const newTransport = new StreamableHTTPServerTransport({
|
|
138
|
-
sessionIdGenerator,
|
|
139
|
-
allowedOrigins: options.allowedOrigins,
|
|
140
|
-
allowedHosts: options.allowedHosts,
|
|
141
|
-
enableDnsRebindingProtection: options.enableDnsRebindingProtection,
|
|
142
|
-
onsessioninitialized: (sid) => {
|
|
143
|
-
transports.set(sid, newTransport);
|
|
144
|
-
},
|
|
145
|
-
});
|
|
146
|
-
newTransport.onclose = () => {
|
|
147
|
-
const sid = newTransport.sessionId;
|
|
148
|
-
if (sid) {
|
|
149
|
-
transports.delete(sid);
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
const server = createTransloaditMcpServer(options);
|
|
153
|
-
await server.connect(newTransport);
|
|
154
|
-
transport = newTransport;
|
|
155
|
-
}
|
|
156
|
-
else {
|
|
157
|
-
res.statusCode = 400;
|
|
158
|
-
res.setHeader('Content-Type', 'application/json');
|
|
159
|
-
res.end(JSON.stringify({
|
|
160
|
-
jsonrpc: '2.0',
|
|
161
|
-
error: { code: -32600, message: 'Bad Request: No valid session ID provided' },
|
|
162
|
-
id: null,
|
|
163
|
-
}));
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
if (!transport) {
|
|
168
|
-
res.statusCode = 400;
|
|
112
|
+
if (req.method !== 'POST') {
|
|
113
|
+
res.statusCode = 405;
|
|
169
114
|
res.setHeader('Content-Type', 'application/json');
|
|
170
115
|
res.end(JSON.stringify({
|
|
171
116
|
jsonrpc: '2.0',
|
|
172
|
-
error: { code: -
|
|
117
|
+
error: { code: -32000, message: 'Method not allowed.' },
|
|
173
118
|
id: null,
|
|
174
119
|
}));
|
|
175
120
|
return;
|
|
176
121
|
}
|
|
122
|
+
const parsedBody = await readJsonBody(req);
|
|
123
|
+
const transport = new StreamableHTTPServerTransport({
|
|
124
|
+
sessionIdGenerator: undefined,
|
|
125
|
+
allowedOrigins: options.allowedOrigins,
|
|
126
|
+
allowedHosts: options.allowedHosts,
|
|
127
|
+
enableDnsRebindingProtection: options.enableDnsRebindingProtection,
|
|
128
|
+
});
|
|
129
|
+
const server = createTransloaditMcpServer(options);
|
|
130
|
+
const activeRequest = { transport, server };
|
|
131
|
+
activeRequests.add(activeRequest);
|
|
132
|
+
const cleanupActiveRequest = () => {
|
|
133
|
+
activeRequests.delete(activeRequest);
|
|
134
|
+
void transport.close();
|
|
135
|
+
void server.close();
|
|
136
|
+
};
|
|
137
|
+
res.on('close', cleanupActiveRequest);
|
|
138
|
+
await server.connect(transport);
|
|
177
139
|
try {
|
|
178
140
|
await transport.handleRequest(req, res, parsedBody);
|
|
179
141
|
}
|
|
@@ -183,11 +145,16 @@ export function createTransloaditMcpHttpHandler(options = {}) {
|
|
|
183
145
|
res.end('Internal Server Error');
|
|
184
146
|
}
|
|
185
147
|
}
|
|
148
|
+
finally {
|
|
149
|
+
activeRequests.delete(activeRequest);
|
|
150
|
+
}
|
|
186
151
|
});
|
|
187
152
|
handler.close = async () => {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
153
|
+
await Promise.all(Array.from(activeRequests, async (activeRequest) => {
|
|
154
|
+
activeRequests.delete(activeRequest);
|
|
155
|
+
const { transport, server } = activeRequest;
|
|
156
|
+
await Promise.all([transport.close(), server.close()]);
|
|
157
|
+
}));
|
|
191
158
|
};
|
|
192
159
|
return handler;
|
|
193
160
|
}
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@transloadit/mcp-server",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.14",
|
|
4
4
|
"description": "Transloadit MCP server",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
64
|
"@modelcontextprotocol/sdk": "^1.25.3",
|
|
65
|
-
"@transloadit/node": "^4.8.
|
|
65
|
+
"@transloadit/node": "^4.8.1",
|
|
66
66
|
"@transloadit/sev-logger": "^0.1.9",
|
|
67
67
|
"express": "^4.21.2",
|
|
68
68
|
"prom-client": "^15.1.3",
|