2.0.0
Use this when you need to capture or process log messages sent by the server.
MCP servers can emit log messages to clients. The client handles these through a log handler callback.
Log Handler
Provide alog_handler function when creating the client:
LogMessage object:
LogMessage
Literal["debug", "info", "notice", "warning", "error", "critical", "alert", "emergency"]
The log level
str | None
The logger name (may be None)
Any
The JSON-serializable log payload sent by the server. FastMCPβs structured logger uses a dictionary with
msg and extra keys, but other MCP servers may send any JSON value.Structured Logs
Themessage.data attribute contains the serverβs JSON-serializable log payload. FastMCP servers commonly send a dictionary with msg and extra keys, which enables structured logging with rich contextual information.
Default Behavior
If you do not provide a customlog_handler, FastMCPβs default handler routes server logs to Pythonβs logging system at the appropriate severity level. The MCP levels map as follows: notice becomes INFO; alert and emergency become CRITICAL.

