fa-mcp-sdk 0.11.4 → 0.11.10

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.
@@ -22,12 +22,17 @@ DEBUG=config-info
22
22
  # AP-UPDATER - consul/access-points-updater
23
23
  # fa-consul:reg | fa-consul:* - consul/cyclic-register
24
24
  # fa-consul:curl - consul/prepare-consul-api
25
- # token:auth
26
- # mcp:tool
27
- # mcp:resource
28
- # mcp:notification
29
- # mcp:prompt
30
- # mcp:*
25
+ # token:auth - authentication: which auth method matched, token parsing/validation outcome
26
+ # mcp:tool - tools/call: tool name + arguments in, response (text or JSON) out
27
+ # mcp:resource - resources/list and resources/read: URI in, body out
28
+ # mcp:notification - all incoming notifications/* (method + params)
29
+ # mcp:prompt - prompts/list and prompts/get: name/args in, messages out
30
+ # mcp:* - all four MCP channels above at once
31
+ # mcp-handshake - HTTP transport: per-request dump (method, id, session routing, protocol, auth, IP)
32
+ # mcp-rpc - HTTP transport: one-line summary of every successful JSON-RPC response
33
+ #
34
+ #(session-lifecycle events, the -32600 "no valid session" rejection and JSON-RPC errors log always)
35
+ #
31
36
  # ========================================================================
32
37
  # AGENT TESTER - Built-in AI agent for testing MCP tools
33
38
  # ========================================================================
@@ -18,7 +18,7 @@ npm install fa-mcp-sdk
18
18
  | [03-configuration](03-configuration.md) | `appConfig`, YAML config, access points, cache, **`mcp.limits` (payload/result/timeout)**, **`mcp.pagination`**, **`mcp.resources` (MAY)**, **`mcp.rateLimit.scope` + `maxConcurrentPerSubject` (§14)**, **`webServer.trustProxy`**, **`webServer.tokenCheck.allowQueryToken` (§7.1)**, **/health & /ready**, **CORS hardening**, **MCP error codes** (`-32002…-32005`) | Server configuration, external services, transport-level hardening |
19
19
  | [04-authentication](04-authentication.md) | JWT (**4 modes: legacyAesCtr / embedded / localKey / remoteJwks**), Basic auth, server tokens, **OAuth discovery + `/oauth/token` + JWKS**, **`requiredScopes` enforcement (§7.5)**, **`WWW-Authenticate` realm + invalid_token (§7.4)**, **HTTP 403 `forbidden` flag**, `createAuthMW()`, Token Generator, CLI Token Generator (mode-aware), JWT Generation API | Authentication setup |
20
20
  | [05-ad-authorization](05-ad-authorization.md) | AD group authorization at HTTP/tool levels | AD group restrictions |
21
- | [06-utilities](06-utilities.md) | `ServerError`, `normalizeHeaders`, logging, MCP debug switches (`DEBUG=mcp:*`), JSON-lines sink (`mcp.debug.logFile` → `emitTrace`), built-in debug tools (`mcp.debug.builtinTools`), Consul, graceful shutdown | Error handling, utilities, request tracing, post-mortem analysis |
21
+ | [06-utilities](06-utilities.md) | `ServerError`, `normalizeHeaders`, logging, MCP debug switches (`DEBUG=mcp:*`), **HTTP connection & RPC tracing (`DEBUG=mcp-handshake` / `mcp-rpc`, always-on session-lifecycle + `-32600` + error logging)**, JSON-lines sink (`mcp.debug.logFile` → `emitTrace`), built-in debug tools (`mcp.debug.builtinTools`), Consul, graceful shutdown | Error handling, utilities, request tracing, post-mortem analysis |
22
22
  | [07-testing-and-operations](07-testing-and-operations.md) | Test clients (STDIO, HTTP, SSE, Streamable HTTP); universal `debug-tool` fixture covering every `CallToolResult` shape | Testing, deployment, exercising client code against image/audio/resource/error/delay variants |
