The LSP and MCP servers, over stdio.
§12 specifies lanekeep server, "launched by editors/agent hosts". Both protocols are
JSON-RPC 2.0 over stdio, so [jsonrpc] is shared and each protocol contributes only its
framing and its method set.
No executor
deny.toml denies tokio outright, which rules out every async LSP crate. That is the
right constraint here rather than an obstacle worked around: a server that reads a
message, answers it, and reads the next has nothing to schedule, and §13's "minimal
dependency surface" is easier to hold with no runtime at all.
The cost is that a long check blocks the next message. For a tool whose warm run is tens of milliseconds that is not a real cost, and the alternative buys concurrency this server has no use for.