MCP
Connect to MCP
Hosted Streamable HTTP and local stdio connection options.
Hosted transport
The production endpoint is a stateless MCP Streamable HTTP server:
https://erratalabs.dev/mcpSend the bearer key on every request:
Authorization: Bearer $ERRATA_API_KEYThe server creates a fresh MCP server and transport for each request while sharing an immutable read-only repository. There is no session affinity requirement.
Verify the MCP protocol directly
curl --fail \
-H "Authorization: Bearer $ERRATA_API_KEY" \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
--data '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-03-26",
"capabilities": {},
"clientInfo": { "name": "smoke", "version": "1.0.0" }
}
}' \
https://erratalabs.dev/mcpLocal stdio
For offline or self-hosted use, build the backend and point a client at the stdio adapter:
bun install
bun run build{
"mcpServers": {
"errata": {
"command": "bun",
"args": ["/absolute/path/to/errata/dist/src/stdio.js"]
}
}
}The stdio adapter loads the pinned local release by default. It can also act as a thin client of the hosted API:
ERRATA_API_URL=https://erratalabs.dev \
ERRATA_API_KEY="$ERRATA_API_KEY" \
bun run start:mcpStdout is reserved for MCP protocol messages; diagnostics go to stderr.
Transport behavior
- All five tools are read-only, non-destructive, and idempotent.
- Tool success uses
structuredContentplus a JSON text representation. - Known-tool validation and coverage errors return
isError: trueso agents can correct their call. - Unknown tools use a JSON-RPC protocol error.
- Requests over 100 KiB are rejected.
- Response facts are bounded by a fact limit and approximate token budget.