Last reviewed
Correct answer: A. To the error stream, which is available for informational, debug and error output alike.
Explanation
The principle — Two streams, two jobs: one carries the protocol, the other carries everything a human might want to read.
Why the key is correct — The server MAY write UTF-8 strings to stderr for any logging purposes including informational, debug, and error messages. And the client is told how to take it: the client MAY capture, forward, or ignore the server's stderr output and SHOULD NOT assume stderr output indicates error conditions.
Why the others are wrong — The output stream is reserved for protocol messages, logging is not impossible, and the error stream is not restricted to errors.
Remember this — Protocol on one stream, everything else on the other.
Sources — MCP first-party documentation.
Sources
“The server MAY write UTF-8 strings to stderr for any logging purposes including informational, debug, and error messages.”
“The client MAY capture, forward, or ignore the server's stderr output and SHOULD NOT assume stderr output indicates error conditions.”
Practise 10 questions on this topic
Take MCP Fundamentals — Timed Test 1 (10 questions) — scored instantly, explanation for every question, no login.