webmcp.fast

API conventions

The HTTP API on https://webmcp.fast is small. The daemon uses it to pair a device, agents use the management MCP endpoint, and OAuth clients register themselves. The machine-readable description is https://webmcp.fast/openapi.json (OpenAPI 3.1); this page states the rules that hold across all of it.

Start without an account or a key

Nothing here needs a pre-issued API key, and the first call needs no account.

The free tier (1 handle, 1 device, 1 server, 1 connector) is what you get. See pricing.

Versioning

The version is in the path: /api/v1. Every response under /api/ carries an API-Version: 1 header. Within a version, changes are additive only: new operations, new optional request fields, new response fields, new error codes. Clients must ignore fields they do not know. Anything that would break a correct client ships under a new path (/api/v2) while /api/v1 keeps working.

The discovery documents under /.well-known/, the management MCP endpoint and the OAuth endpoints follow their own specifications and are versioned by those.

Deprecation and sunset policy

Nothing is deprecated today.

Rate limits

Limits are per client IP, in fixed windows. Rate-limited operations report where you stand on every response, not only on refusal:

HeaderMeaning
RateLimit-PolicyThe quota, for example "device-start";q=10;w=900 (10 requests per 900 seconds)
RateLimitWhat is left, for example "device-start";r=9;t=412 (9 remaining, resets in 412 seconds)
X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-ResetThe same three numbers for clients that read the older names. Reset is in seconds
Retry-AfterOn 429 only: seconds to wait
OperationLimit
POST /api/v1/device/start10 per 15 minutes
POST /api/v1/pair20 per 15 minutes
POST /agent/identity10 per hour
POST /agent/identity/claim30 per 15 minutes, and 10 per registration
POST /oauth/token with the agent-auth grants120 per 15 minutes
Requests to /api/ paths that match no operation60 per minute

On 429, wait Retry-After seconds and try again. Do not retry faster. Relayed MCP calls on a user's own endpoint are not metered for cost, only limited against abuse.

Errors

Every error under /api/ and /agent/ is JSON, whatever the status: unknown paths (404), wrong methods (405 with an Allow header), bad bodies (400), rate limits (429) and server faults (5xx).

{
  "error": "code_not_found",
  "message": "That pairing code is unknown, expired or already used.",
  "hint": "Create a new code on the dashboard, or run `webmcp up`, which needs no code.",
  "docs": "https://webmcp.fast/docs/api"
}

error is a stable machine code: match on it, never on message. hint says what to do next. The codes:

The management MCP endpoint answers with JSON-RPC 2.0 error objects instead, as MCP requires, and the OAuth endpoints with RFC 6749 error objects.

Changelog

Related

OpenAPI, API catalog, auth.md, agent-driven setup, security model.