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
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
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
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
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.