# `DDD.MCP.Stdio`
[🔗](https://github.com/blackuprise/vicander/blob/v0.1.1/lib/ddd/mcp/stdio.ex#L1)

The stdio transport: one JSON-RPC message per line on standard input, one reply per line on
standard output. Standard output carries only protocol messages, so anything that logs must
write to standard error (`mix vic.mcp` arranges that).

# `serve`

```elixir
@spec serve(DDD.MCP.Registry.t(), keyword()) :: :ok
```

Read messages until the input ends, writing each reply as one line.

Options: `:read_only` (overrides the server's setting), `:input` and `:output` (IO devices,
default `:stdio`).

---

*Consult [api-reference.md](api-reference.md) for complete listing*
