@elliotding/ai-agent-mcp 0.1.20 → 0.1.21

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.
@@ -2,7 +2,7 @@
2
2
  "client_version": "0.1.5",
3
3
  "users": {
4
4
  "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJDU1BfTUNQX0FVVEgiLCJpc3MiOiJjbGllbnQtc2VydmljZS1wbGF0Zm9ybSIsImlhdCI6MTc3MjA3NjIxNSwiZW1haWwiOiJlbGxpb3QuZGluZ0B6b29tLnVzIn0.xw7Np0MynXqhL4ay_vN1v5Ac332aga0tgybPQsC7WMc": {
5
- "last_reported_at": "2026-03-25T12:11:28.394Z",
5
+ "last_reported_at": "2026-03-25T12:39:38.570Z",
6
6
  "pending_events": [],
7
7
  "subscribed_rules": [],
8
8
  "configured_mcps": [
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAgB,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAuBjF,OAAO,EAAiB,KAAK,YAAY,IAAI,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,aAAa,CAA8B;IAEnD,mDAAmD;IACnD,OAAO,CAAC,aAAa,CAA8C;gBAEvD,YAAY,CAAC,EAAE,YAAY;IAkBvC,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,WAAW;IAsCnB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IA6GvB;;;OAGG;YACW,mBAAmB;IAkHjC;;;OAGG;YACW,aAAa;YAmCb,YAAY;IA6CpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB3B,UAAU,IAAI,eAAe;IAI7B,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;CAIlD;AAGD,eAAO,MAAM,UAAU,YAAmB,CAAC"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAgB,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAuBjF,OAAO,EAAiB,KAAK,YAAY,IAAI,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,aAAa,CAA8B;IAEnD,mDAAmD;IACnD,OAAO,CAAC,aAAa,CAA8C;gBAEvD,YAAY,CAAC,EAAE,YAAY;IAkBvC,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,WAAW;IAsCnB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IA6GvB;;;OAGG;YACW,mBAAmB;IAgKjC;;;OAGG;YACW,aAAa;YAmCb,YAAY;IA6CpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB3B,UAAU,IAAI,eAAe;IAI7B,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;CAIlD;AAGD,eAAO,MAAM,UAAU,YAAmB,CAAC"}
@@ -243,14 +243,54 @@ class HTTPServer {
243
243
  // See config/index.ts for details.
244
244
  const basePath = config_1.config.http?.basePath ?? '';
245
245
  const publicOrigin = config_1.config.http?.publicOrigin ?? `http://127.0.0.1:${config_1.config.http?.port ?? 3000}`;
246
- // We pass only the path to SSEServerTransport so its internal URL
247
- // parsing produces a clean relative URL. After connect() we re-send
248
- // an absolute endpoint event so Cursor (which may sit behind a proxy
249
- // with a different origin than its SSE connection) uses the correct
250
- // public address for all subsequent JSON-RPC POST messages.
251
246
  const messagePath = `${basePath}/message`;
252
- const transport = new sse_js_1.SSEServerTransport(messagePath, reply.raw);
247
+ // The MCP SDK SSEServerTransport.start() emits an `endpoint` SSE event
248
+ // whose data is a *relative* path (pathname + ?sessionId=...), stripping
249
+ // the origin. When deployed behind nginx, Cursor resolves this relative
250
+ // path against whatever origin it used to open the SSE connection, which
251
+ // may differ from our public API origin. The result is that GetPrompt /
252
+ // tools/call POST requests go to the wrong address and never arrive.
253
+ //
254
+ // Fix: intercept the raw response stream's write() method. When the SDK
255
+ // emits the relative endpoint event we replace it on-the-fly with the
256
+ // full absolute URL so Cursor always uses the correct public address.
257
+ // Only ONE endpoint event is ever written to the wire this way.
258
+ const rawRes = reply.raw;
259
+ const originalWrite = rawRes.write.bind(rawRes);
260
+ rawRes.write = (chunk, encodingOrCb, cb) => {
261
+ if (typeof chunk === 'string' && chunk.startsWith('event: endpoint\ndata:')) {
262
+ // The SDK wrote a relative endpoint event — replace with absolute URL.
263
+ // We know the sessionId from transport.sessionId (read after construction).
264
+ // Use a placeholder here; replaced below once we have the transport.
265
+ // (This interceptor is set before connect(), so the write happens during
266
+ // connect() → transport.start().)
267
+ chunk = chunk.replace(/^(event: endpoint\ndata:).*/, `$1 ${publicOrigin}${messagePath}?sessionId=__SESSION_ID__`);
268
+ }
269
+ if (typeof encodingOrCb === 'function') {
270
+ return originalWrite(chunk, encodingOrCb);
271
+ }
272
+ if (typeof cb === 'function') {
273
+ return originalWrite(chunk, encodingOrCb, cb);
274
+ }
275
+ return originalWrite(chunk);
276
+ };
277
+ const transport = new sse_js_1.SSEServerTransport(messagePath, rawRes);
253
278
  const sdkSessionId = transport.sessionId;
279
+ // Now patch the placeholder with the real sessionId that the SDK assigned.
280
+ // The write interceptor is still active during connect() → start(), so we
281
+ // swap it out for a version that knows the actual sessionId.
282
+ rawRes.write = (chunk, encodingOrCb, cb) => {
283
+ if (typeof chunk === 'string' && chunk.startsWith('event: endpoint\ndata:')) {
284
+ chunk = `event: endpoint\ndata: ${publicOrigin}${messagePath}?sessionId=${sdkSessionId}\n\n`;
285
+ }
286
+ if (typeof encodingOrCb === 'function') {
287
+ return originalWrite(chunk, encodingOrCb);
288
+ }
289
+ if (typeof cb === 'function') {
290
+ return originalWrite(chunk, encodingOrCb, cb);
291
+ }
292
+ return originalWrite(chunk);
293
+ };
254
294
  this.sseTransports.set(sdkSessionId, transport);
255
295
  transport.onclose = () => {
256
296
  logger_1.logger.info({ sdkSessionId, sessionId: session.id }, 'SSE transport closed');
@@ -261,20 +301,12 @@ class HTTPServer {
261
301
  transport.onerror = (err) => {
262
302
  logger_1.logger.warn({ sdkSessionId, error: err.message }, 'SSE transport error');
263
303
  };
264
- // Create a per-connection MCP Server and connect it to the transport.
265
- // connect() calls transport.start() which writes the initial (relative)
266
- // endpoint SSE event. We then immediately overwrite it with an absolute
267
- // URL so Cursor uses the correct public address regardless of how nginx
268
- // forwards the SSE connection.
269
304
  const mcpServer = this.createMcpServer(request.user?.userId, request.user?.email, request.user?.groups, token);
305
+ // connect() calls transport.start() which triggers the intercepted write()
306
+ // above — emitting exactly ONE absolute endpoint event to the wire.
270
307
  await mcpServer.connect(transport);
271
- // Re-send the endpoint event with the full absolute URL.
272
- // This overwrites the relative-path event emitted by the SDK and
273
- // ensures Cursor POSTs subsequent JSON-RPC messages (prompts/get,
274
- // tools/call, etc.) to the correct externally-reachable address.
275
308
  const absoluteMessageUrl = `${publicOrigin}${messagePath}?sessionId=${sdkSessionId}`;
276
- reply.raw.write(`event: endpoint\ndata: ${absoluteMessageUrl}\n\n`);
277
- logger_1.logger.info({ sdkSessionId, absoluteMessageUrl, publicOrigin }, 'SSE stream established — absolute endpoint event sent');
309
+ logger_1.logger.info({ sdkSessionId, absoluteMessageUrl, publicOrigin }, 'SSE stream established — absolute endpoint URL intercepted and sent');
278
310
  // Handle client disconnect
279
311
  request.raw.on('close', () => {
280
312
  clearInterval(heartbeat);
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliotding/ai-agent-mcp",
3
- "version": "0.1.20",
3
+ "version": "0.1.21",
4
4
  "description": "CSP AI Agent MCP Server - Centralized AI tools distribution and management",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -315,15 +315,69 @@ export class HTTPServer {
315
315
  // See config/index.ts for details.
316
316
  const basePath = config.http?.basePath ?? '';
317
317
  const publicOrigin = config.http?.publicOrigin ?? `http://127.0.0.1:${config.http?.port ?? 3000}`;
318
-
319
- // We pass only the path to SSEServerTransport so its internal URL
320
- // parsing produces a clean relative URL. After connect() we re-send
321
- // an absolute endpoint event so Cursor (which may sit behind a proxy
322
- // with a different origin than its SSE connection) uses the correct
323
- // public address for all subsequent JSON-RPC POST messages.
324
318
  const messagePath = `${basePath}/message`;
325
- const transport = new SSEServerTransport(messagePath, reply.raw);
319
+
320
+ // The MCP SDK SSEServerTransport.start() emits an `endpoint` SSE event
321
+ // whose data is a *relative* path (pathname + ?sessionId=...), stripping
322
+ // the origin. When deployed behind nginx, Cursor resolves this relative
323
+ // path against whatever origin it used to open the SSE connection, which
324
+ // may differ from our public API origin. The result is that GetPrompt /
325
+ // tools/call POST requests go to the wrong address and never arrive.
326
+ //
327
+ // Fix: intercept the raw response stream's write() method. When the SDK
328
+ // emits the relative endpoint event we replace it on-the-fly with the
329
+ // full absolute URL so Cursor always uses the correct public address.
330
+ // Only ONE endpoint event is ever written to the wire this way.
331
+ const rawRes = reply.raw;
332
+ const originalWrite = rawRes.write.bind(rawRes);
333
+ (rawRes as NodeJS.WritableStream & { write: typeof originalWrite }).write = (
334
+ chunk: unknown,
335
+ encodingOrCb?: unknown,
336
+ cb?: unknown,
337
+ ): boolean => {
338
+ if (typeof chunk === 'string' && chunk.startsWith('event: endpoint\ndata:')) {
339
+ // The SDK wrote a relative endpoint event — replace with absolute URL.
340
+ // We know the sessionId from transport.sessionId (read after construction).
341
+ // Use a placeholder here; replaced below once we have the transport.
342
+ // (This interceptor is set before connect(), so the write happens during
343
+ // connect() → transport.start().)
344
+ chunk = chunk.replace(
345
+ /^(event: endpoint\ndata:).*/,
346
+ `$1 ${publicOrigin}${messagePath}?sessionId=__SESSION_ID__`,
347
+ );
348
+ }
349
+ if (typeof encodingOrCb === 'function') {
350
+ return originalWrite(chunk as string, encodingOrCb as () => void);
351
+ }
352
+ if (typeof cb === 'function') {
353
+ return originalWrite(chunk as string, encodingOrCb as BufferEncoding, cb as () => void);
354
+ }
355
+ return originalWrite(chunk as string);
356
+ };
357
+
358
+ const transport = new SSEServerTransport(messagePath, rawRes);
326
359
  const sdkSessionId = transport.sessionId;
360
+
361
+ // Now patch the placeholder with the real sessionId that the SDK assigned.
362
+ // The write interceptor is still active during connect() → start(), so we
363
+ // swap it out for a version that knows the actual sessionId.
364
+ (rawRes as NodeJS.WritableStream & { write: typeof originalWrite }).write = (
365
+ chunk: unknown,
366
+ encodingOrCb?: unknown,
367
+ cb?: unknown,
368
+ ): boolean => {
369
+ if (typeof chunk === 'string' && chunk.startsWith('event: endpoint\ndata:')) {
370
+ chunk = `event: endpoint\ndata: ${publicOrigin}${messagePath}?sessionId=${sdkSessionId}\n\n`;
371
+ }
372
+ if (typeof encodingOrCb === 'function') {
373
+ return originalWrite(chunk as string, encodingOrCb as () => void);
374
+ }
375
+ if (typeof cb === 'function') {
376
+ return originalWrite(chunk as string, encodingOrCb as BufferEncoding, cb as () => void);
377
+ }
378
+ return originalWrite(chunk as string);
379
+ };
380
+
327
381
  this.sseTransports.set(sdkSessionId, transport);
328
382
 
329
383
  transport.onclose = () => {
@@ -337,29 +391,21 @@ export class HTTPServer {
337
391
  logger.warn({ sdkSessionId, error: err.message }, 'SSE transport error');
338
392
  };
339
393
 
340
- // Create a per-connection MCP Server and connect it to the transport.
341
- // connect() calls transport.start() which writes the initial (relative)
342
- // endpoint SSE event. We then immediately overwrite it with an absolute
343
- // URL so Cursor uses the correct public address regardless of how nginx
344
- // forwards the SSE connection.
345
394
  const mcpServer = this.createMcpServer(
346
395
  request.user?.userId,
347
396
  request.user?.email,
348
397
  request.user?.groups,
349
398
  token,
350
399
  );
400
+
401
+ // connect() calls transport.start() which triggers the intercepted write()
402
+ // above — emitting exactly ONE absolute endpoint event to the wire.
351
403
  await mcpServer.connect(transport);
352
404
 
353
- // Re-send the endpoint event with the full absolute URL.
354
- // This overwrites the relative-path event emitted by the SDK and
355
- // ensures Cursor POSTs subsequent JSON-RPC messages (prompts/get,
356
- // tools/call, etc.) to the correct externally-reachable address.
357
405
  const absoluteMessageUrl = `${publicOrigin}${messagePath}?sessionId=${sdkSessionId}`;
358
- reply.raw.write(`event: endpoint\ndata: ${absoluteMessageUrl}\n\n`);
359
-
360
406
  logger.info(
361
407
  { sdkSessionId, absoluteMessageUrl, publicOrigin },
362
- 'SSE stream established — absolute endpoint event sent',
408
+ 'SSE stream established — absolute endpoint URL intercepted and sent',
363
409
  );
364
410
 
365
411
  // Handle client disconnect