Progressive authorization allows users to authorize apps incrementally, rather than all at once. This improves UX by only requesting access when tools actually need it.Documentation Index
Fetch the complete documentation index at: https://docs.agentfront.dev/llms.txt
Use this file to discover all available pages before exploring further.
How It Works
Configuration
Enable progressive auth with local mode:Authorization Hierarchy
Progressive auth operates at three levels:Token Vault
The token vault stores per-app credentials and expands as users authorize more apps:Initial State
Session Token:
user-123Vault:- CRM: Authorized
After Slack Auth
Session Token:
user-123 (same)Vault:- CRM: Authorized
- Slack: Authorized
After GitHub Auth
Session Token:
user-123 (same)Vault:- CRM: Authorized
- Slack: Authorized
- GitHub: Authorized
The session token remains the same. Only the token vault expands with new app credentials.
Authorization Response
When a tool requires unauthorized access, FrontMCP returns:Handling in Clients
Consent UI
The built-in consent UI lets users choose which apps to authorize:Multi-Provider Setup
App Configuration
Server Configuration
Standalone vs Nested Apps
Apps can be configured as standalone (direct access) or nested (under parent):| Configuration | Direct Access | Federated Auth |
|---|---|---|
standalone: true | /slack/oauth/authorize | Also in parent consent |
standalone: false (default) | N/A | Only via parent |
Skip and Authorize Later
Users can skip apps during initial consent and authorize later:Skipping
Later Authorization
Session Token Structure
OpenAPI Adapter Integration
When using OpenAPI adapters, tools are automatically grouped by auth provider:Tool Consent Types
When consent is enabled, FrontMCP tracks granular tool-level authorization using these types:ConsentToolItem
Represents a tool in the consent UI:| Field | Type | Description |
|---|---|---|
id | string | Tool identifier |
name | string | Display name |
description | string | Tool description |
appId | string | Parent app ID |
requiredScopes | string[] | OAuth scopes needed |
category | string | Grouping category |
ConsentSelection
Captures the user’s tool selection:| Field | Type | Description |
|---|---|---|
selectedTools | string[] | Tool IDs the user authorized |
allSelected | boolean | Whether all tools were selected |
consentedAt | number | Timestamp of consent |
consentVersion | string | Schema version for migration |
ConsentState
Full consent flow state passed to the consent UI:| Field | Type | Description |
|---|---|---|
availableTools | ConsentToolItem[] | All tools requiring consent |
preSelected | string[] | Tools pre-selected by default |
groupBy | string | Grouping field (e.g., appId, category) |
FederatedLoginState
For multi-provider consent where users select which IdPs to authenticate with:| Field | Type | Description |
|---|---|---|
providers | FederatedProviderItem[] | Available identity providers |
required | string[] | Providers that cannot be skipped |
optional | string[] | Providers the user can skip |
Best Practices
Request minimal scopes - Only ask for what each tool needs
Provide clear descriptions - Users should understand why each app is needed
Handle auth errors gracefully - Show friendly messages with auth links
Use stateful sessions - Required for token vault to work
Test the skip flow - Ensure skipped apps can be authorized later
Troubleshooting
Token vault not updating
Token vault not updating
- Ensure stateful token storage is configured (Redis for multi-instance)
- Check Redis connectivity if using Redis storage
- Verify the session ID matches across requests
Auth link not working
Auth link not working
- Check the
auth_urlincludes correct app and scope parameters - Verify the app is registered with the server
- Ensure redirect URIs are configured correctly
Skipped apps won't authorize
Skipped apps won't authorize
Next Steps
Remote OAuth
Configure external identity providers
Tokens & Sessions
Token lifecycle and session management
Production Checklist
Security requirements for deployment
Authorization Modes
Choose the right auth mode