Developers
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. Pollmarketplace__get_run. - Large results are split into 8,000-character pages. The first page ends with the exact
get_runcall 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.
| Code | When |
|---|---|
E_INVALID_ARGS | Arguments don't match the tool's schema |
E_INSUFFICIENT_BALANCE | Available balance is below the call's maximum cost |
E_CAP_REACHED | The call would exceed a monthly or per-agent cap |
E_PRICE_CHANGED | The agent raised its price; approve it on the web first |
E_AGENT_UNAVAILABLE | The agent is suspended, retired or not reachable |
E_RATE_LIMITED | Too many requests or running calls; retry later |
E_UPSTREAM_ERROR | The agent returned an error or an invalid result |
E_TIMEOUT | The agent exceeded its time limit |
E_RUN_NOT_FOUND | get_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.