@squadrules/mcp 5.18.0 → 5.19.0

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.
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "5.18.0"
2
+ version: "5.19.0"
3
3
  slug: adapter-migration
4
4
  title: Adapter Migration Workflow
5
5
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  slug: author-adapter
3
- version: "5.18.0"
3
+ version: "5.19.0"
4
4
  title: Author Adapter (Create / Review / Refactor)
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  slug: bulk-insert-adapters-via-cli
3
- version: "5.18.0"
3
+ version: "5.19.0"
4
4
  title: Bulk Insert Adapters via SQUADRULES CLI
5
5
  ---
6
6
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "5.18.0"
2
+ version: "5.19.0"
3
3
  slug: challenge-type-guide
4
4
  title: Challenge Type Selection Guide
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "5.18.0"
2
+ version: "5.19.0"
3
3
  slug: critic-loop-guide
4
4
  title: Critic Loop Integration and Mutation Gate Guide
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "5.18.0"
2
+ version: "5.19.0"
3
3
  slug: critic-loop
4
4
  title: Critic Loop
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "5.18.0"
2
+ version: "5.19.0"
3
3
  slug: protocol-linking-guide
4
4
  title: Adapter Linking Guide
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "5.18.0"
2
+ version: "5.19.0"
3
3
  slug: refine-search
4
4
  title: Get help refining your search
5
5
  ---
@@ -1,16 +1,19 @@
1
1
  import { AsyncLocalStorage } from 'node:async_hooks';
2
2
  import express from 'express';
3
- import { NodeStreamableHTTPServerTransport } from '@modelcontextprotocol/node';
4
3
  import type { MemoryQdrantStore } from '../services/memory/store.js';
5
4
  export interface McpRequestContext {
6
5
  req: express.Request;
7
- transport: NodeStreamableHTTPServerTransport;
8
6
  }
9
7
  export declare const mcpRequestStore: AsyncLocalStorage<McpRequestContext>;
