@platf/bridge 0.0.15 → 0.0.17

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.
Files changed (40) hide show
  1. package/dist/gateways/statefulBridge.d.ts +10 -7
  2. package/dist/gateways/statefulBridge.js +79 -139
  3. package/dist/gateways/statefulBridge.js.map +1 -1
  4. package/dist/gateways/statelessBridge.d.ts +10 -7
  5. package/dist/gateways/statelessBridge.js +85 -166
  6. package/dist/gateways/statelessBridge.js.map +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/lib/childProcess.d.ts +37 -0
  9. package/dist/lib/childProcess.js +80 -0
  10. package/dist/lib/childProcess.js.map +1 -0
  11. package/dist/lib/config.d.ts +6 -0
  12. package/dist/lib/config.js +7 -0
  13. package/dist/lib/config.js.map +1 -0
  14. package/dist/lib/discoveryRoutes.d.ts +2 -0
  15. package/dist/lib/discoveryRoutes.js +9 -65
  16. package/dist/lib/discoveryRoutes.js.map +1 -1
  17. package/dist/lib/express.d.ts +33 -0
  18. package/dist/lib/express.js +65 -0
  19. package/dist/lib/express.js.map +1 -0
  20. package/dist/lib/getLogger.d.ts +2 -2
  21. package/dist/lib/getLogger.js.map +1 -1
  22. package/dist/lib/mcpMessages.d.ts +10 -0
  23. package/dist/lib/mcpMessages.js +35 -0
  24. package/dist/lib/mcpMessages.js.map +1 -0
  25. package/dist/lib/oauthProxy.d.ts +14 -0
  26. package/dist/lib/oauthProxy.js +80 -0
  27. package/dist/lib/oauthProxy.js.map +1 -0
  28. package/dist/types.d.ts +3 -0
  29. package/package.json +1 -1
  30. package/src/gateways/statefulBridge.ts +87 -167
  31. package/src/gateways/statelessBridge.ts +100 -218
  32. package/src/index.ts +2 -2
  33. package/src/lib/childProcess.ts +120 -0
  34. package/src/lib/config.ts +9 -0
  35. package/src/lib/discoveryRoutes.ts +9 -68
  36. package/src/lib/express.ts +82 -0
  37. package/src/lib/getLogger.ts +4 -3
  38. package/src/lib/mcpMessages.ts +42 -0
  39. package/src/lib/oauthProxy.ts +86 -0
  40. package/src/types.ts +4 -0
@@ -1,4 +1,12 @@
1
- import { type CorsOptions } from 'cors';
1
+ /**
2
+ * Stateful stdio-to-Streamable HTTP bridge.
3
+ *
4
+ * Maintains session state via `Mcp-Session-Id` header. Each session
5
+ * spawns one child process; subsequent requests for the same session
6
+ * reuse the existing transport and process. Sessions are cleaned up
7
+ * after an optional inactivity timeout.
8
+ */
9
+ import type { CorsOptions } from 'cors';
2
10
  import type { AuthConfig, Logger } from '../types.js';
