How It Works
Most MCP clients handle this flow automatically. You just click “Authorize” when prompted — there’s no team to pick and no manual token management. The connection is user-scoped: it can read every MCP-eligible workspace you belong to.
OAuth Endpoints
Available Scopes
Request only the scopes you need:If no scopes are specified, all read scopes are granted by default. A request that specifies only unrecognized scopes is rejected with
invalid_scope.read:measure and read:pitch-audits are newer scopes. Existing OAuth connections must reconnect and re-authorize to gain access to their tools. Scopes are never expanded silently on an already-issued token.Token Lifecycle
The OAuth flow issues a single user-scoped access token — the same kind of token as a Personal Access Token (qw-usr-). It is long-lived and has no refresh token: there is nothing to rotate, and clients simply reuse the bearer until it is revoked.
Personal Access Tokens
For headless clients that cannot run an interactive OAuth flow — automation platforms (n8n, Make), scripts, or custom agents — Qwairy supports user-scoped Personal Access Tokens (PATs). Create and revoke them from your Qwairy account under Settings → MCP.- A PAT is prefixed
qw-usr-and is tied to your user account, not a single team. - It can read every team you belong to that is on an MCP-eligible plan (Starter and above), so one token covers all your workspaces.
- Pass it as a bearer token:
Authorization: Bearer qw-usr-.... - Like the OAuth access token, a PAT has no fixed expiry. Revoke it from Settings → MCP when it is no longer needed.
PATs are read-only, like all Qwairy MCP access — they never expose write operations.
Choosing a team
Brand-scoped tools take abrandId, and Qwairy resolves the owning team automatically. Call list_brands first, then pass the brandId you want. list_pitch_audits is the other cross-workspace discovery tool: it lists only agency workspaces the token may access and accepts an optional teamId filter. Detail calls still resolve one audit from one authorized workspace, so data is never mixed across teams.
PKCE Support
The server requires PKCE with the S256 method only:- S256 — SHA-256 hash of the code verifier
plain method is not supported. Most MCP clients use S256 by default, so no extra configuration is needed.
Security Features
No Password Sharing
No Password Sharing
Your Qwairy password is never shared with any AI client. Authentication happens directly with Qwairy’s auth server.
Scoped Access
Scoped Access
Tokens are scoped to specific data types. An MCP client can only access what you’ve authorized.
Team Isolation
Team Isolation
Both OAuth connections and Personal Access Tokens are user-scoped (
qw-usr-): they span every MCP-eligible team you belong to. Each tool call still resolves to exactly one team from the requested brandId — Qwairy never mixes data across teams on a single call, so workspaces stay fully isolated even though one token reaches several.Revocation
Revocation
You can revoke access at any time from your Qwairy account settings.
Manual Token Exchange
For developers building custom MCP clients, here’s the token exchange flow:1. Start Authorization
2. Exchange Code for Tokens
qw-usr-). There is no refresh_token or expires_in — reuse the bearer until you revoke it.

