Summary
A stdio MCP server launched by copilot-runtime emits lifecycle and watcher logs, but the VS Code MCP: <server> Output channel remains empty.
Environment
- macOS arm64
- VS Code using the bundled
copilot-runtime
- Local stdio MCP server launched with stdin/stdout/stderr pipes
Reproduction
- Configure a local stdio MCP server in VS Code.
- Have the server write startup and runtime messages to stderr, flushing each line.
- Start or restart the MCP server.
- Select its
MCP: <server> channel in the VS Code Output panel.
- Trigger additional runtime messages, such as a filesystem watcher event.
Actual behavior
The Output channel remains empty.
Process inspection confirms:
- The MCP child process has stderr connected to a pipe.
copilot-runtime owns and reads the other end of that pipe.
- Running the same MCP executable directly displays every stderr line immediately.
- MCP
notifications/message logging notifications are also accepted by the transport but are not rendered in the Output channel.
This indicates the messages are lost between copilot-runtime and the VS Code UI rather than inside the MCP server.
Expected behavior
The SDK/runtime should forward MCP child stderr to the server's VS Code Output channel. If MCP logging capability is advertised, notifications/message events should also be surfaced or exposed through an SDK event so the host can render them.
Additional note
The MCP process continues serving tools normally; only observability is missing. This makes watcher/reindex failures effectively invisible even though the server is logging them.
Summary
A stdio MCP server launched by
copilot-runtimeemits lifecycle and watcher logs, but the VS CodeMCP: <server>Output channel remains empty.Environment
copilot-runtimeReproduction
MCP: <server>channel in the VS Code Output panel.Actual behavior
The Output channel remains empty.
Process inspection confirms:
copilot-runtimeowns and reads the other end of that pipe.notifications/messagelogging notifications are also accepted by the transport but are not rendered in the Output channel.This indicates the messages are lost between
copilot-runtimeand the VS Code UI rather than inside the MCP server.Expected behavior
The SDK/runtime should forward MCP child stderr to the server's VS Code Output channel. If MCP logging capability is advertised,
notifications/messageevents should also be surfaced or exposed through an SDK event so the host can render them.Additional note
The MCP process continues serving tools normally; only observability is missing. This makes watcher/reindex failures effectively invisible even though the server is logging them.