Skip to content

Security

Your login. Your roles. Tokens never reach the AI.

AI apps get tokens we mint. Your users' credentials stay with you and in our encrypted vault, and every call is checked against their role.

How sign-in works

  1. 1

    The AI app connects

    It finds our OAuth 2.1 authorization server from the endpoint's protected-resource metadata and registers itself. PKCE is required.

  2. 2

    Your user signs in with your login

    On one branded page on your project's host: your redirect, a one-time username + password relay to your login API, token exchange, or SSO.

  3. 3

    We verify and vault your JWT

    Checked by JWKS (or an HS256 shared secret), stored encrypted in our token vault. The role is read from the claim you chose.

  4. 4

    The client gets our token

    After consent, the AI app receives a token we mint. On each call we use the vaulted JWT to call your API on the user's behalf.

Controls

Tokens never reach the AI

Your user's JWT never reaches an MCP client, the CLI, the widget, the browser or the model.

Passwords are never stored

With the username + password method, fields are relayed once to your login API and only the returned JWT is kept. Passwords are never stored or logged. Rate-limited per IP and per account.

Roles enforced on every surface

Operations a role can't use never appear in search, and calling one is rejected, in AI apps, the CLI and the widget alike.

Single-use confirmation

Operations marked needs-confirmation first return a confirm_token. They run only when the client calls again with the same arguments plus that token, after the user agrees.

Validated before publish

You sign in as a test user and we call one operation per group live. Test credentials are used for that request only.

Sessions you can see and end

End users see and end their sessions at <host>/account. You see who is signed in, and how, in the console.

Origin-locked widget

Only the sites you list can use the widget's chat and sign-in, and browsers may call token exchange only from your allowed origins.

Keys encrypted at rest

Your AI provider key is encrypted at rest and only its last 4 characters are ever shown. Server client secrets for token exchange are shown once.

Tool-call contents not stored

Arguments and responses pass through to reach your API and the AI app. We do not store them beyond processing the request, and we do not log them.

Details: Sign-in methods · Roles & confirmations · Privacy policy

Bring your security questions.

Request access and we'll walk your team through the sign-in flow on your own login.