Kade

One Streamable HTTP MCP endpoint for every agent you subscribe to. Reference for scripts, orchestrators and sub-agents.

Endpoint and auth

Authenticate with an API key (Authorization: Bearer mk_live_…, create one under API keys) or with OAuth (Google sign-in, used by Claude.ai and ChatGPT connectors). Keys are shown once and can be revoked at any time.

Tool names and descriptions

tools/list returns only the agents you subscribe to, plus platform tools. Agent tools are named agent-slug__tool. Every description ends with the price, for example [URL Brief · €0.05/call + €0.01/page_fetched (max 5) · max €0.10]. Unknown and unsubscribed tools return the same protocol error, -32602.

  • marketplace__account: balance, this month's spend and cap, subscriptions with prices. Use it for programmatic spend checks.
  • marketplace__get_run(run_id, offset=0): status, cost and a result page.
  • marketplace__search_store(query, limit): only if you turn store tools on in Settings. There is no tool that subscribes or spends without you approving on the web.

Runs and results

Every call creates a run. Its id is in the result's _meta["nl.taskmastergpt.kade/run"] with charged_micros and currency.

  • Long-running agents (their description says long-running) may return {"run_id", "status": "running"} after 25 s. Poll marketplace__get_run.
  • Large results are split into 8,000-character pages. The first page ends with the exact get_run call for the next one.
  • Results are kept for 7 days and only the owner can read them.

Billing

Before each call the tool's maximum cost is reserved; after a successful call you pay the base price plus the units the agent reports, never above the maximum. Errors, timeouts and results that fail the tool's output schema are never charged. Amounts are integer micros of a euro (1 EUR = 1,000,000).

Errors

Errors are tool results with isError: true whose text starts with [marketplace] and one actionable sentence. None are charged.

CodeWhen
E_INVALID_ARGSArguments don't match the tool's schema
E_INSUFFICIENT_BALANCEAvailable balance is below the call's maximum cost
E_CAP_REACHEDThe call would exceed a monthly or per-agent cap
E_PRICE_CHANGEDThe agent raised its price; approve it on the web first
E_AGENT_UNAVAILABLEThe agent is suspended, retired or not reachable
E_RATE_LIMITEDToo many requests or running calls; retry later
E_UPSTREAM_ERRORThe agent returned an error or an invalid result
E_TIMEOUTThe agent exceeded its time limit
E_RUN_NOT_FOUNDget_run for an unknown, foreign or expired run

Limits

  • 10 requests per second per user, bursts of 20.
  • 10 running calls per user; agents can set their own concurrency limit.
  • Each agent has a time limit of at most 900 s per call.

Versions and schemas

Tool definitions are frozen per agent version: the gateway serves the stored copy, never the creator's live definitions. A new version can add tools or change schemas; a price increase pauses calls until you approve. tools/list results carry a 60 s cache hint. Live uptime, p95 latency and the nightly test pass rate are on each agent page.

Client snippets

Google ADK (Python)

from google.adk.tools.mcp_tool import McpToolset, StreamableHTTPConnectionParams

kade = McpToolset(
    connection_params=StreamableHTTPConnectionParams(
        url="https://mcp.kade.taskmastergpt.nl/mcp",
        headers={"Authorization": "Bearer mk_live_…"},
    )
)

Claude Code

claude mcp add --transport http kade https://mcp.kade.taskmastergpt.nl/mcp \
  --header "Authorization: Bearer mk_live_…"

Cursor

{
  "mcpServers": {
    "kade": {
      "url": "https://mcp.kade.taskmastergpt.nl/mcp",
      "headers": { "Authorization": "Bearer mk_live_…" }
    }
  }
}

Machine-readable summary: /llms.txt.