Back to Docs
MCP

Authentication & Scopes

Personal Access Token format, scope semantics, rate limits, and lifecycle.

Updated 2026-04-20

Personal Access Tokens (PATs)

PATs are long-lived, per-organization bearer tokens. Every MCP request carries one in the Authorization header:

Authorization: Bearer vbl_pat_live_<32 urlsafe chars>

Token Format

ComponentExampleMeaning
Prefixvbl_pat_live_Production. Registered with GitHub secret scanning.
Prefixvbl_pat_test_Non-production environments.
Body32 URL-safe characters24 bytes of entropy from secrets.token_urlsafe().

At creation the full token is shown once. Only a SHA256 hash of the raw value is persisted — a stolen database row cannot be replayed as a token.

Lifecycle

Step

Create

Dashboard → Settings → MCP → Create token. Choose a label and scopes. Up to ten active PATs per organization.

Step

Rotate

Create a new token, swap your client config over, then revoke the old one. Tokens have no expiry — rotation is entirely on your schedule.

Step

Revoke

Any row in the Settings list can be revoked. Rejection is immediate; in-flight requests that already passed auth complete normally.

Scopes

Every tool declares the scope(s) it requires. A PAT missing the scope sees 403 with a missing scope message.

ScopeTools It Unlocks
brand_dna:readbrand_dna.get_brand_dna
catalog:readcatalog.list_blanks
credits:readcredits.check_credits
design:readdesign.get_design_status, design.wait_for_design
design:writedesign.generate_design
mockup:readmockup.get_mockup_status
mockup:writemockup.generate_mockup

Principle of Least Privilege

Assign only the scopes a given integration needs. A monitoring agent that polls status doesn't need design:write — give it design:read + mockup:read and nothing more.

Rate Limits

Rate limits apply per-PAT per-tool. Exceeding a limit returns 429 with a Retry-After header.

ToolLimit
design.generate_design10 / minute
mockup.generate_mockup20 / minute
All other public toolsNo explicit MCP-layer limit (platform-level limits still apply)

Credit balance provides the finer gating for billable tools — you'll hit insufficient credits before you hit a rate limit on a real workload.

Errors You Might See

StatusReasonFix
401Missing or malformed Bearer tokenRe-check the Authorization header; restart the client after config changes
401Unknown or revoked PATRevoke from Settings and create a fresh one
403Tool requires a scope your PAT doesn't carryRe-create the PAT with the missing scope
429Rate limit exceededRespect Retry-After; batch requests where possible
Tool errorinsufficient credits: requires N, available MTop up credits, or drop quality="standard" for mockups