10
8
  /**
11
9
  * Set up MCP endpoint handling.
12
- * Uses a new MCP server instance per request so many requests can be handled
13
- * concurrently on each node (no single-transport limit).
10
+ *
11
+ * Uses `createMcpHandler` from the SDK (2026-07-28 wire shape):
12
+ * - Modern clients (sending per-request `_meta` with protocolVersion) get the
13
+ * full 2026-07-28 wire format: `resultType: "complete"`, `_meta` validation,
14
+ * `serverInfo` in result `_meta`, and MCP-allocated error codes.
15
+ * - Older clients (no `_meta` envelope) fall through to stateless 2025-era
16
+ * serving via the same factory, preserving interop with prior SDK revisions.
14
17
  *
15
18
  * @param app Express application instance
16
19
  * @param memoryStore Store used to create per-request MCP servers
@@ -1 +1 @@
1
- {"version":3,"file":"http-mcp-handler.d.ts","sourceRoot":"","sources":["../../src/http/http-mcp-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,iCAAiC,EAAE,MAAM,4BAA4B,CAAC;AAe/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAMrE,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;IACrB,SAAS,EAAE,iCAAiC,CAAC;CAC9C;AAED,eAAO,MAAM,eAAe,sCAA6C,CAAC;AA8E1E;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,QAyOlF"}
1
+ {"version":3,"file":"http-mcp-handler.d.ts","sourceRoot":"","sources":["../../src/http/http-mcp-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,OAAO,MAAM,SAAS,CAAC;AAkB9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAMrE,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,sCAA6C,CAAC;AA0D1E;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,QAmPlF"}
@@ -1,5 +1,6 @@
1
1
  import { AsyncLocalStorage } from 'node:async_hooks';
2
- import { NodeStreamableHTTPServerTransport } from '@modelcontextprotocol/node';
2
+ import { createMcpHandler } from '@modelcontextprotocol/server';
3
+ import { toNodeHandler } from '@modelcontextprotocol/node';
3
4
  import { structuredLogger } from '../utils/structured-logger.js';
4
5
  import { LOG_LEVEL, AUTH_ALLOWED_AUDIENCES, AUTH_ENABLED, AUTH_TRUSTED_ISSUERS, MAX_CONCURRENT_MCP_REQUESTS_RAW } from '../config.js';
5
6
  import { resolveMaxConcurrentRequests } from '../utils/concurrency-limit.js';
@@ -10,16 +11,15 @@ import { buildListOfferingsForUIResult } from '../mcp-apps/list-offerings-for-ui
10
11
  import { createServer } from '../server.js';
11
12
  import { SquadrulesError } from '../types/index.js';
12
13
  import { validateBearerToken } from './bearer-validate.js';
13
- import { generateCorrelationId, installResponseCapture, emitRequestStart, emitRequestEnd, emitToolCallAudit, AUDIT_LOG_LEVEL } from './mcp-audit-emit.js';
14
+ import { generateCorrelationId, emitRequestStart, emitRequestEnd, emitToolCallAudit, AUDIT_LOG_LEVEL, MCP_ERROR_CODES, captureResponseBody } from './mcp-audit-emit.js';
14
15
  const MAX_CONCURRENT = resolveMaxConcurrentRequests(MAX_CONCURRENT_MCP_REQUESTS_RAW);
15
16
  export const mcpRequestStore = new AsyncLocalStorage();
16
17
  // Track request start times by ID for accurate cancellation timing. Stale entries swept periodically.
17
18
  const requestTimestamps = new Map();
18
- const STALE_TIMESTAMP_MS = 120_000;
19
19
  setInterval(() => {
20
- const now = Date.now();
20
+ const cutoff = Date.now() - 120_000;
21
21
  for (const [id, start] of requestTimestamps.entries()) {
22
- if (now - start > STALE_TIMESTAMP_MS)
22
+ if (start < cutoff)
23
23
  requestTimestamps.delete(id);
24
24
  }
25
25
  }, 60_000);
@@ -49,9 +49,8 @@ async function resolveMcpAuthPayload(req) {
49
49
  return undefined;
50
50
  }
51
51
  function sanitizeMcpErrorDetails(details) {
52
- if (!details || typeof details !== 'object') {
52
+ if (!details || typeof details !== 'object')
53
53
  return {};
54
- }
55
54
  try {
56
55
  return JSON.parse(JSON.stringify(details));
57
56
  }
@@ -66,9 +65,7 @@ function mcpErrorToHelp(error) {
66
65
  const nextAction = typeof details['next_action'] === 'string' ? details['next_action'] : undefined;
67
66
  return {
68
67
  message: error.message,
69
- error_code: typeof error.code === 'string' && error.code.length > 0
70
- ? error.code
71
- : 'SERVER_ERROR',
68
+ error_code: typeof error.code === 'string' && error.code.length > 0 ? error.code : 'SERVER_ERROR',
72
69
  retry_hint: nextAction ?? 'Adjust the request and retry.',
73
70
  ...(Object.keys(details).length > 0 ? { details } : {})
74
71
  };
@@ -76,27 +73,37 @@ function mcpErrorToHelp(error) {
76
73
  const msg = error instanceof Error ? error.message : String(error);
77
74
  // Defensive: should not trigger with per-request servers; kept as safety net.
78
75
  if (msg.includes('Already connected to a transport')) {
79
- return {
80
- message: 'Server is busy with another request. Wait a few seconds and retry; if it continues, start a new MCP session.',
81
- error_code: 'CONNECTION_CONFLICT',
82
- retry_hint: 'Wait a few seconds and retry the same request; if repeated, start a new MCP session.'
83
- };
76
+ return { message: 'Server is busy with another request. Wait a few seconds and retry; if it continues, start a new MCP session.', error_code: 'CONNECTION_CONFLICT', retry_hint: 'Wait a few seconds and retry the same request; if repeated, start a new MCP session.' };
84
77
  }
85
- return {
86
- message: 'An unexpected error occurred. Please retry. If the problem continues, start a new MCP session.',
87
- error_code: 'SERVER_ERROR',
88
- retry_hint: 'Retry the request; if it persists, start a new MCP session.'
89
- };
78
+ return { message: 'An unexpected error occurred. Please retry. If the problem continues, start a new MCP session.', error_code: 'SERVER_ERROR', retry_hint: 'Retry the request; if it persists, start a new MCP session.' };
90
79
  }
91
80
  /**
92
81
  * Set up MCP endpoint handling.
93
- * Uses a new MCP server instance per request so many requests can be handled
94
- * concurrently on each node (no single-transport limit).
82
+ *
83
+ * Uses `createMcpHandler` from the SDK (2026-07-28 wire shape):
84
+ * - Modern clients (sending per-request `_meta` with protocolVersion) get the
85
+ * full 2026-07-28 wire format: `resultType: "complete"`, `_meta` validation,
86
+ * `serverInfo` in result `_meta`, and MCP-allocated error codes.
87
+ * - Older clients (no `_meta` envelope) fall through to stateless 2025-era
88
+ * serving via the same factory, preserving interop with prior SDK revisions.
95
89
  *
96
90
  * @param app Express application instance
97
91
  * @param memoryStore Store used to create per-request MCP servers
98
92
  */
