@elliotding/ai-agent-mcp 0.2.21 → 0.2.23

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 (75) hide show
  1. package/dist/api/client.d.ts +4 -1
  2. package/dist/api/client.d.ts.map +1 -1
  3. package/dist/api/client.js +7 -1
  4. package/dist/api/client.js.map +1 -1
  5. package/dist/client-adapters/codex-adapter.d.ts +49 -0
  6. package/dist/client-adapters/codex-adapter.d.ts.map +1 -0
  7. package/dist/client-adapters/codex-adapter.js +72 -0
  8. package/dist/client-adapters/codex-adapter.js.map +1 -0
  9. package/dist/client-adapters/cursor-adapter.d.ts +37 -0
  10. package/dist/client-adapters/cursor-adapter.d.ts.map +1 -0
  11. package/dist/client-adapters/cursor-adapter.js +68 -0
  12. package/dist/client-adapters/cursor-adapter.js.map +1 -0
  13. package/dist/client-adapters/index.d.ts +91 -0
  14. package/dist/client-adapters/index.d.ts.map +1 -0
  15. package/dist/client-adapters/index.js +49 -0
  16. package/dist/client-adapters/index.js.map +1 -0
  17. package/dist/config/index.d.ts +19 -1
  18. package/dist/config/index.d.ts.map +1 -1
  19. package/dist/config/index.js +12 -2
  20. package/dist/config/index.js.map +1 -1
  21. package/dist/prompts/manager.d.ts +73 -0
  22. package/dist/prompts/manager.d.ts.map +1 -1
  23. package/dist/prompts/manager.js +243 -7
  24. package/dist/prompts/manager.js.map +1 -1
  25. package/dist/server/http.d.ts +10 -6
  26. package/dist/server/http.d.ts.map +1 -1
  27. package/dist/server/http.js +130 -89
  28. package/dist/server/http.js.map +1 -1
  29. package/dist/server/streamable-http.d.ts +28 -0
  30. package/dist/server/streamable-http.d.ts.map +1 -0
  31. package/dist/server/streamable-http.js +147 -0
  32. package/dist/server/streamable-http.js.map +1 -0
  33. package/dist/server.d.ts +8 -1
  34. package/dist/server.d.ts.map +1 -1
  35. package/dist/server.js +60 -96
  36. package/dist/server.js.map +1 -1
  37. package/dist/telemetry/manager.d.ts +5 -0
  38. package/dist/telemetry/manager.d.ts.map +1 -1
  39. package/dist/telemetry/manager.js +5 -0
  40. package/dist/telemetry/manager.js.map +1 -1
  41. package/dist/tools/manage-subscription.d.ts.map +1 -1
  42. package/dist/tools/manage-subscription.js +162 -20
  43. package/dist/tools/manage-subscription.js.map +1 -1
  44. package/dist/tools/policy-generator.d.ts +31 -0
  45. package/dist/tools/policy-generator.d.ts.map +1 -0
  46. package/dist/tools/policy-generator.js +53 -0
  47. package/dist/tools/policy-generator.js.map +1 -0
  48. package/dist/tools/query-usage-stats.d.ts +8 -0
  49. package/dist/tools/query-usage-stats.d.ts.map +1 -1
  50. package/dist/tools/query-usage-stats.js +26 -1
  51. package/dist/tools/query-usage-stats.js.map +1 -1
  52. package/dist/tools/resolve-prompt-content.d.ts.map +1 -1
  53. package/dist/tools/resolve-prompt-content.js +39 -1
  54. package/dist/tools/resolve-prompt-content.js.map +1 -1
  55. package/dist/tools/search-resources.d.ts +5 -0
  56. package/dist/tools/search-resources.d.ts.map +1 -1
  57. package/dist/tools/search-resources.js +73 -7
  58. package/dist/tools/search-resources.js.map +1 -1
  59. package/dist/tools/sync-resources.d.ts.map +1 -1
  60. package/dist/tools/sync-resources.js +284 -99
  61. package/dist/tools/sync-resources.js.map +1 -1
  62. package/dist/tools/uninstall-resource.d.ts.map +1 -1
  63. package/dist/tools/uninstall-resource.js +100 -12
  64. package/dist/tools/uninstall-resource.js.map +1 -1
  65. package/dist/types/tools.d.ts +128 -1
  66. package/dist/types/tools.d.ts.map +1 -1
  67. package/dist/utils/codex-paths.d.ts +39 -0
  68. package/dist/utils/codex-paths.d.ts.map +1 -0
  69. package/dist/utils/codex-paths.js +56 -0
  70. package/dist/utils/codex-paths.js.map +1 -0
  71. package/package.json +1 -1
  72. package/dist/transport/sse.d.ts +0 -29
  73. package/dist/transport/sse.d.ts.map +0 -1
  74. package/dist/transport/sse.js +0 -271
  75. package/dist/transport/sse.js.map +0 -1
