No worries, intermittent MCP/server behavior is exactly the kind of thing that disappears when you go to collect logs.
The hourly line:
MCP server fastmail keepalive failed, triggering reconnect: session terminated
is not automatically a problem by itself. Hermes keeps MCP sessions alive in the background; when a remote MCP session expires or the connection goes stale, it logs that warning and reconnects. If the next Fastmail tool call works, that reconnect path did its job.
There are two MCP timeout knobs you can set per server if actual calls are timing out:
timeout controls tool-call timeout.
connect_timeout controls initial connection/reconnect timeout.
Example shape:
mcp_servers:
fastmail:
...
timeout: 180
connect_timeout: 60
There is not currently a separate user config knob for the keepalive interval itself.
For the original structuredContent validation error, the useful thing is still a debug share captured immediately after it happens again. If it was Fastmail returning a different result shape for a while, normal successful logs afterward will not preserve the traceback we need.