The four faces
HTTP+SSE is canonical; the SDK, CLI, and MCP are thin, equal projections.
kestrel.markets is one API with four equal surfaces. HTTP + SSE is canonical. The TypeScript SDK, the CLI, and MCP are thin projections over the same operations — not separate implementations, and none privileged.
HTTP + SSE
├── TypeScript SDK
├── CLI
└── MCPAll four return the same operation IDs, events, receipts, diagnostics, and artifacts. There are no CLI-only shortcuts and no impoverished MCP wrappers. A session started on one face is inspected and resumed on any other.
The elegance test
The whole platform is four verbs plus a permission slip:
GET /percepts POST /plans POST /sessions POST /grades
POST /envelopesEverything else is a rendering, a meter, or a receipt.
The website is a fifth client
This documentation site is itself a plain client of the same public API — never a
privileged face. Agents that prefer markdown can read every page, including the home
page, as clean .md (via Accept: text/markdown, a trailing .md, or llms.txt).