@@ -9,6 +9,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
9
9
  };
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.httpServer = exports.HTTPServer = void 0;
12
+ exports.createMcpServerInstance = createMcpServerInstance;
12
13
  const fastify_1 = __importDefault(require("fastify"));
13
14
  const cors_1 = __importDefault(require("@fastify/cors"));
14
15
  const helmet_1 = __importDefault(require("@fastify/helmet"));
@@ -18,6 +19,8 @@ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
18
19
  const sync_resources_js_1 = require("../tools/sync-resources.js");
19
20
  const index_js_2 = require("../telemetry/index.js");
20
21
  const index_js_3 = require("../prompts/index.js");
22
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
23
+ const SERVER_VERSION = require('../../package.json').version;
21
24
  // Inject syncResources into promptManager for post-restart recovery.
22
25
  // Must be done after both modules are loaded to avoid circular-import issues.
23
26
  index_js_3.promptManager.setSyncResourcesFn(sync_resources_js_1.syncResources);
@@ -100,94 +103,6 @@ class HTTPServer {
100
103
  }));
101
104
  }
102
105
  // ─────────────────────────────────────────────────────────────────────────
103
- // MCP Server factory
104
- // ─────────────────────────────────────────────────────────────────────────
105
- /**
106
- * Creates a new SDK Server instance and registers all tools from toolRegistry.
107
- * A fresh instance is created per SSE connection so that each session is
108
- * isolated (matching ACM's createMCPServer-per-connection pattern).
109
- */
110
- createMcpServer(userId, email, groups, userToken) {
111
- const server = new index_js_1.Server({ name: 'csp-ai-agent-mcp', version: '0.2.0' },
112
- // Declare prompts, tools, and logging capabilities only.
113
- // REMOVED resources capability to align with async-pilot's working implementation.
114
- // Cursor should use standard prompts/get instead of probing prompt:// as resources.
115
- { capabilities: { tools: {}, prompts: {}, logging: {} } });
116
- // Install Prompt list/get handlers synchronously on this Server instance.
117
- // Pass userToken so GetPrompt can attribute telemetry to the correct user.
118
- index_js_3.promptManager.installHandlers(server, userToken);
119
- // tools/list
120
- server.setRequestHandler(types_js_1.ListToolsRequestSchema, () => ({
121
- tools: registry_1.toolRegistry.getMCPToolDefinitions(),
122
- }));
123
- // Auto-sync subscribed resources once the MCP handshake is fully complete.
124
- // Runs in the background so it never blocks the connection setup.
125
- server.oninitialized = () => {
126
- logger_1.logger.info({ userId }, 'MCP initialized — triggering background sync_resources');
127
- // Flush any pending telemetry immediately on (re)connect so events from
128
- // before a disconnect are not held until the next 10-second tick.
129
- index_js_2.telemetry.flushOnReconnect();
130
- // eslint-disable-next-line @typescript-eslint/require-await
131
- void (0, sync_resources_js_1.syncResources)({ mode: 'incremental', scope: 'global', user_token: userToken }).then(async (result) => {
132
- if (result.success) {
133
- logger_1.logger.info({ userId, synced: result.data?.summary?.synced, cached: result.data?.summary?.cached }, 'Auto sync_resources on connect completed');
134
- // If the sync result includes local_actions_required (Rule files /
135
- // MCP entries that must be written on the user's local machine),
136
- // cache them in PromptManager. They will be embedded directly into
137
- // the csp-ai-agent-setup prompt content the next time the AI calls
138
- // GetPrompt for that prompt, so the AI receives them without needing
139
- // to call sync_resources again and without relying on sendLoggingMessage
140
- // (which is unreliable — the connection may already be closed by then).
141
- const actions = result.data?.local_actions_required;
142
- if (actions && actions.length > 0) {
143
- index_js_3.promptManager.storeSyncActions(userToken ?? '', actions);
144
- }
145
- }
146
- else {
147
- logger_1.logger.warn({ userId, error: result.error }, 'Auto sync_resources on connect failed');
148
- }
149
- }).catch((err) => {
150
- logger_1.logger.error({ userId, error: err instanceof Error ? err.message : String(err) }, 'Auto sync_resources on connect threw an error');
151
- });
152
- };
153
- // tools/call
154
- server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
155
- const { name, arguments: args = {} } = request.params;
156
- // Permission check when user context is available
157
- if (userId && groups && groups.length > 0) {
158
- const permCheck = (0, middleware_1.checkToolCallPermission)(name, { userId, email: email ?? '', groups });
159
- if (!permCheck.allowed) {
160
- return {
161
- content: [{ type: 'text', text: `Permission denied: ${permCheck.reason}` }],
162
- isError: true,
163
- };
164
- }
165
- }
166
- // Inject the authenticated token so every tool can call the CSP API without
167
- // requiring the AI to know about or pass user_token explicitly.
168
- // The AI-supplied user_token (if any) takes precedence; otherwise we fall back
169
- // to the token from the SSE connection that created this session.
170
- const enrichedArgs = {
171
- user_token: userToken,
172
- ...args,
173
- };
174
- try {
175
- const result = await registry_1.toolRegistry.callTool(name, enrichedArgs);
176
- const text = typeof result === 'string' ? result : JSON.stringify(result, null, 2);
177
- return { content: [{ type: 'text', text }] };
178
- }
179
- catch (err) {
180
- const msg = err instanceof Error ? err.message : String(err);
181
- logger_1.logger.error({ toolName: name, err }, 'Tool execution failed');
182
- return {
183
- content: [{ type: 'text', text: `Error: ${msg}` }],
184
- isError: true,
185
- };
186
- }
187
- });
188
- return server;
189
- }
190
- // ─────────────────────────────────────────────────────────────────────────
191
106
  // Handlers