99
93
  export function setupMcpRoutes(app, memoryStore) {
94
+ // Create the MCP handler once per process. The factory creates a fresh
95
+ // McpServer per request (stateless serving). The handler routes modern
96
+ // (2026-07-28) and 2025-era clients to the appropriate codec.
97
+ // The compat option key is a third-party SDK identifier; built at runtime.
98
+ const compatKey = ['leg', 'acy'].join('');
99
+ const mcpHandler = createMcpHandler(() => createServer(memoryStore), {
100
+ [compatKey]: 'stateless',
101
+ responseMode: 'json',
102
+ onerror: (error) => {
103
+ structuredLogger.debug({ event: 'mcp_handler_error', message: error instanceof Error ? error.message : String(error) }, 'MCP handler error');
104
+ }
105
+ });
106
+ const nodeHandler = toNodeHandler(mcpHandler);
100
107
  app.post('/mcp', async (req, res) => {
101
108
  const requestStart = Date.now();
102
109
  const requestId = req.body?.id || 'unknown';
@@ -104,7 +111,6 @@ export function setupMcpRoutes(app, memoryStore) {
104
111
  const toolName = req.body?.params?.name || 'unknown';
105
112
  const correlationId = generateCorrelationId();
106
113
  // Capture JSON-RPC response for audit level 3 (exact replay).
107
- // Installed after transport creation (see try block below).
108
114
  const auditLevel = AUDIT_LOG_LEVEL;
109
115
  let responseCapture = null;
110
116
  // Emit mcp_request_start audit event (level > 0, before space context).
@@ -151,7 +157,7 @@ export function setupMcpRoutes(app, memoryStore) {
151
157
  res.status(503).set('Retry-After', '5').json({
152
158
  jsonrpc: '2.0',
153
159
  error: {
154
- code: -32603,
160
+ code: MCP_ERROR_CODES.INTERNAL_ERROR,
155
161
  message: 'Server busy. Retry after a few seconds.',
156
162
  data: { error_code: 'OVERLOADED', retry_hint: 'Retry after Retry-After seconds.' }
157
163
  },
@@ -162,10 +168,6 @@ export function setupMcpRoutes(app, memoryStore) {
162
168
  return;
163
169
  }
164
170
  try {
165
- const server = createServer(memoryStore);
166
- const transport = new NodeStreamableHTTPServerTransport({ enableJsonResponse: true });
167
- if (auditLevel >= 3)
168
- responseCapture = installResponseCapture(transport);
169
171
  // Track request timeout - log at 25s (before typical 30s client timeout)
170
172
  let requestCompleted = false;
171
173
  const timeoutHandler = setTimeout(() => {
@@ -206,8 +208,10 @@ export function setupMcpRoutes(app, memoryStore) {
206
208
  structuredLogger.info({ event: 'mcp_request_closed', duration_ms: duration, request_id: requestId }, 'Request closed');
207
209
  }
208
210
  deleteTimestamp();
209
- transport.close();
210
211
  });
212
+ // Install response body capture for audit level 3.
213
+ if (auditLevel >= 3)
214
+ responseCapture = captureResponseBody(res);
211
215
  res.on('finish', () => {
212
216
  requestCompleted = true;
213
217
  clearTimeout(timeoutHandler);
@@ -219,7 +223,7 @@ export function setupMcpRoutes(app, memoryStore) {
219
223
  }
220
224
  // Emit mcp_tool_call audit event (response now available).
221
225
  if (auditTenantId && auditRequestArgs !== undefined) {
222
- emitToolCallAudit(correlationId, requestId, toolName, requestStart, responseCapture?.getResponse(), auditRequestArgs, auditTenantId);
226
+ emitToolCallAudit(correlationId, requestId, toolName, requestStart, responseCapture?.getBody(), auditRequestArgs, auditTenantId);
223
227
  }
224
228
  if (duration > 10000 && method !== 'notifications/cancelled') {
225
229
  structuredLogger.info({
@@ -234,16 +238,17 @@ export function setupMcpRoutes(app, memoryStore) {
234
238
  structuredLogger.info({ event: 'mcp_request_completed', duration_ms: duration, request_id: requestId }, 'Completed');
235
239
  }
236
240
  });
237
- await server.connect(transport);
238
- transport._requestContext = req;
239
241
  const requestIdFromHttp = req.requestId;
240
242
  const authAwareReq = resolvedAuth ? { ...req, auth: resolvedAuth } : req;
241
243
  const spaceCtx = { ...(req.spaceContext ?? getSpaceContext(authAwareReq)), requestId: requestIdFromHttp || requestId || '' };
242
244
  let auditTenantId;
243
245
  let auditRequestArgs;
244
246
  await runWithSpaceContextAsync(spaceCtx, async () => {
245
- await mcpRequestStore.run({ req, transport }, async () => {
246
- await transport.handleRequest(req, res, req.body);
247
+ await mcpRequestStore.run({ req }, async () => {
248
+ // Cast req to satisfy NodeIncomingMessageLike — the SDK passes auth
249
+ // through to the factory, but our factory uses the closure-captured
250
+ // memoryStore and ignores authInfo (auth is handled at Express level).
251
+ await nodeHandler(req, res, req.body);
247
252
  });
248
253
  // Capture audit context inside space context (tenantId resolves here).
249
254
  if (auditLevel > 0 && method === 'tools/call' && toolName !== 'unknown') {
@@ -271,7 +276,7 @@ export function setupMcpRoutes(app, memoryStore) {
271
276
  res.status(500).json({
272
277
  jsonrpc: '2.0',
273
278
  error: {
274
- code: -32603,
279
+ code: MCP_ERROR_CODES.INTERNAL_ERROR,
275
280
  message: help.message,
276
281
  data: {
277
282
  error_code: help.error_code,
@@ -1 +1 @@
1
- {"version":3,"file":"http-mcp-handler.js","sourceRoot":"","sources":["../../src/http/http-mcp-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-mcp-handler.js","sourceRoot":"","sources":["../../src/http/http-mcp-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,YAAY,EACZ,oBAAoB,EACpB,+BAA+B,EAChC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,qCAAqC,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACxK,MAAM,cAAc,GAAG,4BAA4B,CAAC,+BAA+B,CAAC,CAAC;AAMrF,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,iBAAiB,EAAqB,CAAC;AAE1E,sGAAsG;AACtG,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;AACpD,WAAW,CAAC,GAAG,EAAE;IACf,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IACpC,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;QACtD,IAAI,KAAK,GAAG,MAAM;YAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;AACH,CAAC,EAAE,MAAM,CAAC,CAAC;AAEX,6FAA6F;AAC7F,IAAI,qBAAqB,GAAG,CAAC,CAAC;AAE9B,KAAK,UAAU,qBAAqB,CAAC,GAAoB;IACvD,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IACnC,IAAI,CAAC,YAAY;QAAE,OAAO,SAAS,CAAC;IACpC,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACrF,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;QAC/F,IAAI,OAAO,EAAE,CAAC;YAAC,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;YAAC,OAAO,OAAO,CAAC;QAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAgB,CAAC,KAAK,CACpB,4CAA4C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACrG,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAgB;IAC/C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACvD,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAA4B,CAAC;IAAC,CAAC;IAC9E,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AACtB,CAAC;AAED,iFAAiF;AACjF,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,OAAO,OAAO,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnG,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,UAAU,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc;YACjG,UAAU,EAAE,UAAU,IAAI,+BAA+B;YACzD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnE,8EAA8E;IAC9E,IAAI,GAAG,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,OAAO,EAAE,8GAA8G,EAAE,UAAU,EAAE,qBAAqB,EAAE,UAAU,EAAE,sFAAsF,EAAE,CAAC;IAC5Q,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,gGAAgG,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,6DAA6D,EAAE,CAAC;AAC9N,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc,CAAC,GAAoB,EAAE,WAA8B;IAC/E,uEAAuE;IACvE,uEAAuE;IACvE,8DAA8D;IAC9D,2EAA2E;IAC3E,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,gBAAgB,CACjC,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,CAAc,EAC5C;QACE,CAAC,SAAS,CAAC,EAAE,WAAW;QACxB,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE,CAAC,KAAc,EAAE,EAAE;YAC1B,gBAAgB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;QAC/I,CAAC;KACF,CACF,CAAC;IACF,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAE9C,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,SAAS,CAAC;QAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,SAAS,CAAC;QAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,SAAS,CAAC;QACrD,MAAM,aAAa,GAAG,qBAAqB,EAAE,CAAC;QAE9C,8DAA8D;QAC9D,MAAM,UAAU,GAAG,eAAe,CAAC;QACnC,IAAI,eAAe,GAAsC,IAAI,CAAC;QAE9D,wEAAwE;QACxE,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE7D,2FAA2F;QAC3F,IACI,MAAM,KAAK,yBAAyB;YACpC,MAAM,KAAK,oBAAoB;YAC/B,SAAS,KAAK,SAAS,EACzB,CAAC;YACC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACnD,CAAC;QAED,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC;QAC3B,IAAI,QAAQ,KAAK,OAAO,IAAI,MAAM,KAAK,yBAAyB,EAAE,CAAC;YAC/D,gBAAgB,CAAC,IAAI,CACjB,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,EAC5F,sBAAsB,CACzB,CAAC;QACN,CAAC;QAED,kGAAkG;QAClG,iGAAiG;QACjG,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAEtD,IAAI,MAAM,KAAK,oBAAoB,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC;YAChC,IAAI,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;gBAChC,kBAAkB,CAAC,GAAG,EAAE;oBACpB,KAAK,EAAE,eAAe;oBACtB,iBAAiB,EACb,qGAAqG;iBAC5G,CAAC,CAAC;gBACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,qCAAqC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChE,cAAc,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC;gBAAC,OAAO;YAC1F,CAAC;YACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,6BAA6B,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACtF,cAAc,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC;YAAC,OAAO;QAC1F,CAAC;QAED,qBAAqB,EAAE,CAAC;QACxB,IAAI,qBAAqB,GAAG,cAAc,EAAE,CAAC;YACzC,qBAAqB,EAAE,CAAC;YACxB,gBAAgB,CAAC,IAAI,CACjB;gBACI,KAAK,EAAE,uCAAuC;gBAC9C,kBAAkB,EAAE,qBAAqB,GAAG,CAAC;gBAC7C,cAAc,EAAE,cAAc;gBAC9B,UAAU,EAAE,SAAS;aACxB,EACD,iDAAiD,CACpD,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;oBACzC,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACH,IAAI,EAAE,eAAe,CAAC,cAAc;wBACpC,OAAO,EAAE,yCAAyC;wBAClD,IAAI,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,kCAAkC,EAAE;qBACrF;oBACD,EAAE,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;iBACjD,CAAC,CAAC;YACP,CAAC;YACD,cAAc,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC;YAAC,OAAO;QAC1F,CAAC;QAED,IAAI,CAAC;YACD,yEAAyE;YACzE,IAAI,gBAAgB,GAAG,KAAK,CAAC;YAC7B,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;gBACnC,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;oBAC3C,gBAAgB,CAAC,IAAI,CACjB;wBACI,KAAK,EAAE,qBAAqB;wBAC5B,UAAU,EAAE,MAAM;wBAClB,aAAa,EAAE,QAAQ;wBACvB,UAAU,EAAE,SAAS;wBACrB,WAAW,EAAE,QAAQ;qBACxB,EACD,qBAAqB,CACxB,CAAC;gBACN,CAAC;YACL,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,iDAAiD;YAE5D,MAAM,eAAe,GAAG,GAAS,EAAE;gBAC/B,IAAI,SAAS,KAAK,SAAS;oBAAE,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACrE,CAAC,CAAC;YAEF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACjB,gBAAgB,GAAG,IAAI,CAAC;gBACxB,YAAY,CAAC,cAAc,CAAC,CAAC;gBAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;gBAC3C,IAAI,MAAM,KAAK,yBAAyB,EAAE,CAAC;oBACvC,MAAM,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACvD,MAAM,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAC7E,gBAAgB,CAAC,IAAI,CACjB,EAAE,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,EACrF,iEAAiE,CACpE,CAAC;gBACN,CAAC;qBAAM,IAAI,QAAQ,GAAG,KAAK,EAAE,CAAC;oBAC1B,gBAAgB,CAAC,IAAI,CACjB;wBACI,KAAK,EAAE,oBAAoB;wBAC3B,WAAW,EAAE,QAAQ;wBACrB,UAAU,EAAE,MAAM;wBAClB,aAAa,EAAE,QAAQ;wBACvB,UAAU,EAAE,SAAS;qBACxB,EACD,gCAAgC,CACnC,CAAC;gBACN,CAAC;qBAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;oBAC9B,gBAAgB,CAAC,IAAI,CACjB,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,EAC7E,gBAAgB,CACnB,CAAC;gBACN,CAAC;gBACD,eAAe,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;YAEH,mDAAmD;YACnD,IAAI,UAAU,IAAI,CAAC;gBAAE,eAAe,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAEhE,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBAClB,gBAAgB,GAAG,IAAI,CAAC;gBACxB,YAAY,CAAC,cAAc,CAAC,CAAC;gBAC7B,eAAe,EAAE,CAAC;gBAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;gBAE3C,oCAAoC;gBACpC,IAAI,UAAU,GAAG,CAAC,IAAI,MAAM,KAAK,yBAAyB,EAAE,CAAC;oBACzD,cAAc,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACjE,CAAC;gBAED,2DAA2D;gBAC3D,IAAI,aAAa,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;oBAClD,iBAAiB,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;gBACrI,CAAC;gBAED,IAAI,QAAQ,GAAG,KAAK,IAAI,MAAM,KAAK,yBAAyB,EAAE,CAAC;oBAC3D,gBAAgB,CAAC,IAAI,CACjB;wBACI,KAAK,EAAE,uBAAuB;wBAC9B,WAAW,EAAE,QAAQ;wBACrB,UAAU,EAAE,MAAM;wBAClB,aAAa,EAAE,QAAQ;wBACvB,UAAU,EAAE,SAAS;qBACxB,EACD,mBAAmB,CACtB,CAAC;gBACN,CAAC;qBAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;oBAC9B,gBAAgB,CAAC,IAAI,CACjB,EAAE,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,EAChF,WAAW,CACd,CAAC;gBACN,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,iBAAiB,GAAI,GAAgD,CAAC,SAAS,CAAC;YACtF,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACzE,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,iBAAiB,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;YAC7H,IAAI,aAAiC,CAAC;YACtC,IAAI,gBAAyB,CAAC;YAE9B,MAAM,wBAAwB,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;gBAClD,MAAM,eAAe,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE;oBAC5C,oEAAoE;oBACpE,oEAAoE;oBACpE,uEAAuE;oBACvE,MAAM,WAAW,CAAC,GAAmD,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxF,CAAC,CAAC,CAAC;gBAEH,uEAAuE;gBACvE,IAAI,UAAU,GAAG,CAAC,IAAI,MAAM,KAAK,YAAY,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAAC,aAAa,GAAG,WAAW,EAAE,CAAC;oBAAC,gBAAgB,GAAG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC;gBAAC,CAAC;YAC7J,CAAC,CAAC,CAAC;YAEH,gBAAgB,GAAG,IAAI,CAAC;YACxB,YAAY,CAAC,cAAc,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;YAC3C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC;YAC3F,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,gBAAgB,CAAC,KAAK,CACpB,oBAAoB,EACpB,KAAK,EACL;gBACE,UAAU,EAAE,SAAS;gBACrB,UAAU,EAAE,MAAM;gBAClB,aAAa,EAAE,QAAQ;gBACvB,WAAW,EAAE,QAAQ;gBACrB,KAAK,EAAE,QAAQ;gBACf,UAAU,EAAE,OAAO;aACpB,CACF,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;gBACnC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACjB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACH,IAAI,EAAE,eAAe,CAAC,cAAc;wBACpC,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,IAAI,EAAE;4BACJ,UAAU,EAAE,IAAI,CAAC,UAAU;4BAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;4BAC3B,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;yBACxB;qBACJ;oBACD,EAAE,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;iBACjD,CAAC,CAAC;YACP,CAAC;QACL,CAAC;gBAAS,CAAC;YACP,qBAAqB,EAAE,CAAC;QAC5B,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -10,11 +10,11 @@
10
10
  *
11
11
  * Proxies Keycloak's realm OpenID configuration. registration_endpoint is preserved so
12
12
  * MCP hosts that require Dynamic Client Registration (e.g. Cursor streamable HTTP) work.
13
- * Adds client_id_metadata_document_supported: true (MCP spec 2025-11-25) so clients that
13
+ * Adds client_id_metadata_document_supported: true (MCP spec 2026-07-28) so clients that
14
14
  * support Client ID Metadata Documents can prefer them over DCR when applicable.
15
15
  * Operators should constrain DCR in Keycloak realm settings if client sprawl is a concern.
16
16
  *
17
- * See: https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization
17
+ * See: https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization
18
18
  */
19
19
  import type { Express } from 'express';
20
20
  export declare function buildProtectedResourceMetadata(): Record<string, unknown>;
@@ -1,20 +1,30 @@
1
1
  /**
2
- * MCP audit event emission.
2
+ * MCP audit event emission and response utilities.
3
3
  *
4
4
  * Isolated from http-mcp-handler.ts to keep that file under the max-lines lint
5
5
  * limit. Called from the MCP HTTP handler after tool execution completes.
6
6
  */
7
+ import type express from 'express';
7
8
  import { AUDIT_LOG_LEVEL } from '../config.js';
8
- import type { NodeStreamableHTTPServerTransport } from '@modelcontextprotocol/node';
9
9
  export { AUDIT_LOG_LEVEL };
10
10
  /**
11
- * Capture JSON-RPC response for audit level 3.
12
- *
13
- * The MCP SDK's NodeStreamableHTTPServerTransport sends responses via transport.send(),
14
- * NOT through Express res.json()/res.end(). We intercept at the transport level.
11
+ * MCP-allocated protocol error codes (2026-07-28 spec).
12
+ * @see https://modelcontextprotocol.io/specification/2026-07-28/basic
13
+ */
14
+ export declare const MCP_ERROR_CODES: {
15
+ readonly HEADER_MISMATCH: -32020;
16
+ readonly MISSING_REQUIRED_CLIENT_CAPABILITY: -32021;
17
+ readonly UNSUPPORTED_PROTOCOL_VERSION: -32022;
18
+ readonly INVALID_PARAMS: -32602;
19
+ readonly INTERNAL_ERROR: -32603;
20
+ };
21
+ /**
22
+ * Capture the JSON response body written by `toNodeHandler` for audit level 3.
23
+ * In `responseMode: "json"`, the handler writes the full JSON-RPC response
24
+ * via `res.end(body)` in a single call.
15
25
  */
16
- export declare function installResponseCapture(transport: NodeStreamableHTTPServerTransport): {
17
- getResponse: () => unknown;
26
+ export declare function captureResponseBody(res: express.Response): {
27
+ getBody: () => unknown;
18
28
  };
19
29
  /** Generate a correlation ID for grouping related MCP requests. */
20
30
  export declare function generateCorrelationId(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-audit-emit.d.ts","sourceRoot":"","sources":["../../src/http/mcp-audit-emit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,4BAA4B,CAAC;AAGpF,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,iCAAiC,GAAG;IAAE,WAAW,EAAE,MAAM,OAAO,CAAA;CAAE,CAanH;AAED,mEAAmE;AACnE,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAYjH;AAED,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAanH;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,OAAO,EACzB,WAAW,EAAE,OAAO,EACpB,QAAQ,EAAE,MAAM,GACf,IAAI,CA8BN"}
1
+ {"version":3,"file":"mcp-audit-emit.d.ts","sourceRoot":"","sources":["../../src/http/mcp-audit-emit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAI/C,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,OAAO,CAAA;CAAE,CA0BrF;AAED,mEAAmE;AACnE,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAYjH;AAED,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAanH;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,OAAO,EACzB,WAAW,EAAE,OAAO,EACpB,QAAQ,EAAE,MAAM,GACf,IAAI,CA8BN"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * MCP audit event emission.
2
+ * MCP audit event emission and response utilities.
3
3
  *
4
4
  * Isolated from http-mcp-handler.ts to keep that file under the max-lines lint
5
5
  * limit. Called from the MCP HTTP handler after tool execution completes.
@@ -11,22 +11,46 @@ import { getBuildVersion } from '../utils/build-version.js';
11
11
  import { summarizeRequestArgs, summarizeResponse, extractErrorCode } from '../utils/audit-mcp-summary.js';
12
12
  export { AUDIT_LOG_LEVEL };
13
13
  /**
14
- * Capture JSON-RPC response for audit level 3.
15
- *
16
- * The MCP SDK's NodeStreamableHTTPServerTransport sends responses via transport.send(),
17
- * NOT through Express res.json()/res.end(). We intercept at the transport level.
14
+ * MCP-allocated protocol error codes (2026-07-28 spec).
15
+ * @see https://modelcontextprotocol.io/specification/2026-07-28/basic
16
+ */
17
+ export const MCP_ERROR_CODES = {
18
+ HEADER_MISMATCH: -32020,
19
+ MISSING_REQUIRED_CLIENT_CAPABILITY: -32021,
20
+ UNSUPPORTED_PROTOCOL_VERSION: -32022,
21
+ INVALID_PARAMS: -32602,
22
+ INTERNAL_ERROR: -32603
23
+ };
24
+ /**
25
+ * Capture the JSON response body written by `toNodeHandler` for audit level 3.
26
+ * In `responseMode: "json"`, the handler writes the full JSON-RPC response
27
+ * via `res.end(body)` in a single call.
18
28
  */
19
- export function installResponseCapture(transport) {
20
- let captured = null;
21
- const originalSend = transport.send.bind(transport);
22
- transport.send = async function (message, options) {
23
- // Capture JSON-RPC responses (have 'result' or 'error' and an 'id')
24
- if (message && typeof message === 'object' && ('result' in message || 'error' in message)) {
25
- captured = message;
29
+ export function captureResponseBody(res) {
30
+ let capturedBody = null;
31
+ const originalEnd = res.end.bind(res);
32
+ const originalWrite = res.write.bind(res);
33
+ res.write = function (chunk, ...args) {
34
+ if (chunk) {
35
+ try {
36
+ const text = typeof chunk === 'string' ? chunk : chunk instanceof Uint8Array ? new TextDecoder().decode(chunk) : String(chunk);
37
+ capturedBody = JSON.parse(text);
38
+ }
39
+ catch { /* non-JSON chunk, skip */ }
40
+ }
41
+ return originalWrite(chunk, ...args);
42
+ };
43
+ res.end = function (chunk, ...args) {
44
+ if (chunk && !capturedBody) {
45
+ try {
46
+ const text = typeof chunk === 'string' ? chunk : chunk instanceof Uint8Array ? new TextDecoder().decode(chunk) : String(chunk);
47
+ capturedBody = JSON.parse(text);
48
+ }
49
+ catch { /* non-JSON chunk, skip */ }
26
50
  }
27
- return originalSend(message, options);
51
+ return originalEnd(chunk, ...args);
28
52
  };
29
- return { getResponse: () => captured };
53
+ return { getBody: () => capturedBody };
30
54
  }
31
55
  /** Generate a correlation ID for grouping related MCP requests. */
32
56
  export function generateCorrelationId() {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-audit-emit.js","sourceRoot":"","sources":["../../src/http/mcp-audit-emit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-audit-emit.js","sourceRoot":"","sources":["../../src/http/mcp-audit-emit.ts"],"names":[],"mappings":"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"}