23
23
  | [08-agent-tester-and-headless-api](08-agent-tester-and-headless-api.md) | Agent Tester, Headless API, structured logging, automated testing, UI `data-testid` reference. **MCP Apps mode**: capability negotiation, `appCalls[]` / `app_calls[]`, widget iframe bridge, App Inspector tab | Agent-driven tool development, CLI automation, UI E2E tests, MCP Apps host for development |
24
24
  | [09-database](09-database.md) | PostgreSQL sugar layer (`queryMAIN`, `execMAIN`, `getInsertSqlMAIN`, `getMergeSqlMAIN`, `mergeByBatch`), `pgvector`, secondary DBs | Database access, upserts, batching |
@@ -336,6 +336,48 @@ echo "DEBUG=mcp:tool,mcp:resource" >> .env
336
336
  > `stdout` via `console.log`, so enabling `DEBUG=mcp:*` in STDIO mode **will corrupt the framing**
337
337
  > the client sees. Use these switches with HTTP/SSE transport, or redirect stdout.
338
338
 
339
+ ## HTTP Connection & RPC Tracing (`DEBUG=mcp-handshake`, `DEBUG=mcp-rpc`)
340
+
341
+ Separate from the `mcp:*` channel switches above, the **Streamable HTTP transport** carries its own
342
+ connection- and response-level tracing in `web/server-http.ts`. These switches use hyphenated names
343
+ (`mcp-handshake`, `mcp-rpc`) and are read straight from the comma-split `DEBUG` env var — they do
344
+ **not** go through the `af-tools-ts` `Debug()` machinery, so they are not covered by `mcp:*` or `*`.
345
+ List them explicitly, e.g. `DEBUG=mcp-handshake,mcp-rpc`. They exist to answer the two questions the
346
+ `mcp:*` taps cannot: *why did the client get a session/protocol error?* and *what did the server
347
+ actually send back?*
348
+
349
+ | Env value | What it logs |
350
+ |-----------------------|---------------------------------------------------------------------------------------|
351
+ | *(always on)* | Session created / closed / transport-closed (with active-session count); the `-32600` "no valid session" rejection with the reason. |
352
+ | `DEBUG=mcp-handshake` | Per-request dump for every `/mcp` call: JSON-RPC method + id, short session id, routing hit/miss, protocol version, `Accept` / `Content-Type`, whether an auth header is present, and client IP. |
353
+ | `DEBUG=mcp-rpc` | One-line summary of every **successful** JSON-RPC response (status, ids, `result=ok` / notifications). |
354
+
355
+ Two things always log regardless of the switches, because they are otherwise silent failure modes:
356
+
357
+ - **The `-32600` rejection.** When a request reaches `/mcp` without a valid session and is not an
358
+ `initialize`, the server now logs *why* — the client must send `initialize` first or echo a valid
359
+ `mcp-session-id` header — and notes when the supplied session id is unknown or expired (with the
360
+ count of known sessions). This is the trace to look for when the client reports `-32600` but the
361
+ server log was previously empty.
362
+ - **Every JSON-RPC error response.** A response tee on `POST /mcp` and the `GET`/`DELETE` session
363
+ routes captures the outgoing body, parses it (auto-detecting a plain `application/json` answer vs.
364
+ the `data:` frames of an SSE stream), and logs each error's HTTP status, request id, `code`,
365
+ `message`, and truncated `data`, together with the originating request summary. The capture is
366
+ capped at 256 KB per response so a long SSE stream cannot exhaust memory (`[capture truncated]`
367
+ marks a hit), and the trace is wrapped so it can never break the real response.
368
+
369
+ ```bash
370
+ # Why is the client getting "no valid session" / -32600? (handshake dump on every request)
371
+ DEBUG=mcp-handshake yarn start
372
+
373
+ # Also summarise successful responses (otherwise only errors are logged)
374
+ DEBUG=mcp-handshake,mcp-rpc yarn start
375
+ ```
376
+
377
+ > These switches are HTTP-transport only — STDIO never opens sessions, so they have no effect there.
378
+ > They are safe to leave off in production; the always-on session-lifecycle and error lines are the
379
+ > ones worth keeping in normal operation.
380
+
339
381
  ### Extending with Custom Debug Categories
