Configuration problems, not server code, cause roughly half of reported MCP failures.
A single log line on stdout corrupts the JSON-RPC stream and drops the connection, with no error in your own logs.
Debug in layer order: transport first, then the protocol handshake, then the server's own tools.