Local servers keep the process close to the client.
A local server is started by or near the host and commonly communicates over stdio. This is convenient for developer tools, personal files, local repositories, and early experiments because the process and data can remain on the same machine.
Local does not mean automatically safe. The client still needs to trust the command, the process may inherit powerful environment variables, and a compromised dependency can reach more than the MCP tool description suggests. Review the command, package source, filesystem scope, and credentials before installing it.
Treat transport details as versioned behavior.
stdio, Streamable HTTP, and SSE are not interchangeable labels. They carry different lifecycle and streaming assumptions, and client support changes over time. Use the current MCP and vendor documentation when choosing a transport; do not copy an old SSE configuration into a client that now recommends HTTP.
Document the expected handshake, endpoint, authentication method, and shutdown behavior. A connection guide is incomplete if it only shows the happy-path URL or command and does not explain what the client should do when the server is unavailable.
Use a decision table instead of a default answer.
Choose local stdio when the capability is personal or developmental and the host can safely own the process. Choose remote HTTP when a shared, governed service is the goal and the team can operate its identity, availability, and audit boundary. Keep the first deployment as narrow as the data and action scope allow.
Whichever route you choose, test startup, discovery, authentication, a successful call, denial, timeout, and credential rotation. The transport is ready when the team can explain both the normal result and the safe stop.