340
382
 
341
383
  Add your own switches with the same `Debug()` helper from `af-tools-ts`:
@@ -58,7 +58,7 @@
58
58
  "dependencies": {
59
59
  "@modelcontextprotocol/sdk": "^1.29.0",
60
60
  "dotenv": "^17.4.1",
61
- "fa-mcp-sdk": "^0.11.4"
61
+ "fa-mcp-sdk": "^0.11.10"
62
62
  },
63
63
  "devDependencies": {
64
64
  "@types/express": "^5.0.6",
@@ -1 +1 @@
1
- {"version":3,"file":"server-http.d.ts","sourceRoot":"","sources":["../../../src/core/web/server-http.ts"],"names":[],"mappings":"AA+DA,eAAO,MAAM,cAAc,SAAyC,CAAC;AA6DrE;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA4wBrD"}
1
+ {"version":3,"file":"server-http.d.ts","sourceRoot":"","sources":["../../../src/core/web/server-http.ts"],"names":[],"mappings":"AA+DA,eAAO,MAAM,cAAc,SAAyC,CAAC;AA6DrE;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA47BrD"}
@@ -542,6 +542,152 @@ export async function startHttpServer() {
542
542
  // SDK transport handles protocol-version negotiation, error codes, notifications (202) and the
543
543
  // GET-SSE / DELETE-teardown semantics for us.
544
544
  const HTTP_SESSION_HEADER = 'mcp-session-id';
545
+ // Verbose connection/handshake tracing. Per-request dumps (method, headers, session routing)
546
+ // are gated behind `DEBUG=mcp-handshake` so they don't flood logs on every tool call; the
547
+ // key lifecycle events (initialize, session created/closed, no-session rejection) always log.
548
+ const debugNamespaces = (process.env.DEBUG || '').split(',').map((d) => d.trim());
549
+ const HANDSHAKE_DEBUG = debugNamespaces.includes('mcp-handshake');
550
+ // Separate namespace for successful RPC response summaries (`result=ok`), kept apart from the
551
+ // connection/handshake trace so each can be enabled independently. Errors always log regardless.
552
+ const RPC_DEBUG = debugNamespaces.includes('mcp-rpc');
553
+ // Short session id for log lines (full UUID is noisy). Empty header → 'none'.
554
+ const shortSid = (sid) => (sid ? sid.slice(0, 8) : 'none');
555
+ // Summarize the request line for handshake tracing: JSON-RPC method, id, session header,
556
+ // and presence of the headers that matter for the MCP transport contract.
557
+ const describeMcpRequest = (req) => {
558
+ const body = req.body;
559
+ const h = req.headers;
560
+ const hasAuth = !!(h.authorization || h['x-on-behalf-of-user']);
561
+ return [
562
+ `method=${body?.method ?? '(none)'}`,
563
+ `id=${body?.id ?? '(none)'}`,
564
+ `session=${shortSid(h[HTTP_SESSION_HEADER])}`,
565
+ `protocolVersion=${h['mcp-protocol-version'] || body?.params?.protocolVersion || '(none)'}`,
566
+ `accept=${h.accept || '(none)'}`,
567
+ `contentType=${h['content-type'] || '(none)'}`,
568
+ `auth=${hasAuth ? 'yes' : 'no'}`,
569
+ `ip=${req.ip || 'unknown'}`,
570
+ ].join(' | ');
571
+ };
572
+ // Parse outgoing MCP payloads into JSON-RPC message objects. The SDK transport answers either
573
+ // as plain JSON (`application/json`) or as an SSE stream (`text/event-stream`), where each frame
574
+ // carries the JSON in a `data:` line. We auto-detect the shape FROM THE BODY rather than the
575
+ // Content-Type header: by the time the response `finish`es, Node has already cleared the outgoing
576
+ // headers, so `res.getHeader('content-type')` returns undefined at that point.
577
+ const parseRpcMessages = (raw) => {
578
+ const out = [];
579
+ const tryPush = (s) => {
580
+ const t = s.trim();
581
+ if (!t) {
582
+ return;
583
+ }
584
+ try {
585
+ const parsed = JSON.parse(t);
586
+ if (Array.isArray(parsed)) {
587
+ out.push(...parsed);
588
+ }
589
+ else {
590
+ out.push(parsed);
591
+ }
592
+ }
593
+ catch {
594
+ /* not JSON — ignore */
595
+ }
596
+ };
597
+ // Plain-JSON answer: the whole body parses as one object/array.
598
+ const trimmed = raw.trimStart();
599
+ if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
600
+ tryPush(raw);
601
+ if (out.length > 0) {
602
+ return out;
603
+ }
604
+ }
605
+ // SSE answer: collect every `data:` frame line.
606
+ for (const line of raw.split('\n')) {
607
+ if (line.startsWith('data:')) {
608
+ tryPush(line.slice(5));
609
+ }
610
+ }
611
+ return out;
612
+ };
613
+ // Tee the response stream so we can log what is actually sent back — in particular every
614
+ // JSON-RPC error (code + message + data), to verify the error message is meaningful. Errors
615
+ // are logged ALWAYS; successful results are summarized only under `DEBUG=mcp-rpc` to avoid
616
+ // dumping large tool payloads. Capture is capped to bound memory on long SSE streams.
617
+ const installRpcResponseTrace = (req, res) => {
618
+ const MAX_CAPTURE = 256 * 1024;
619
+ const chunks = [];
620
+ let captured = 0;
621
+ let truncated = false;
622
+ const collect = (chunk) => {
623
+ if (!chunk || captured >= MAX_CAPTURE) {
624
+ if (chunk && captured >= MAX_CAPTURE) {
625
+ truncated = true;
626
+ }
627
+ return;
628
+ }
629
+ // The SDK transport writes `Uint8Array` (SSE) or strings; `Buffer.isBuffer` is false for a
630
+ // Uint8Array, so we must NOT fall back to `String(chunk)` (that yields a comma-joined list of
631
+ // byte codes). `Buffer.from` accepts Buffer, string, and Uint8Array/ArrayBuffer views directly.
632
+ let buf;
633
+ if (Buffer.isBuffer(chunk)) {
634
+ buf = chunk;
635
+ }
636
+ else if (typeof chunk === 'string') {
637
+ buf = Buffer.from(chunk);
638
+ }
639
+ else {
640
+ buf = Buffer.from(chunk);
641
+ }
642
+ chunks.push(buf);
643
+ captured += buf.length;
644
+ };
645
+ const origWrite = res.write.bind(res);
646
+ const origEnd = res.end.bind(res);
647
+ // Cast to any: the write/end overloads are complex; we only tee the first (chunk) argument.
648
+ res.write = (chunk, ...args) => {
649
+ collect(chunk);
650
+ return origWrite(chunk, ...args);
651
+ };
652
+ res.end = (chunk, ...args) => {
653
+ collect(chunk);
654
+ return origEnd(chunk, ...args);
655
+ };
656
+ res.on('finish', () => {
657
+ try {
658
+ const raw = Buffer.concat(chunks).toString('utf8');
659
+ if (!raw) {
660
+ return;
661
+ }
662
+ const messages = parseRpcMessages(raw);
663
+ const errors = messages.filter((m) => m && m.error);
664
+ if (errors.length > 0) {
665
+ for (const m of errors) {
666
+ const data = m.error.data === undefined ? '' : ` | data=${JSON.stringify(m.error.data).slice(0, 800)}`;
667
+ logger.warn(`MCP RPC error response → HTTP ${res.statusCode} | id=${m.id ?? '(none)'} | ` +
668
+ `code=${m.error.code} | message=${JSON.stringify(m.error.message)}${data} ` +
669
+ `| for: ${describeMcpRequest(req)}`);
670
+ }
671
+ }
672
+ else if (RPC_DEBUG) {
673
+ const summary = messages
674
+ .map((m) => m.error
675
+ ? `error ${m.error.code}`
676
+ : m.result !== undefined
677
+ ? `id=${m.id} result=ok`
678
+ : m.method
679
+ ? `notif ${m.method}`
680
+ : `id=${m.id ?? '(none)'}`)
681
+ .join('; ');
682
+ logger.info(`MCP RPC response → HTTP ${res.statusCode} | ${summary || `${raw.length} bytes`}` +
683
+ (truncated ? ' | [capture truncated]' : ''));
684
+ }
685
+ }
686
+ catch {
687
+ /* never let trace logging break the response */
688
+ }
689
+ });
690
+ };
545
691
  // Soft cap to bound memory; oldest session is evicted (FIFO via Map insertion order).
546
692
  const MAX_HTTP_SESSIONS = 4096;
547
693
  const mcpTransports = new Map();
@@ -603,6 +749,14 @@ export async function startHttpServer() {
603
749
  }
604
750
  };
