MCP in production: what I learned maintaining a server that works in Claude Code, Cursor, and Gemini
What survived contact with real usage maintaining an MCP server across three clients I never built for: fail-close defaults, replayable observability, and tool descriptions as the real interface.