EKOSdocs
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 initialize whose params._meta.token matches.
  • The token is read from the file, or from EKOS_MCP_TOKEN if 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.