Errors and limits

What failure looks like, and the boundaries worth designing around.

How errors come back

Tool failures come back as a normal result with isError: true, per the MCP spec — so your client sees the message instead of a transport failure:

{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "isError": true,
    "content": [{ "type": "text", "text": "Stage not found." }]
  }
}

Check result.isError before trusting a tool result. A 200 response does not on its own mean the call did what you asked.

Status codes

CodeMeaning
200Request reached a tool. Check isError for the outcome.
404Endpoint not configured, or the token is not authorised. Deliberately indistinguishable.
405Wrong method. The endpoint is POST-only; GET /api/mcp always returns this.

Limits

  • A pipeline takes between 1 and 25 stages. Larger plans need splitting across pipelines.
  • category is capped at 40 characters.
  • Dates are YYYY-MM-DD. Pass an empty string to clear one rather than null.
  • Requests are stateless request/response. There is no server-to-client streaming.