192
107
  // ─────────────────────────────────────────────────────────────────────────
193
108
  /**
@@ -295,7 +210,7 @@ class HTTPServer {
295
210
  transport.onerror = (err) => {
296
211
  logger_1.logger.warn({ sdkSessionId, error: err.message }, 'SSE transport error');
297
212
  };
298
- const mcpServer = this.createMcpServer(request.user?.userId, request.user?.email, request.user?.groups, token);
213
+ const mcpServer = createMcpServerInstance(request.user?.userId, request.user?.email, request.user?.groups, token);
299
214
  // connect() calls transport.start() which triggers the intercepted write()
300
215
  // above — emitting exactly ONE absolute endpoint event to the wire.
301
216
  await mcpServer.connect(transport);
@@ -444,4 +359,130 @@ class HTTPServer {
444
359
  exports.HTTPServer = HTTPServer;
445
360
  // Singleton instance (initialized without cache manager initially)
446
361
  exports.httpServer = new HTTPServer();
362
+ function cacheToolFollowUpActions(userToken, result) {
363
+ if (!result || typeof result !== 'object') {
364
+ return;
365
+ }
366
+ const toolResult = result;
367
+ if (!toolResult.success || !toolResult.data) {
368
+ return;
369
+ }
370
+ const actions = toolResult.data.local_actions_required;
371
+ if (Array.isArray(actions) && actions.length > 0) {
372
+ index_js_3.promptManager.storeSyncActions(userToken ?? '', actions);
373
+ }
374
+ if (toolResult.data.restart_required && toolResult.data.restart_hint) {
375
+ index_js_3.promptManager.storeRestartHint(userToken ?? '', toolResult.data.restart_hint);
376
+ }
377
+ }
378
+ function buildImmediateLocalActionSummary(result) {
379
+ if (!result || typeof result !== 'object') {
380
+ return undefined;
381
+ }
382
+ const toolResult = result;
383
+ const actions = toolResult.data?.local_actions_required;
384
+ if (!toolResult.success || !Array.isArray(actions) || actions.length === 0) {
385
+ return undefined;
386
+ }
387
+ const summary = toolResult.data?.local_actions_summary;
388
+ const actionTypes = summary?.action_types?.length
389
+ ? summary.action_types
390
+ : Array.from(new Set(actions.map((action) => action.action)));
391
+ return [
392
+ 'MANDATORY LOCAL ACTIONS REQUIRED',
393
+ summary?.message ?? 'Execute every local_actions_required item immediately on the user\'s local machine before continuing.',
394
+ `Action count: ${summary?.action_count ?? actions.length}`,
395
+ `Action types: ${actionTypes.join(', ')}`,
396
+ 'Do not verify local filesystem/config state or mark the case complete until these actions have been executed.',
397
+ 'Do not wait for a later setup prompt if the actions are already present in this tool result.',
398
+ ].join('\n');
399
+ }
400
+ // ─────────────────────────────────────────────────────────────────────────────
401
+ // Shared MCP Server factory
402
+ // Exported so that stdio transport in server.ts can reuse the same
403
+ // initialization logic (promptManager, tools, oninitialized auto-sync)
404
+ // without duplicating handler registration.
405
+ // ─────────────────────────────────────────────────────────────────────────────
406
+ /**
407
+ * Creates a fully-initialized MCP SDK Server instance with all tools,
408
+ * prompt handlers, and the oninitialized auto-sync hook wired up.
409
+ *
410
+ * Used by both the SSE transport (per-connection in HTTPServer) and the
411
+ * stdio transport (single instance in server.ts).
412
+ */
413
+ function createMcpServerInstance(userId, email, groups, userToken, agentProfile) {
414
+ // Resolve the active profile: caller > server-wide config > default 'cursor'.
415
+ const resolvedProfile = agentProfile ?? config_1.config.agentProfile ?? 'cursor';
416
+ const server = new index_js_1.Server({ name: 'csp-ai-agent-mcp', version: SERVER_VERSION }, { capabilities: { tools: {}, prompts: {}, logging: {} } });
417
+ index_js_3.promptManager.installHandlers(server, userToken);
418
+ server.setRequestHandler(types_js_1.ListToolsRequestSchema, () => ({
419
+ tools: registry_1.toolRegistry.getMCPToolDefinitions(),
420
+ }));
421
+ server.oninitialized = () => {
422
+ logger_1.logger.info({ userId, agentProfile: resolvedProfile }, 'MCP initialized — triggering background sync_resources');
423
+ index_js_2.telemetry.flushOnReconnect();
424
+ void (0, sync_resources_js_1.syncResources)({
425
+ mode: 'incremental',
426
+ scope: 'global',
427
+ user_token: userToken,
428
+ agent_profile: resolvedProfile,
429
+ }).then(async (result) => {
430
+ if (result.success) {
431
+ logger_1.logger.info({ userId, synced: result.data?.summary?.synced, cached: result.data?.summary?.cached }, 'Auto sync_resources on connect completed');
432
+ const actions = result.data?.local_actions_required;
433
+ if (actions && actions.length > 0) {
434
+ // For Codex: storeSyncActions also caches merge_toml and restart_hint
435
+ // so the AI can pick them up via the csp-ai-agent-setup prompt.
436
+ index_js_3.promptManager.storeSyncActions(userToken ?? '', actions);
437
+ }
438
+ // Cache restart_required/restart_hint so the next GetPrompt delivers them.
439
+ if (result.data?.restart_required && result.data?.restart_hint) {
440
+ index_js_3.promptManager.storeRestartHint(userToken ?? '', result.data.restart_hint);
441
+ }
442
+ }
443
+ else {
444
+ logger_1.logger.warn({ userId, error: result.error }, 'Auto sync_resources on connect failed');
445
+ }
446
+ }).catch((err) => {
447
+ logger_1.logger.error({ userId, error: err instanceof Error ? err.message : String(err) }, 'Auto sync_resources on connect threw an error');
448
+ });
449
+ };
450
+ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
451
+ const { name, arguments: args = {} } = request.params;
452
+ if (userId && groups && groups.length > 0) {
453
+ const permCheck = (0, middleware_1.checkToolCallPermission)(name, { userId, email: email ?? '', groups });
454
+ if (!permCheck.allowed) {
455
+ return {
456
+ content: [{ type: 'text', text: `Permission denied: ${permCheck.reason}` }],
457
+ isError: true,
458
+ };
459
+ }
460
+ }
461
+ const enrichedArgs = {
462
+ user_token: userToken,
463
+ ...args,
464
+ };
465
+ try {
466
+ const result = await registry_1.toolRegistry.callTool(name, enrichedArgs);
467
+ cacheToolFollowUpActions(userToken, result);
468
+ const text = typeof result === 'string' ? result : JSON.stringify(result, null, 2);
469
+ const immediateSummary = buildImmediateLocalActionSummary(result);
470
+ return {
471
+ content: [
472
+ ...(immediateSummary ? [{ type: 'text', text: immediateSummary }] : []),
473
+ { type: 'text', text },
474
+ ],
475
+ };
476
+ }
477
+ catch (err) {
478
+ const msg = err instanceof Error ? err.message : String(err);
479
+ logger_1.logger.error({ toolName: name, err }, 'Tool execution failed');
480
+ return {
481
+ content: [{ type: 'text', text: `Error: ${msg}` }],
482
+ isError: true,
483
+ };
484
+ }
485
+ });
486
+ return server;
487
+ }
447
488
  //# sourceMappingURL=http.js.map
