When you add an MCP server, you choose a transport with --transport. The transport is simply how Claude Code talks to the server. There are three: stdio, http, and sse.
stdio: local process
A stdio server runs on your machine as a child process. Claude Code launches it and talks to it over standard input and output. You use this for servers you run yourself, like a database bridge or a filesystem tool. Because Claude Code starts the process, you pass the launch command after --:
claude mcp add --transport stdio airtable --env AIRTABLE_API_KEY=KEY -- npx -y airtable-mcp-server
http: remote server
An http server runs somewhere else and you connect to its URL. This is the transport for hosted, remote servers offered by a SaaS product. There's no process to launch, so you just give the endpoint:
claude mcp add --transport http notion https://mcp.notion.com/mcp
sse: remote, legacy
SSE is another remote transport. Treat it as the legacy option: prefer http for new remote connections, and reach for sse only when a server specifically requires it.
How to choose
The rule is straightforward. If the server runs on your machine, use stdio and give it a command to start. If the server is remote, use http and give it a URL, falling back to sse only when the server documents that it needs SSE. Matching the transport to where the server lives is the whole decision, and getting it right up front saves you a confusing connection failure later.
Comments
Be the first to comment.