https://api.semicola.com/mcp/v3 with OAuth or an API key. The credential decides the home
account, the accounts you can reach and what you may do in each. The URL does not select buyer or
seller behavior.
Grant only what the integration needs. A tool can appear in
tools/list and still refuse a write when
your role lacks the permission. After authenticating, call get_status to confirm the account.
How OAuth works here
Semicola follows the MCP authorization spec. A compliant client needs only the endpoint URL.1
Challenge
An unauthenticated request gets
401 and a challenge that points at the discovery document:2
Discovery
The protected-resource document names the exact resource and its authorization server:Follow the
resource_metadata URL from the challenge rather than building it yourself, and read
the authorization server from this document instead of hard-coding it. The
authorization server’s own metadata is also mirrored at
https://api.semicola.com/.well-known/oauth-authorization-server for clients that look on the
resource’s origin.3
Registration
Clients register themselves with dynamic client registration (RFC 7591) as public clients
(
token_endpoint_auth_method: none). Redirect URIs must use https; localhost is allowed.4
Sign-in and consent
The client runs the authorization-code flow with PKCE (
S256) and passes
resource=https://api.semicola.com/mcp/v3. The person signs in on the Semicola login page, picks
the account to connect if they have several, and approves the client. The browser then shows
“Authentication complete” and hands control back to the client.5
Tokens
The client receives a short-lived access token and a rotating refresh token, and sends
Authorization: Bearer <access token> on every request.Resource binding
Tokens are bound to the exact MCP URL they were issued for. Semicola checks the signature, issuer, expiry and that the token’s audience equals the URL being called. A token issued for/mcp/v3 is
refused on the REST API, on the v2 endpoints and on per-seller AdCP endpoints. Carry the resource
value through authorization, token exchange and refresh.
Seeing and revoking connections
Every OAuth client you approve appears under Settings → Connected apps with its name, when it first connected and when it last refreshed. Disconnect revokes its tokens immediately.Errors you may see
MCP client setup
Host-specific configuration for Codex, Claude Code, Claude, ChatGPT and others.