const server = new McpServer({
oauth: supabase({
// Required
projectId: 'your-project-id',
// Required for HS256 tokens (legacy)
jwtSecret: process.env.MCP_USE_OAUTH_SUPABASE_JWT_SECRET,
// Optional: Supabase URL (defaults to supabase.co)
supabaseUrl: 'https://your-project-id.supabase.co',
// OAuth mode: 'proxy' (default) or 'direct'
mode: 'proxy',
// JWT verification
verifyJwt: process.env.NODE_ENV === 'production',
// Custom user info extraction
getUserInfo: (payload) => ({
userId: payload.sub,
email: payload.email,
name: payload.user_metadata?.name,
roles: payload.app_metadata?.roles || [],
permissions: payload.app_metadata?.permissions || [],
})
})
})