const server = new MCPServer({
oauth: oauthAuth0Provider({
// Required
domain: 'your-tenant.auth0.com',
audience: 'https://your-api.example.com',
// Optional
clientId: process.env.AUTH0_CLIENT_ID,
clientSecret: process.env.AUTH0_CLIENT_SECRET,
// OAuth mode: 'proxy' (default) or 'direct'
mode: 'proxy',
// JWT verification (should be true in production)
verifyJwt: process.env.NODE_ENV === 'production',
// Custom scopes
scopes: ['openid', 'profile', 'email', 'offline_access'],
// Custom user info extraction
getUserInfo: (payload) => ({
userId: payload.sub,
email: payload.email,
name: payload.name,
roles: payload['https://myapp.com/roles'] || [],
permissions: payload.permissions || [],
})
})
})