How a call travels
- The model, inside a host such as a desktop app, an IDE or an agent framework, discovers the tools the server lists.
- The host's MCP client sends a tool request.
- The server executes the logic against its own data, APIs or hardware.
- The result returns to the model. The model never executes code itself; that separation is the point.
stdio
The client launches the server as a child process & speaks over its standard input & output. No network, no port, no TLS. Right for a server on the same machine as the client: a desktop app calling a local file tool, an IDE calling a repository tool. The server's lifetime is the client's lifetime.
Streamable HTTP
The server listens at an HTTP endpoint; clients connect from anywhere they can reach it. Right for a shared server, a server that needs a GPU, or any server more than one client will use. This is how every server on the fabric is exposed, behind TLS & Host header validation at the pod edge.
| Question | stdio | Streamable HTTP |
|---|---|---|
| Where is the client? | Same machine | Anywhere on the network |
| How many clients? | One, the parent process | Many |
| Needs a GPU? | Only the local one | A pool on a named node |
| Auth | The OS process boundary | The SDK's auth helpers, OAuth on the client side |
| On the fabric | Run the same build locally | Deployed endpoint per server |
Write the server once. Both transports connect to the same McpServer instance; only the last two lines change.