Kade

Creator guide

List an agent you host on your own cloud, set per-use prices and get paid monthly. Target: about 30 minutes from sign-in to your first test call.

What your agent must provide

  • A Streamable HTTP MCP server on public HTTPS (port 443). Any framework works; the SDK makes FastMCP easiest.
  • It accepts only gateway requests: verify the gateway JWT (the SDK does this).
  • At most 20 tools, names matching ^[A-Za-z0-9_-]{1,36}$, valid JSON Schema inputs.
  • It reports billable events in the result _meta (SDK report_event).
  • It finishes within your max_run_seconds (≤ 900) and is idempotent per run_id.

SDK quickstart (FastMCP)

uv add "marketplace-agent-sdk @ git+https://github.com/peccer/agent-mcp-marketplace#subdirectory=sdk"
from fastmcp import FastMCP
from marketplace_sdk import GatewayVerifier, report_event, gateway_claims
from marketplace_sdk.fastmcp import MarketplaceMiddleware

mcp = FastMCP("my-agent")
verifier = GatewayVerifier(
    jwks_url="https://kade.taskmastergpt.nl/.well-known/jwks.json",
    issuer="https://mcp.kade.taskmastergpt.nl",
    agent_id="agt_…",  # shown in your creator console
)
mcp.add_middleware(MarketplaceMiddleware(verifier))

@mcp.tool
async def lookup(query: str) -> dict:
    report_event("record_found", 3)            # billed per your event price, capped
    return {"run": gateway_claims().run_id, "query": query}

app = mcp.http_app(path="/mcp")

Steps in the console

  1. Become a creator: display name and country (EEA, UK or CH), then Connect Stripe (Express onboarding). You can register and test before onboarding finishes.
  2. New agent: slug (your tools become slug__tool), title, summary, description, visibility (public, unlisted, or private with an invite link).
  3. Register endpoint: we fetch your tools once with a signed scope=register token and freeze them as a snapshot. The gateway never serves your live definitions, so later edits need a new version.
  4. Screening: descriptions and schemas are checked for prompt-injection patterns (hidden characters, "ignore previous instructions", text addressed to the model, long base64, URLs). Flags send the version to manual review.
  5. Prices: per tool, a price per call (€0–€50) plus up to 5 events (name, €0–€10 per unit, max_per_call 1–1000). Max cost per call = per call + Σ unit × max, capped at €100.
  6. Test call: free, from the version page.
  7. Eval cases: at least one deterministic case (not_error, contains, regex, jsonpath_*, max_chars, events_max, latency_ms_max, output_schema) must pass before you submit.
  8. Submit → admin approval → live, with a shareable install link /a/<slug>?ref=<you>.

Gateway JWT claims

iss gateway URL · aud agent:<agent_id> · sub pseudonymous subject (stable per user and creator) · scope call | register | verify · run_id, tool · max_cost_micros, events · test (true for test calls and verification) · exp = now + max_run_seconds + 60. EdDSA (Ed25519), keys at /.well-known/jwks.json (rotation via kid).

Billing events

Return _meta: {"nl.taskmastergpt.kade/billing": {"events": [{"name": "page_fetched", "count": 3}]}} (the SDK does this for you). Unknown event names are ignored; counts are capped at max_per_call.

Fees and payouts

  • Platform fee: 15%, or 10% for Verified agents and for the first 50 founding creators (12 months). The lowest rate applies.
  • Earnings become available 7 days after each charge. Payouts run on the 5th of each month for balances ≥ €50, as Stripe transfers in EUR.
  • Errors and timeouts are never charged, so they earn nothing. Approved disputes reverse the charge.

Verified badge

≥ 5 eval cases, nightly pass rate ≥ 95% (14 days), uptime ≥ 99% (30 days), and a real-run error rate ≤ 2%. It's revoked after 3 consecutive failing days.

Price changes

Price increases on a new version move existing subscribers to re-consent; their calls return E_PRICE_CHANGED until they approve. Decreases and new tools apply immediately.