OAuth 2.1
Nico implements an OAuth 2.1 authorization server for third-party applications and MCP server connections.Overview
OAuth 2.1 allows external applications to access your Nico account with your permission, without sharing your password. This is how AI assistants connect to the MCP server. The authorization server runs at:Client registration
Nico supports Dynamic Client Registration (RFC 7591): MCP clients such as ChatGPT and Claude register themselves automatically when you add the connector — you don’t need to enter a client ID or secret. Leave any OAuth client fields blank and the client will self-register atPOST /oauth/register.
Registered clients are public clients — there is no client secret; the flow is secured by PKCE instead (see below). Self-registered clients that request
client_secret_basic receive a secret at registration time.Discovery
Nico publishes an OAuth metadata document following RFC 8414:Authorization flow
Nico uses the authorization code grant type with mandatory PKCE (S256):
Access tokens expire after 1 hour; a refresh token is issued alongside so clients can renew access without re-prompting you.
Endpoints
The authorization endpoint lives on the app origin because it’s interactive — it shows the login and consent screens using your existing Nico session. The non-interactive endpoints (token, revocation) stay on the MCP host. Clients that use the discovery document get the correct URLs automatically.
Scopes
The MCP server requires the
mcp scope. Without it, MCP tool calls will be rejected.Managing grants
You can view and revoke OAuth grants in your account:- View active grants: See which applications have access to your account
- Revoke a grant: Remove an application’s access immediately