3
11
  export interface StatefulBridgeArgs {
4
12
  stdioCmd: string;
@@ -12,11 +20,6 @@ export interface StatefulBridgeArgs {
12
20
  auth: AuthConfig | null;
13
21
  }
14
22
  /**
15
- * Stateful stdio-to-Streamable HTTP bridge.
16
- *
17
- * Maintains session state via `Mcp-Session-Id` header. Each session
18
- * spawns one child process; subsequent requests for the same session
19
- * reuse the existing transport and process. Sessions are cleaned up
20
- * after an optional inactivity timeout.
23
+ * Start the stateful bridge server.
21
24
  */
22
25
  export declare function startStatefulBridge(args: StatefulBridgeArgs): Promise<void>;
@@ -1,182 +1,122 @@
1
- import express from 'express';
2
- import cors from 'cors';
3
- import { spawn } from 'child_process';
1
+ /**
2
+ * Stateful stdio-to-Streamable HTTP bridge.
3
+ *
4
+ * Maintains session state via `Mcp-Session-Id` header. Each session
5
+ * spawns one child process; subsequent requests for the same session
6
+ * reuse the existing transport and process. Sessions are cleaned up
7
+ * after an optional inactivity timeout.
8
+ */
4
9
  import { randomUUID } from 'node:crypto';
5
10
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
6
11
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
7
12
  import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';
13
+ import { createApp } from '../lib/express.js';
8
14
  import { onSignals } from '../lib/onSignals.js';
9
- import { serializeCorsOrigin } from '../lib/cors.js';
15
+ import { spawnManagedChild } from '../lib/childProcess.js';
10
16
  import { SessionAccessCounter } from '../lib/sessionAccessCounter.js';
11
- import { createAuthMiddleware } from '../lib/authMiddleware.js';
12
- import { createDiscoveryRouter } from '../lib/discoveryRoutes.js';
13
- const VERSION = '1.0.0';
14
- const setResponseHeaders = (res, headers) => Object.entries(headers).forEach(([key, value]) => res.setHeader(key, value));
17
+ import { VERSION, SERVER_NAME } from '../lib/config.js';
15
18
  /**
16
- * Stateful stdio-to-Streamable HTTP bridge.
17
- *
18
- * Maintains session state via `Mcp-Session-Id` header. Each session
19
- * spawns one child process; subsequent requests for the same session
20
- * reuse the existing transport and process. Sessions are cleaned up
21
- * after an optional inactivity timeout.
19
+ * Start the stateful bridge server.
22
20
  */
23
21
  export async function startStatefulBridge(args) {
24
- const { stdioCmd, port, path, logger, corsOrigin, healthEndpoints, headers, sessionTimeout, auth, } = args;
25
- logger.info(`[stateful] Starting platf-bridge`);
26
- logger.info(` - Headers: ${Object.keys(headers).length ? JSON.stringify(headers) : '(none)'}`);
22
+ const { stdioCmd, port, path, logger, corsOrigin, healthEndpoints, headers, sessionTimeout, auth } = args;
23
+ logger.info(`[stateful] Starting ${SERVER_NAME}`);
27
24
  logger.info(` - port: ${port}`);
28
25
  logger.info(` - stdio: ${stdioCmd}`);
29
26
  logger.info(` - path: ${path}`);
30
- logger.info(` - CORS: ${corsOrigin ? `enabled (${serializeCorsOrigin(corsOrigin)})` : 'disabled'}`);
31
- logger.info(` - Health endpoints: ${healthEndpoints.length ? healthEndpoints.join(', ') : '(none)'}`);
32
27
  logger.info(` - Session timeout: ${sessionTimeout ? `${sessionTimeout}ms` : 'disabled'}`);
28
+ logger.info(` - Headers: ${Object.keys(headers).length ? JSON.stringify(headers) : '(none)'}`);
33
29
  onSignals({ logger });
34
- const app = express();
35
- app.set('trust proxy', true);
36
- app.use(express.json());
37
- if (corsOrigin) {
38
- app.use(cors({ origin: corsOrigin, exposedHeaders: ['Mcp-Session-Id'] }));
39
- }
40
- for (const ep of healthEndpoints) {
41
- app.get(ep, (_req, res) => {
42
- setResponseHeaders(res, headers);
43
- res.send('ok');
44
- });
45
- }
46
- // --- OAuth discovery & auth middleware (when auth is enabled) ---
47
- if (auth) {
48
- app.use(createDiscoveryRouter(auth, logger));
49
- app.use(path, createAuthMiddleware(auth, logger));
50
- logger.info(` - Auth: enabled (issuer=${auth.issuer})`);
51
- }
30
+ const app = createApp({
31
+ logger,
32
+ corsOrigin,
33
+ healthEndpoints,
34
+ headers,
35
+ auth,
36
+ mcpPath: path,
37
+ });
52
38
  // Session state
53
- const transports = {};
39
+ const sessions = {};
54
40
  const sessionCounter = sessionTimeout
55
41
  ? new SessionAccessCounter(sessionTimeout, (sessionId) => {
56
- logger.info(`Session ${sessionId} timed out, cleaning up`);
57
- const transport = transports[sessionId];
58
- if (transport)
59
- transport.close();
60
- delete transports[sessionId];
42
+ logger.info(`[stateful] Session ${sessionId} timed out, cleaning up`);
43
+ const session = sessions[sessionId];
44
+ if (session) {
45
+ session.transport.close();
46
+ session.child.kill();
47
+ }
48
+ delete sessions[sessionId];
61
49
  }, logger)
62
50
  : null;
63
- // --- POST handler ---
51
+ // POST handler
64
52
  app.post(path, async (req, res) => {
65
53
  const sessionId = req.headers['mcp-session-id'];
66
- let transport;
67
- if (sessionId && transports[sessionId]) {
54
+ let session;
55
+ if (sessionId && sessions[sessionId]) {
68
56
  // Reuse existing session
69
- transport = transports[sessionId];
57
+ session = sessions[sessionId];
70
58
  sessionCounter?.inc(sessionId, 'POST request for existing session');
71
59
  }
72
60
  else if (!sessionId && isInitializeRequest(req.body)) {
73
61
  // New session — spawn child process
74
- const server = new Server({ name: 'platf-bridge', version: VERSION }, { capabilities: {} });
75
- transport = new StreamableHTTPServerTransport({
62
+ const server = new Server({ name: SERVER_NAME, version: VERSION }, { capabilities: {} });
63
+ const transport = new StreamableHTTPServerTransport({
76
64
  sessionIdGenerator: () => randomUUID(),
77
65
  onsessioninitialized: (newSessionId) => {
78
- transports[newSessionId] = transport;
66
+ sessions[newSessionId] = session;
79
67
  sessionCounter?.inc(newSessionId, 'session initialization');
80
68
  },
81
69
  });
82
70
  await server.connect(transport);
83
- logger.info('[debug] Server connected to transport');
84
- const child = spawn(stdioCmd, { shell: true, stdio: ['pipe', 'pipe', 'pipe'] });
85
- logger.info(`[debug] Child spawned, pid=${child.pid}`);
86
- const pendingRequestIds = new Set();
87
- let stderrOutput = '';
88
- child.on('spawn', () => {
89
- logger.info(`[debug] Child spawn event fired, pid=${child.pid}`);
90
- });
91
- child.on('error', (err) => {
92
- logger.error(`[debug] Child error event: ${err.message}`);
93
- });
94
- child.on('exit', (code, signal) => {
95
- logger.error(`Child exited: code=${code}, signal=${signal}`);
96
- // Send JSON-RPC error responses for all pending requests
97
- for (const id of pendingRequestIds) {
98
- const detail = stderrOutput.trim().slice(0, 1000);
99
- const message = detail
100
- ? `Child process exited (code=${code}): ${detail}`
101
- : `Child process exited unexpectedly (code=${code}, signal=${signal})`;
102
- transport.send({
103
- jsonrpc: '2.0',
104
- error: { code: -32603, message },
105
- id,
106
- }).catch(e => {
107
- logger.error(`Failed to send error response for request ${id}`, e);
71
+ logger.info('[stateful] Server connected to transport');
72
+ const managedChild = spawnManagedChild(stdioCmd, logger, {
73
+ onMessage: (msg) => {
74
+ logger.info(`[stateful] Child HTTP: ${JSON.stringify(msg).slice(0, 500)}`);
75
+ transport.send(msg).catch((e) => {
76
+ logger.error('[stateful] Failed to send to HTTP transport', e);
108
77
  });
109
- }
110
- pendingRequestIds.clear();
111
- transport.close();
112
- });
113
- let buffer = '';
114
- child.stdout.on('data', (chunk) => {
115
- const chunkStr = chunk.toString('utf8');
116
- logger.info(`[debug] stdout.on('data') received ${chunk.length} bytes: ${chunkStr.slice(0, 200)}...`);
117
- buffer += chunkStr;
118
- const lines = buffer.split(/\r?\n/);
119
- buffer = lines.pop() ?? '';
120
- logger.info(`[debug] Split into ${lines.length} lines, remaining buffer: ${buffer.length} chars`);
121
- for (const line of lines) {
122
- if (!line.trim())
123
- continue;
124
- try {
125
- const jsonMsg = JSON.parse(line);
126
- if ('id' in jsonMsg && jsonMsg.id !== undefined) {
127
- pendingRequestIds.delete(jsonMsg.id);
128
- }
129
- logger.info('Child → HTTP:', line.slice(0, 500));
130
- transport.send(jsonMsg).then(() => {
131
- logger.info('[debug] transport.send() succeeded');
132
- }).catch(e => {
133
- logger.error('Failed to send to HTTP transport', e);
134
- });
135
- }
136
- catch {
137
- logger.error(`Child non-JSON: ${line}`);
78
+ },
79
+ onExit: (code, signal, stderrOutput) => {
80
+ logger.error(`[stateful] Child exited: code=${code}, signal=${signal}`);
81
+ // Send error responses for all pending requests
82
+ for (const id of managedChild.getPendingRequests()) {
83
+ const detail = stderrOutput.trim().slice(0, 1000);
84
+ const message = detail
85
+ ? `Child process exited (code=${code}): ${detail}`
86
+ : `Child process exited unexpectedly (code=${code}, signal=${signal})`;
87
+ transport.send({
88
+ jsonrpc: '2.0',
89
+ error: { code: -32603, message },
90
+ id,
91
+ }).catch(() => { });
138
92
  }
139
- }
140
- });
141
- child.stderr.on('data', (chunk) => {
142
- const text = chunk.toString('utf8');
143
- stderrOutput += text;
144
- logger.error(`Child stderr: ${text}`);
145
- });
146
- child.stdout.on('close', () => {
147
- logger.info('[debug] child.stdout closed');
148
- });
149
- child.stdout.on('end', () => {
150
- logger.info('[debug] child.stdout ended');
151
- });
152
- child.stdin.on('error', (err) => {
153
- logger.error(`[debug] child.stdin error: ${err.message}`);
93
+ transport.close();
94
+ },
154
95
  });
155
96
  transport.onmessage = (msg) => {
156
- logger.info(`HTTP → Child: ${JSON.stringify(msg)}`);
97
+ logger.info(`[stateful] HTTP → Child: ${JSON.stringify(msg)}`);
157
98
  if ('id' in msg && msg.id !== undefined) {
158
- pendingRequestIds.add(msg.id);
99
+ managedChild.trackRequest(msg.id);
159
100
  }
160
- const payload = JSON.stringify(msg) + '\n';
161
- const written = child.stdin.write(payload);
162
- logger.info(`[debug] stdin.write() returned ${written}, payload length=${payload.length}`);
101
+ managedChild.send(msg);
163
102
  };
164
103
  transport.onclose = () => {
165
- logger.info(`HTTP connection closed (session ${sessionId})`);
104
+ logger.info(`[stateful] HTTP connection closed (session ${transport.sessionId})`);
166
105
  if (transport.sessionId) {
167
106
  sessionCounter?.clear(transport.sessionId, false, 'transport closed');
168
- delete transports[transport.sessionId];
107
+ delete sessions[transport.sessionId];
169
108
  }
170
- child.kill();
109
+ managedChild.kill();
171
110
  };
172
111
  transport.onerror = (err) => {
173
- logger.error(`HTTP transport error (session ${sessionId}):`, err);
112
+ logger.error(`[stateful] HTTP transport error (session ${transport.sessionId}):`, err);
174
113
  if (transport.sessionId) {
175
114
  sessionCounter?.clear(transport.sessionId, false, 'transport error');
176
- delete transports[transport.sessionId];
115
+ delete sessions[transport.sessionId];
177
116
  }
178
- child.kill();
117
+ managedChild.kill();
179
118
  };
119
+ session = { transport, child: managedChild };
180
120
  }
181
121
  else {
182
122
  res.status(400).json({
@@ -189,20 +129,20 @@ export async function startStatefulBridge(args) {
189
129
  // Track response lifecycle for session cleanup
190
130
  let responseEnded = false;
191
131
  const handleResponseEnd = (event) => {
192
- if (!responseEnded && transport.sessionId) {
132
+ if (!responseEnded && session.transport.sessionId) {
193
133
  responseEnded = true;
194
- logger.info(`Response ${event}`, transport.sessionId);
195
- sessionCounter?.dec(transport.sessionId, `POST response ${event}`);
134
+ logger.info(`[stateful] Response ${event}`, session.transport.sessionId);
135
+ sessionCounter?.dec(session.transport.sessionId, `POST response ${event}`);
196
136
  }
197
137
  };
198
138
  res.on('finish', () => handleResponseEnd('finished'));
199
139
  res.on('close', () => handleResponseEnd('closed'));
200
- await transport.handleRequest(req, res, req.body);
140
+ await session.transport.handleRequest(req, res, req.body);
201
141
  });
202
- // --- GET / DELETE handler (session-bound) ---
142
+ // GET/DELETE handler (session-bound)
203
143
  const handleSessionRequest = async (req, res) => {
204
144
  const sessionId = req.headers['mcp-session-id'];
205
- if (!sessionId || !transports[sessionId]) {
145
+ if (!sessionId || !sessions[sessionId]) {
206
146
  res.status(400).send('Invalid or missing session ID');
207
147
  return;
208
148
  }
@@ -211,14 +151,14 @@ export async function startStatefulBridge(args) {
211
151
  const handleResponseEnd = (event) => {
212
152
  if (!responseEnded) {
213
153
  responseEnded = true;
214
- logger.info(`Response ${event}`, sessionId);
154
+ logger.info(`[stateful] Response ${event}`, sessionId);
215
155
  sessionCounter?.dec(sessionId, `${req.method} response ${event}`);
216
156
  }
217
157
  };
218
158
  res.on('finish', () => handleResponseEnd('finished'));
219
159
  res.on('close', () => handleResponseEnd('closed'));
220
- const transport = transports[sessionId];
221
- await transport.handleRequest(req, res);
160
+ const session = sessions[sessionId];
161
+ await session.transport.handleRequest(req, res);
222
162
  };
223
163
  app.get(path, handleSessionRequest);
224
164
  app.delete(path, handleSessionRequest);
@@ -1 +1 @@
1
- {"version":3,"file":"statefulBridge.js","sourceRoot":"","sources":["../../src/gateways/statefulBridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statefulBridge.js","sourceRoot":"","sources":["../../src/gateways/statefulBridge.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,12 @@
1
- import { type CorsOptions } from 'cors';
1
+ /**
2
+ * Stateless stdio-to-Streamable HTTP bridge.
3
+ *
4
+ * For every incoming POST request, spawns a fresh child process,
5
+ * auto-initializes it if the request is not an initialize request,
6
+ * and proxies JSON-RPC messages between the HTTP transport and the
7
+ * child's stdin/stdout.
8
+ */
9
+ import type { CorsOptions } from 'cors';
2
10
  import type { AuthConfig, Logger } from '../types.js';
3
11
  export interface StatelessBridgeArgs {
4
12
  stdioCmd: string;
@@ -12,11 +20,6 @@ export interface StatelessBridgeArgs {
12
20
  auth: AuthConfig | null;
13
21
  }
14
22
  /**
15
- * Stateless stdio-to-Streamable HTTP bridge.
16
- *
17
- * For every incoming POST request, spawns a fresh child process,
18
- * auto-initializes it if the request is not an initialize request,
19
- * and proxies JSON-RPC messages between the HTTP transport and the
20
- * child's stdin/stdout.
23
+ * Start the stateless bridge server.
21
24
  */
22
25
  export declare function startStatelessBridge(args: StatelessBridgeArgs): Promise<void>;