Skip to content

feat: capture MCP protocol logging notifications in server connection logs - #76

Merged
its-mash merged 8 commits into
mainfrom
claude/studio-logs-mcp-server-D5WJm
Feb 15, 2026
Merged

feat: capture MCP protocol logging notifications in server connection logs#76
its-mash merged 8 commits into
mainfrom
claude/studio-logs-mcp-server-D5WJm

Conversation

@its-mash

@its-mash its-mash commented Feb 14, 2026

Copy link
Copy Markdown
Member

The McpClientHandler was missing an on_logging_message implementation,
causing all MCP protocol notifications/message log entries from servers
to be silently dropped. Only connection lifecycle events and stderr were
visible. This adds:

  • LogSource::Server variant for MCP protocol log messages
  • on_logging_message handler that forwards to ServerLogManager
  • LoggingLevel -> LogLevel mapping (MCP -> internal)
  • Cyan color for 'server' source in the log viewer UI

claude and others added 8 commits February 14, 2026 13:33
… logs

The McpClientHandler was missing an on_logging_message implementation,
causing all MCP protocol notifications/message log entries from servers
to be silently dropped. Only connection lifecycle events and stderr were
visible. This adds:

- LogSource::Server variant for MCP protocol log messages
- on_logging_message handler that forwards to ServerLogManager
- LoggingLevel -> LogLevel mapping (MCP -> internal)
- Cyan color for 'server' source in the log viewer UI

Signed-off-by: Claude <noreply@anthropic.com>

https://claude.ai/code/session_01CHdV8mcWB77r9Tf27K6o9f
Signed-off-by: Claude <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>

https://claude.ai/code/session_01CHdV8mcWB77r9Tf27K6o9f
Signed-off-by: Claude <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>

https://claude.ai/code/session_01CHdV8mcWB77r9Tf27K6o9f
Signed-off-by: Claude <noreply@anthropic.com>
TokioChildProcess::new() overrides stderr set via .configure() with
Stdio::inherit(), so process stderr was never captured. Switch to the
builder pattern (TokioChildProcess::builder().stderr(Stdio::piped())
.spawn()) which correctly returns a ChildStderr handle.

Replace blocking os_pipe + spawn_blocking with async tokio BufReader
+ lines() for idiomatic async stderr reading. Remove os_pipe dep from
gateway crate.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Mohammod Al Amin Ashik <maa.ashik00@gmail.com>
--experimental-strip-types requires Node 22.6+, but CI runs Node 20.
The stub server process died immediately with "bad option", causing
MCP handshake failures and TC-PL-002 to fail.

Signed-off-by: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Mohammod Al Amin Ashik <maa.ashik00@gmail.com>
…ash/mcp-mux into claude/studio-logs-mcp-server-D5WJm
@its-mash
its-mash merged commit 0587741 into main Feb 15, 2026
12 checks passed
@its-mash
its-mash deleted the claude/studio-logs-mcp-server-D5WJm branch February 15, 2026 02:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants