@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.
- package/dist/api/client.d.ts +4 -1
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +7 -1
- package/dist/api/client.js.map +1 -1
- package/dist/client-adapters/codex-adapter.d.ts +49 -0
- package/dist/client-adapters/codex-adapter.d.ts.map +1 -0
- package/dist/client-adapters/codex-adapter.js +72 -0
- package/dist/client-adapters/codex-adapter.js.map +1 -0
- package/dist/client-adapters/cursor-adapter.d.ts +37 -0
- package/dist/client-adapters/cursor-adapter.d.ts.map +1 -0
- package/dist/client-adapters/cursor-adapter.js +68 -0
- package/dist/client-adapters/cursor-adapter.js.map +1 -0
- package/dist/client-adapters/index.d.ts +91 -0
- package/dist/client-adapters/index.d.ts.map +1 -0
- package/dist/client-adapters/index.js +49 -0
- package/dist/client-adapters/index.js.map +1 -0
- package/dist/config/index.d.ts +19 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +12 -2
- package/dist/config/index.js.map +1 -1
- package/dist/prompts/manager.d.ts +73 -0
- package/dist/prompts/manager.d.ts.map +1 -1
- package/dist/prompts/manager.js +243 -7
- package/dist/prompts/manager.js.map +1 -1
- package/dist/server/http.d.ts +10 -6
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +130 -89
- package/dist/server/http.js.map +1 -1
- package/dist/server/streamable-http.d.ts +28 -0
- package/dist/server/streamable-http.d.ts.map +1 -0
- package/dist/server/streamable-http.js +147 -0
- package/dist/server/streamable-http.js.map +1 -0
- package/dist/server.d.ts +8 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +60 -96
- package/dist/server.js.map +1 -1
- package/dist/telemetry/manager.d.ts +5 -0
- package/dist/telemetry/manager.d.ts.map +1 -1
- package/dist/telemetry/manager.js +5 -0
- package/dist/telemetry/manager.js.map +1 -1
- package/dist/tools/manage-subscription.d.ts.map +1 -1
- package/dist/tools/manage-subscription.js +162 -20
- package/dist/tools/manage-subscription.js.map +1 -1
- package/dist/tools/policy-generator.d.ts +31 -0
- package/dist/tools/policy-generator.d.ts.map +1 -0
- package/dist/tools/policy-generator.js +53 -0
- package/dist/tools/policy-generator.js.map +1 -0
- package/dist/tools/query-usage-stats.d.ts +8 -0
- package/dist/tools/query-usage-stats.d.ts.map +1 -1
- package/dist/tools/query-usage-stats.js +26 -1
- package/dist/tools/query-usage-stats.js.map +1 -1
- package/dist/tools/resolve-prompt-content.d.ts.map +1 -1
- package/dist/tools/resolve-prompt-content.js +39 -1
- package/dist/tools/resolve-prompt-content.js.map +1 -1
- package/dist/tools/search-resources.d.ts +5 -0
- package/dist/tools/search-resources.d.ts.map +1 -1
- package/dist/tools/search-resources.js +73 -7
- package/dist/tools/search-resources.js.map +1 -1
- package/dist/tools/sync-resources.d.ts.map +1 -1
- package/dist/tools/sync-resources.js +284 -99
- package/dist/tools/sync-resources.js.map +1 -1
- package/dist/tools/uninstall-resource.d.ts.map +1 -1
- package/dist/tools/uninstall-resource.js +100 -12
- package/dist/tools/uninstall-resource.js.map +1 -1
- package/dist/types/tools.d.ts +128 -1
- package/dist/types/tools.d.ts.map +1 -1
- package/dist/utils/codex-paths.d.ts +39 -0
- package/dist/utils/codex-paths.d.ts.map +1 -0
- package/dist/utils/codex-paths.js +56 -0
- package/dist/utils/codex-paths.js.map +1 -0
- package/package.json +1 -1
- package/dist/transport/sse.d.ts +0 -29
- package/dist/transport/sse.d.ts.map +0 -1
- package/dist/transport/sse.js +0 -271
- package/dist/transport/sse.js.map +0 -1
package/dist/server/http.js
CHANGED
|
@@ -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 =
|
|
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
|
package/dist/server/http.js.map
CHANGED
|
@@ -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
|
/**
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
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"}
|