605
751
  const noSessionError = (req, res) => {
752
+ // Always log: this path is otherwise silent, which is exactly why "-32600" appears on the
753
+ // client with nothing on the server. We surface why the session was rejected.
754
+ const sessionHeader = req.headers[HTTP_SESSION_HEADER];
755
+ logger.warn(`MCP rejected with -32600 (no valid session). The client must send an \`initialize\` request first, ` +
756
+ `or include a valid \`mcp-session-id\` header. Request: ${describeMcpRequest(req)}` +
757
+ (sessionHeader && !mcpTransports.get(sessionHeader)
758
+ ? ` — session id ${shortSid(sessionHeader)} is unknown/expired (known sessions: ${mcpTransports.size})`
759
+ : ''));
606
760
  res.status(400).json({
607
761
  jsonrpc: '2.0',
608
762
  id: req.body?.id ?? null,
@@ -611,8 +765,13 @@ export async function startHttpServer() {
611
765
  };
612
766
  // GET (server→client SSE stream) and DELETE (session teardown) operate on an existing session.
613
767
  const routeToSession = async (req, res) => {
768
+ installRpcResponseTrace(req, res);
614
769
  const sessionId = req.headers[HTTP_SESSION_HEADER];
615
770
  const transport = sessionId ? mcpTransports.get(sessionId) : undefined;
771
+ if (HANDSHAKE_DEBUG) {
772
+ logger.info(`MCP ${req.method} /mcp routing to session ${shortSid(sessionId)}: ` +
773
+ `${transport ? 'found' : 'NOT FOUND'} | ${describeMcpRequest(req)}`);
774
+ }
616
775
  if (!transport) {
617
776
  noSessionError(req, res);
618
777
  return;
@@ -622,6 +781,10 @@ export async function startHttpServer() {
622
781
  // POST endpoint for MCP requests — handshake + all JSON-RPC calls go through the SDK transport.
623
782
  app.post('/mcp', authMW, async (req, res) => {
624
783
  try {
784
+ installRpcResponseTrace(req, res);
785
+ if (HANDSHAKE_DEBUG) {
786
+ logger.info(`POST /mcp ← ${describeMcpRequest(req)}`);
787
+ }
625
788
  // Rate limiting and the body-size limit stay here, before the transport takes over.
626
789
  const clientId = resolveRateLimitKey(req);
627
790
  await handleRateLimit(rateLimiter, clientId, req.ip || 'unknown', 'HTTP MCP', res, req.body?.id);
@@ -639,11 +802,15 @@ export async function startHttpServer() {
639
802
  const sessionId = req.headers[HTTP_SESSION_HEADER];
640
803
  const existing = sessionId ? mcpTransports.get(sessionId) : undefined;
641
804
  if (existing) {
805
+ if (HANDSHAKE_DEBUG) {
806
+ logger.info(`POST /mcp reusing session ${shortSid(sessionId)} for method=${req.body?.method}`);
807
+ }
642
808
  await runHttpToolCall(req, res, () => existing.handleRequest(req, res, req.body));
643
809
  return;
644
810
  }
645
811
  if (isInitializeRequest(req.body)) {
646
- logger.info(`MCP client initializing: protocolVersion: ${req.body?.params?.protocolVersion} | clientInfo: ${JSON.stringify(req.body?.params?.clientInfo)}`);
812
+ logger.info(`MCP client initializing: protocolVersion: ${req.body?.params?.protocolVersion} | clientInfo: ${JSON.stringify(req.body?.params?.clientInfo)}` +
813
+ (HANDSHAKE_DEBUG ? ` | ${describeMcpRequest(req)}` : ''));
647
814
  const transport = new StreamableHTTPServerTransport({
648
815
  sessionIdGenerator: () => randomUUID(),
649
816
  // Standard §6 (MAY) — attach the EventStore only when resumability is enabled.
@@ -651,9 +818,11 @@ export async function startHttpServer() {
651
818
  onsessioninitialized: (sid) => {
652
819
  mcpTransports.set(sid, transport);
653
820
  evictOldestSession(sid);
821
+ logger.info(`MCP session created: ${sid} (active sessions: ${mcpTransports.size})`);
654
822
  },
655
823
  onsessionclosed: (sid) => {
656
824
  mcpTransports.delete(sid);
825
+ logger.info(`MCP session closed by client: ${shortSid(sid)} (active sessions: ${mcpTransports.size})`);
657
826
  },
658
827
  });
659
828
  // SDK `Transport` exposes `onclose` as a plain setter (not an EventTarget), so
@@ -663,6 +832,7 @@ export async function startHttpServer() {
663
832
  const sid = transport.sessionId;
664
833
  if (sid) {
665
834
  mcpTransports.delete(sid);
835
+ logger.info(`MCP transport closed: ${shortSid(sid)} (active sessions: ${mcpTransports.size})`);
666
836
  }
667
837
  };
668
838
  const server = createMcpServer('http');
@@ -1 +1 @@
1
- {"version":3,"file":"server-http.js","sourceRoot":"","sources":["../../../src/core/web/server-http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-http.js","sourceRoot":"","sources":["../../../src/core/web/server-http.ts"],"names":[],"mappings":"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"}
@@ -2275,6 +2275,19 @@ class McpAgentTester {
2275
2275
 
2276
2276
  if (servers && servers.length > 0) {
2277
2277
  this.currentServer = servers[0];
2278
+ // Restore mcpConfig from the backend-held connection. Without this, after a
2279
+ // page reload the server stays connected on the backend (so Tool Tester works),
2280
+ // but this.mcpConfig.url is null, so the Chat path sends mcpConfig: undefined
2281
+ // and the LLM receives zero tools (logs show "Tools: 0" / "MCP Server: None").
2282
+ if (this.currentServer.isConnected) {
2283
+ this.mcpConfig = {
2284
+ url: this.currentServer.url,
2285
+ transport: this.currentServer.transport,
2286
+ headers: this.currentServer.headers || {},
2287
+ name: this.currentServer.name,
2288
+ appMode: this.appMode,
2289
+ };
2290
+ }
2278
2291
  this.updateConnectionStatus();
2279
2292
  this.renderServerInfo();
2280
2293
  } else {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "fa-mcp-sdk",
3
3
  "productName": "FA MCP SDK",
4
- "version": "0.11.4",
4
+ "version": "0.11.10",
5
5
  "description": "Core infrastructure and templates for building Model Context Protocol (MCP) servers with TypeScript",
6
6
  "type": "module",
7
7
  "main": "dist/core/index.js",