hello@nodemode.dev

Guide

Which transport, & when.

The protocol separates what a server offers from how bytes reach it. The official SDKs ship two transports; the fabric runs both & nothing else.

How a call travels

  1. The model, inside a host such as a desktop app, an IDE or an agent framework, discovers the tools the server lists.
  2. The host's MCP client sends a tool request.
  3. The server executes the logic against its own data, APIs or hardware.
  4. The result returns to the model. The model never executes code itself; that separation is the point.

stdio

The client launches the server as a child process & speaks over its standard input & output. No network, no port, no TLS. Right for a server on the same machine as the client: a desktop app calling a local file tool, an IDE calling a repository tool. The server's lifetime is the client's lifetime.

Streamable HTTP

The server listens at an HTTP endpoint; clients connect from anywhere they can reach it. Right for a shared server, a server that needs a GPU, or any server more than one client will use. This is how every server on the fabric is exposed, behind TLS & Host header validation at the pod edge.

QuestionstdioStreamable HTTP
Where is the client?Same machineAnywhere on the network
How many clients?One, the parent processMany
Needs a GPU?Only the local oneA pool on a named node
AuthThe OS process boundaryThe SDK's auth helpers, OAuth on the client side
On the fabricRun the same build locallyDeployed endpoint per server

Write the server once. Both transports connect to the same McpServer instance; only the last two lines change.