I've reviewed dozens of custom MCP servers built by developers connecting AI assistants to their internal tools. The build tutorials are everywhere — the mistake patterns aren't. Here are the five most common mistakes that make MCP servers unreliable, slow, or silently broken. TL;DR # Mistake Impact Fix 1 Printing to stdout Server disconnects immediately Route all diagnostics to stderr 2 Vague tool descriptions AI calls wrong tools or hallucinates params Write descriptions the AI reads at call time 3 Synchronous blocking I/O One slow tool freezes all others Use async def and connection pooling 4 No input validation Garbage inputs crash the server Use Pydantic models for every tool schema 5 No tool-level error handling AI gets raw stack traces Wrap tools, return structured errors 1. The stdout Trap — Printing Diagnostics That Kill Your Server This is the single most common reason MCP servers "just disconnect" with no useful error message.…