@@ -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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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Streamable HTTP Server Transport
3
+ *
4
+ * Implements the MCP Streamable HTTP transport specification (2025-03-26),
5
+ * which Codex CLI uses to communicate with MCP servers.
6
+ *
7
+ * Differences from the legacy SSE transport (http.ts):
8
+ * - Stateless: each POST /mcp request is processed independently by a new
9
+ * Server instance; no sessionId or persistent SSE connection is maintained.
10
+ * - Single endpoint: all JSON-RPC messages arrive as POST /mcp.
11
+ * - GET /mcp is supported for SSE streaming server notifications (optional).
12
+ *
13
+ * Authentication:
14
+ * - Reuses tokenAuthOrLegacyMiddleware from the SSE server.
15
+ * - For Codex (stdio MCP config without a bearer token), auth is skipped when
16
+ * the middleware finds no Authorization header and the server has been
17
+ * configured with CSP_AGENT_PROFILE=codex.
18
+ */
19
+ export declare class StreamableHTTPServer {
20
+ private readonly fastify;
21
+ constructor();
22
+ private setupMiddleware;
23
+ private setupRoutes;
24
+ start(): Promise<void>;
25
+ stop(): Promise<void>;
26
+ }
27
+ export declare const streamableHttpServer: StreamableHTTPServer;
28
+ //# sourceMappingURL=streamable-http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamable-http.d.ts","sourceRoot":"","sources":["../../src/server/streamable-http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAeH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;;IAgB1C,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,WAAW;IA6Fb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAatB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAI5B;AAED,eAAO,MAAM,oBAAoB,sBAA6B,CAAC"}
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ /**
3
+ * Streamable HTTP Server Transport
4
+ *
5
+ * Implements the MCP Streamable HTTP transport specification (2025-03-26),
6
+ * which Codex CLI uses to communicate with MCP servers.
7
+ *
8
+ * Differences from the legacy SSE transport (http.ts):
9
+ * - Stateless: each POST /mcp request is processed independently by a new
10
+ * Server instance; no sessionId or persistent SSE connection is maintained.
11
+ * - Single endpoint: all JSON-RPC messages arrive as POST /mcp.
12
+ * - GET /mcp is supported for SSE streaming server notifications (optional).
13
+ *
14
+ * Authentication:
15
+ * - Reuses tokenAuthOrLegacyMiddleware from the SSE server.
16
+ * - For Codex (stdio MCP config without a bearer token), auth is skipped when
17
+ * the middleware finds no Authorization header and the server has been
18
+ * configured with CSP_AGENT_PROFILE=codex.
19
+ */
20
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21
+ return (mod && mod.__esModule) ? mod : { "default": mod };
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.streamableHttpServer = exports.StreamableHTTPServer = void 0;
25
+ const fastify_1 = __importDefault(require("fastify"));
26
+ const cors_1 = __importDefault(require("@fastify/cors"));
27
+ const helmet_1 = __importDefault(require("@fastify/helmet"));
28
+ const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/server/streamableHttp.js");
29
+ const index_js_1 = require("../config/index.js");
30
+ const logger_js_1 = require("../utils/logger.js");
31
+ const middleware_js_1 = require("../auth/middleware.js");
32
+ const http_js_1 = require("./http.js");
33
+ const index_js_2 = require("../telemetry/index.js");
34
+ class StreamableHTTPServer {
35
+ fastify;
36
+ constructor() {
37
+ this.fastify = (0, fastify_1.default)({
38
+ logger: false,
39
+ bodyLimit: 10 * 1024 * 1024, // 10 MB
40
+ });
41
+ this.setupMiddleware();
42
+ this.setupRoutes();
43
+ }
44
+ // ─────────────────────────────────────────────────────────────────────────
45
+ // Middleware
46
+ // ─────────────────────────────────────────────────────────────────────────
47
+ setupMiddleware() {
48
+ void this.fastify.register(cors_1.default, { origin: true });
49
+ void this.fastify.register(helmet_1.default, {
50
+ contentSecurityPolicy: false,
51
+ crossOriginEmbedderPolicy: false,
52
+ });
53
+ }
54
+ // ─────────────────────────────────────────────────────────────────────────
55
+ // Routes
56
+ // ─────────────────────────────────────────────────────────────────────────
57
+ setupRoutes() {
58
+ const basePath = index_js_1.config.streamableHttp?.basePath ?? index_js_1.config.http?.basePath ?? '';
59
+ // Health check — same contract as the SSE server
60
+ this.fastify.get(`${basePath}/health`, async (_req, reply) => {
61
+ await reply.send({ status: 'healthy', transport: 'streamable_http' });
62
+ });
63
+ // Primary MCP endpoint — handles both GET (SSE notification stream) and
64
+ // POST (JSON-RPC request/response or SSE streaming response)
65
+ const mcpPath = `${basePath}/mcp`;
66
+ this.fastify.all(mcpPath, async (req, reply) => {
67
+ // Auth — same middleware as the SSE server.
68
+ // For Codex with CSP_AGENT_PROFILE=codex, the middleware should be
69
+ // configured to allow unauthenticated requests (handled at deploy time).
70
+ try {
71
+ await (0, middleware_js_1.tokenAuthOrLegacyMiddleware)(req, reply);
72
+ }
73
+ catch {
74
+ // tokenAuthOrLegacyMiddleware already replied with a 401/403; bail out.
75
+ return;
76
+ }
77
+ if (reply.sent) {
78
+ return;
79
+ }
80
+ const authedReq = req;
81
+ const token = authedReq.headers.authorization?.replace(/^Bearer\s+/i, '');
82
+ // Register the token with the telemetry manager so that:
83
+ // 1. The token is added to activeTokens (required for flush() to proceed).
84
+ // 2. The per-user slot is initialised in the telemetry file.
85
+ //
86
+ // Background: unlike the SSE transport (which calls setUserToken once on
87
+ // connection and keeps the token active for the session lifetime), the
88
+ // Streamable HTTP transport is stateless — each POST /mcp is an independent
89
+ // request with no persistent session. Without this call, activeTokens
90
+ // remains empty and telemetry.flush() exits early, so recorded invocation
91
+ // events accumulate locally but are never uploaded to the remote API.
92
+ if (token) {
93
+ index_js_2.telemetry.setUserToken(token);
94
+ }
95
+ // Per-request stateless Server instance — identical setup to the SSE path.
96
+ const mcpServer = (0, http_js_1.createMcpServerInstance)(authedReq.user?.userId, authedReq.user?.email, authedReq.user?.groups, token);
97
+ const transport = new streamableHttp_js_1.StreamableHTTPServerTransport({
98
+ // Stateless mode: each request is independent; session management is
99
+ // left to the client (Codex handles reconnection on its own).
100
+ sessionIdGenerator: undefined,
101
+ });
102
+ // Connect MCP Server to transport; the transport will send the response
103
+ // through the underlying Node.js ServerResponse (accessed via reply.raw).
104
+ await mcpServer.connect(transport);
105
+ try {
106
+ await transport.handleRequest(req.raw, reply.raw, req.body);
107
+ }
108
+ catch (err) {
109
+ const msg = err instanceof Error ? err.message : String(err);
110
+ logger_js_1.logger.error({ err, path: req.url }, `Streamable HTTP MCP request failed: ${msg}`);
111
+ if (!reply.sent) {
112
+ await reply.code(500).send({ error: 'Internal server error' });
113
+ }
114
+ }
115
+ finally {
116
+ // Clean up: close the transport so the underlying connection is freed.
117
+ // The Server instance will be garbage-collected after this request.
118
+ await transport.close().catch(() => undefined);
119
+ // Trigger an immediate best-effort flush after each Streamable HTTP
120
+ // request so that telemetry events recorded during this request (e.g.
121
+ // resolve_prompt_content invocations) are uploaded promptly.
122
+ // Fire-and-forget: flush errors are handled inside flush() itself.
123
+ if (token) {
124
+ index_js_2.telemetry.flush().catch(() => undefined);
125
+ }
126
+ }
127
+ });
128
+ }
129
+ // ─────────────────────────────────────────────────────────────────────────
130
+ // Lifecycle
131
+ // ─────────────────────────────────────────────────────────────────────────
132
+ async start() {
133
+ // Use dedicated streamableHttp config block when available (dual mode),
134
+ // fall back to http config for standalone streamable_http mode.
135
+ const host = index_js_1.config.streamableHttp?.host ?? index_js_1.config.http?.host ?? '0.0.0.0';
136
+ const port = index_js_1.config.streamableHttp?.port ?? index_js_1.config.http?.port ?? 3001;
137
+ await this.fastify.listen({ host, port });
138
+ logger_js_1.logger.info({ host, port, transport: 'streamable_http' }, `✅ Streamable HTTP MCP server listening on ${host}:${port}`);
139
+ }
140
+ async stop() {
141
+ await this.fastify.close();
142
+ logger_js_1.logger.info('Streamable HTTP server stopped');
143
+ }
144
+ }
145
+ exports.StreamableHTTPServer = StreamableHTTPServer;
146
+ exports.streamableHttpServer = new StreamableHTTPServer();
147
+ //# sourceMappingURL=streamable-http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamable-http.js","sourceRoot":"","sources":["../../src/server/streamable-http.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -3,7 +3,14 @@
3
3
  * Implements Model Context Protocol server with dual transport support
4
4
  */
5
5
  /**
6
- * Start MCP Server (auto-detect transport mode)
6
+ * Start MCP Server (auto-detect transport mode from config)
7
+ *
8
+ * Transport modes:
9
+ * stdio — local stdio (Cursor local MCP, default)
10
+ * sse — legacy SSE only (Cursor remote MCP)
11
+ * streamable_http — Streamable HTTP only (Codex CLI)
12
+ * dual — SSE (port HTTP_PORT) + Streamable HTTP (port STREAMABLE_HTTP_PORT)
13
+ * simultaneously, serving Cursor and Codex from the same process
7
14
  */
8
15
  export declare function startServer(): Promise<void>;
9
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqKH;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAcjD;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAiBhD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6FH;;;;;;;;;GASG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBjD;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBhD"}