MCP / STREAMABLE HTTP

Use GoClaw as a governed MCP Server.

The public MCP resource is https://goclawai.com/mcp, secured by Streamable HTTP, OAuth Authorization Code with S256 PKCE, workspace scopes, rate limits, and audit.

01 / DISCOVER

Start with protected resource metadata

Compatible clients should read Resource Metadata first and discover the authorization server from authorization_servers. Do not hard-code token endpoints or mint access tokens yourself.

curl -fsS https://goclawai.com/.well-known/oauth-protected-resource
curl -fsS https://goclawai.com/.well-known/oauth-authorization-server
02 / CLIENT

Configure a Streamable HTTP client

MCP clients use different configuration files, but the connection is the same: Streamable HTTP at /mcp with browser-based OAuth authorization enabled.

Generic configuration shape
{
  "mcpServers": {
    "goclaw": {
      "type": "streamable-http",
      "url": "https://goclawai.com/mcp"
    }
  }
}

The client must support OAuth discovery and PKCE. Legacy clients limited to static headers cannot securely connect to production GoClaw MCP.

03 / SCOPES

Request only the scopes you need

Consent binds the grant to a user, OAuth client, and workspace. Tools and Resources are filtered by scope, so unauthorized capabilities are omitted from discovery.

catalog:read  research:read  skills:read
runs:read     runs:create    runs:cancel
artifacts:read templates:write
04 / TOOLS

Current public Run tools

The production Tool Catalog currently exposes create, get, and cancel Run operations. Create and cancel calls require a stable idempotencyKey in MCP _meta.

goclaw_create_run  runs:create  R2
goclaw_get_run     runs:read    R0
goclaw_cancel_run  runs:cancel  R1
05 / APPROVAL

OAuth scope never bypasses Approval

runs:create permits proposing a Run. When policy classifies it as high risk, the Tool returns approval.required with an Approval ID; a user must review its bounds in GoClaw.

06 / TOKENS

Validate audience and refresh safely

Send access tokens only to https://goclawai.com/mcp. Refresh tokens rotate; replace them atomically and restart authorization on invalid_grant rather than retrying indefinitely.