Transports
How Hull talks to local and remote MCP servers, and when to use each.
A transport is how Hull exchanges MCP messages with a server. Messages are JSON-RPC 2.0 in every case. What changes is where the server runs and how the messages travel.
Config type | Transport | Where the server runs |
|---|---|---|
local | stdio | On your machine, started by Hull |
remote | Streamable HTTP, falling back to SSE | Anywhere reachable by URL |
stdio (local servers)
For a local server, Hull starts the command you configure as a child process. Hull writes messages to the server's standard input and reads responses from its standard output, one JSON message per line.
Hull MCP server
|--- request (stdin) ------->|
|<-- response (stdout) ------|- Fast and private: no network involved, and nothing is exposed on a port.
- Uses your machine: the server runs with your user's access to files and processes, and its dependencies must be installed locally.
- Lifecycle: the server starts and stops with Hull.
- One client: each Hull session talks to its own server process.
Use stdio for tools that work with local files, CLIs or anything sensitive, and for servers you're developing.
Streamable HTTP and SSE (remote servers)
For a remote server, Hull connects to the url you configure. It tries the Streamable HTTP transport first: requests are HTTP POSTs to the server's endpoint, and the server can stream responses back. If that fails, Hull falls back to the older SSE (Server-Sent Events) transport, which uses a long-lived event stream for responses and separate POSTs for requests. You don't choose between them in config.
- Shared: one deployment can serve many users and clients.
- Centrally managed: update the server once and everyone gets the change.
- Authenticated: send tokens in
headers, or use OAuth. Hull runs the OAuth flow for servers that support it. - Network required: the server must be reachable, and requests add network latency.
Use remote servers for hosted services, team-wide tools, and APIs that need server-side credentials. The MCP gateway in the Hull dashboard can hold OAuth connections to remote servers for you.
Choosing a transport
stdio (local) | HTTP (remote) | |
|---|---|---|
| Location | Your machine | Local or remote |
| Clients | One per process | Many |
| Latency | Lowest | Network dependent |
| Setup | A command to run | An HTTP server to host |
| Exposure | None outside your machine | Needs authentication and HTTPS |
| Updates | On each machine | Once, centrally |
| Resources | Your machine | The server |
A local stdio server can also act as a proxy to a remote service. That's a common pattern when a tool needs local context and a hosted API.
Configure it
See MCP in the CLI for the full local and remote options, or MCP in Hull Code for the settings UI.