How do you configure stdio, local, and remote transports on an MCP client?medium
MultiServerMCPClient takes a dict keyed by server name: a stdio server gets transport: "stdio" plus a command and args to spawn a subprocess; a local HTTP server gets transport: "streamable_http" with a localhost URL; a remote third-party server gets the same streamable_http transport pointed at their hosted URL, with an Authorization header for auth.
The three configs differ only in how the client reaches the process, not in how tools are used afterward — client.get_tools() auto-discovers tools the same way regardless of transport. stdio has no port and no network; the client owns the subprocess's lifecycle, which suits local scripts and dev tools. streamable_http (local) is for a service you run yourself, like a Dockerized microservice. streamable_http (remote) is for a vendor-hosted server such as GitHub's or Stripe's MCP endpoint, where you supply a bearer token instead of running anything yourself.