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.

