Docs / Guides Build
Connecting Other MCP Agents
TCP and Streamable HTTP transports for clients that cannot spawn a stdio process.
| Transport | Command | Client examples |
|---|---|---|
| stdio | ekos mcp serve --workspace DIR |
Claude Code, Claude Desktop |
| TCP (NDJSON JSON-RPC 2.0) | ekos mcp serve --tcp 127.0.0.1:7331 |
custom clients, many clients on one server |
| Streamable HTTP | ekos mcp serve --http 127.0.0.1:8080 |
VS Code / Copilot, Visual Studio, ChatGPT |
Streamable HTTP
A single endpoint, POST /mcp. The response is JSON or Server-Sent Events depending on the Accept header (ChatGPT requires SSE). There is no GET stream. Use --http or --tcp, not both.
Authentication
ekos mcp serve --http 127.0.0.1:8080 --token-file ./mcp.token
- HTTP: every request needs
Authorization: Bearer <token>. - TCP: the first message must be an
initializewhoseparams._meta.tokenmatches. - The token is read from the file, or from
EKOS_MCP_TOKENif the file is absent. - Stdio needs no token.
For a non-loopback browser client, allow its origin explicitly with --http-allow-origin. Bind only to loopback or a trusted network; put a TLS-terminating reverse proxy in front for anything wider.