MCP servers can require OAuth 2.1 tokens. Choose between DAuth (Dedalus Auth) for managed authentication with credential isolation, or bring your own authorization server.
DAuth is Dedalus’s managed authorization system. It provides OAuth 2.1 token issuance with a key security property: credentials never leave a sealed execution boundary.
Traditional credential handling exposes secrets to your application code. DAuth isolates credentials in a secure enclave—your MCP server receives an opaque connection handle, not raw API keys.
Credentials never exposed — Encrypted client-side, decrypted only in a sealed execution boundary
Opaque handles — Your code references connections by handle, never sees raw secrets
Sender-constrained tokens — Tokens are cryptographically bound to the client; stolen tokens are unusable
Networkless execution — Credential decryption and API calls happen entirely within an isolated enclave; raw secrets never traverse the network
By default, authorization_servers points to https://as.dedaluslabs.ai (the DAuth control plane).For a complete working example with GitHub and Supabase integrations:
All requests must have these scopes. Scope names are arbitrary strings you define—common patterns are read/write for general access or resource:action (e.g., files:delete) for fine-grained control.
Report incorrect code
Copy
Ask AI
authorization=AuthorizationConfig( enabled=True, required_scopes=["read", "write"], # Required for all tools
DAuth uses DPoP (Demonstrating Proof-of-Possession) by default. Tokens are cryptographically bound to the client’s key—even if a token is stolen, it’s useless without the corresponding private key.
Report incorrect code
Copy
Ask AI
server = MCPServer( "dpop-server", authorization=AuthorizationConfig( enabled=True, dpop_required=True, ),)
Remember to add these variable to your environment. DAuth works natively with Dedalus SDK, therefore an API key is needed. Get your API key from the dashboard