MCP supports two transports:Documentation Index
Fetch the complete documentation index at: https://mintlify.com/superradcompany/tool-cli/llms.txt
Use this file to discover all available pages before exploring further.
- stdio — the host spawns a subprocess and communicates over stdin/stdout. Most desktop AI clients (Claude Desktop, Cursor, VS Code) use this.
- HTTP (streamable HTTP) — the client connects to an HTTP endpoint. Required for remote servers, containers, and web clients.
tool run --expose starts a proxy that speaks one transport on the outside and the other on the inside.
Expose a stdio server as HTTP
Start a local stdio server and make it accessible over HTTP. Useful for testing withcurl, connecting web clients, or running in a container.
Proxy an HTTP server as stdio
Wrap a remote HTTP MCP server so that stdio-only clients can connect to it. The proxy accepts stdio on one side and forwards requests to the HTTP endpoint.- Your AI client only supports stdio (e.g., Claude Desktop)
- The MCP server you want to use only exposes an HTTP endpoint
- You want to add config or auth headers without modifying the client
Use cases
Claude Desktop + HTTP server
Claude Desktop only speaks stdio. Use
--expose stdio to proxy any HTTP MCP server into a stdio connection Claude Desktop can use.Local server via HTTP
Expose a stdio-based local server over HTTP for testing with
curl or browser-based MCP clients.Container / VM deployment
Run a stdio server inside a container, expose it as HTTP on a known port, and connect external clients to that port.
Localhost testing
Develop and test your stdio server locally, then expose it on HTTP so your CI pipeline or a teammate can hit the same endpoint.
Passing config at runtime
Both bridging directions support inline config values and config files:Reference
| Flag | Description |
|---|---|
--expose http | Expose a stdio tool as an HTTP server |
--expose stdio | Proxy an HTTP tool as a stdio server |
--port <n> | Port for HTTP mode (default: 3000) |
--host <addr> | Bind address for HTTP mode (default: 127.0.0.1) |
-k KEY=VALUE | Pass a config value inline |
--config-file <path> | Load config from a JSON file |
-v | Verbose output |