What is stdio transport?

The stdio transport runs an MCP server as a local subprocess and exchanges protocol messages over its standard input and output streams, the default way to run a local MCP server.

The stdio transport is the simplest way to connect to an MCP server. The client launches the server as a child process and the two exchange JSON-RPC messages over the process's standard input and output streams. There is no network, no port, and no separate service to manage, which is why most local servers, anything you install with npx or uvx, default to stdio. Configuration is a command plus arguments and optional environment variables: for example, running npx to start a documentation server, with an API key passed through the environment. Because the server runs on your machine with your permissions, stdio is well suited to tools that touch local files, a local Git checkout, or a database reachable from your network. Its limits are the flip side of its simplicity: it is per-machine and per-user, so it does not by itself give a team a shared, always-on integration the way a remote server does.