From 96e909b3c99705f32c62c0eaba49968af846b00b Mon Sep 17 00:00:00 2001 From: Rishabh Date: Sat, 12 Sep 2026 00:05:06 -0400 Subject: [PATCH 1/2] docs/server: fix logging defaults and the SetLoggingLevel method name The logging section said "for stateful sessions" twice in a row with opposite meanings, so one of the two sentences had to be wrong. The default of "info" is set only in `StreamableHTTPHandler.ephemeralConnectOpts` (mcp/streamable.go), which applies to stateless requests; a session built through `Server.Connect` starts with an empty level, and `ServerSession.Log` returns early until the client sets one, which is what the first sentence already says. The section also told readers to call `SetLevel`, but that is not an exported method: the client-side call is `ClientSession.SetLoggingLevel`, so the pkg.go.dev anchor the page linked to does not exist. --- docs/server.md | 6 +++--- internal/docs/server.src.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/server.md b/docs/server.md index d7bc314a..567c4255 100644 --- a/docs/server.md +++ b/docs/server.md @@ -1066,8 +1066,8 @@ server produces logs that remain server-side, for use by server maintainers.) **Server-side**: The minimum log level is part of the server state. For stateful sessions, there is no default log level: no log messages will be sent -until the client calls `SetLevel` (see below). -For stateful sessions, the level defaults to "info". +until the client calls `SetLoggingLevel` (see below). +For stateless sessions, the level defaults to "info". [`ServerSession.Log`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ServerSession.Log) is the low-level way for servers to log to clients. It sends a logging notification to the client if the level of the message @@ -1083,7 +1083,7 @@ Servers always report the logging capability. **Client-side**: Set [`ClientOptions.LoggingMessageHandler`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ClientOptions.LoggingMessageHandler) to receive log messages. -Call [`ClientSession.SetLevel`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ClientSession.SetLevel) to change the log level for a session. +Call [`ClientSession.SetLoggingLevel`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ClientSession.SetLoggingLevel) to change the log level for a session. ```go func Example_logging() { diff --git a/internal/docs/server.src.md b/internal/docs/server.src.md index 82b956e9..663901e5 100644 --- a/internal/docs/server.src.md +++ b/internal/docs/server.src.md @@ -437,8 +437,8 @@ server produces logs that remain server-side, for use by server maintainers.) **Server-side**: The minimum log level is part of the server state. For stateful sessions, there is no default log level: no log messages will be sent -until the client calls `SetLevel` (see below). -For stateful sessions, the level defaults to "info". +until the client calls `SetLoggingLevel` (see below). +For stateless sessions, the level defaults to "info". [`ServerSession.Log`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ServerSession.Log) is the low-level way for servers to log to clients. It sends a logging notification to the client if the level of the message @@ -454,7 +454,7 @@ Servers always report the logging capability. **Client-side**: Set [`ClientOptions.LoggingMessageHandler`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ClientOptions.LoggingMessageHandler) to receive log messages. -Call [`ClientSession.SetLevel`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ClientSession.SetLevel) to change the log level for a session. +Call [`ClientSession.SetLoggingLevel`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ClientSession.SetLoggingLevel) to change the log level for a session. %include ../../mcp/server_example_test.go logging - From 04140b2a157ef4e5ad3daa283850778eb48f1b2b Mon Sep 17 00:00:00 2001 From: Rishabh Date: Mon, 14 Sep 2026 18:17:58 -0400 Subject: [PATCH 2/2] docs/server: describe logging defaults per session mode Wording suggested by guglielmo-san in review, which distinguishes the legacy stateless default from sessionless 2026-07-28 requests that carry their level in _meta. Signed-off-by: Rishabh --- docs/server.md | 6 +++++- internal/docs/server.src.md | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/server.md b/docs/server.md index 567c4255..8973e3ae 100644 --- a/docs/server.md +++ b/docs/server.md @@ -1067,7 +1067,11 @@ server produces logs that remain server-side, for use by server maintainers.) The minimum log level is part of the server state. For stateful sessions, there is no default log level: no log messages will be sent until the client calls `SetLoggingLevel` (see below). -For stateless sessions, the level defaults to "info". +For legacy stateless sessions the level defaults to "info". +For sessionless 2026-07-28 requests there is no server-side default: each request +carries its level in `_meta` (`io.modelcontextprotocol/logLevel`), and nothing is +logged until the client sends one. +(Note: logging is deprecated as of 2026-07-28 / SEP-2577.) [`ServerSession.Log`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ServerSession.Log) is the low-level way for servers to log to clients. It sends a logging notification to the client if the level of the message diff --git a/internal/docs/server.src.md b/internal/docs/server.src.md index 663901e5..ff663836 100644 --- a/internal/docs/server.src.md +++ b/internal/docs/server.src.md @@ -438,7 +438,11 @@ server produces logs that remain server-side, for use by server maintainers.) The minimum log level is part of the server state. For stateful sessions, there is no default log level: no log messages will be sent until the client calls `SetLoggingLevel` (see below). -For stateless sessions, the level defaults to "info". +For legacy stateless sessions the level defaults to "info". +For sessionless 2026-07-28 requests there is no server-side default: each request +carries its level in `_meta` (`io.modelcontextprotocol/logLevel`), and nothing is +logged until the client sends one. +(Note: logging is deprecated as of 2026-07-28 / SEP-2577.) [`ServerSession.Log`](https://pkg.go.dev/github.com/modelcontextprotocol/go-sdk/mcp#ServerSession.Log) is the low-level way for servers to log to clients. It sends a logging notification to the client if the level of the message