list_better_auth_features
Browse available authentication plugins and features by category to configure production-ready authentication for modern web frameworks.
Instructions
Get a list of all available Better Auth plugins and features organized by category
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Optional category filter: authentication, databases, integrations, or plugins |
Implementation Reference
- src/index.ts:247-268 (handler)The main handler function that implements the list_better_auth_features tool logic. It checks the cache for features list, loads from docs if needed, filters by optional category, and returns the results in a standardized response.private async handleListFeatures(args?: any) { try { if (!this.featuresListCache) { await this.loadFeaturesFromDocs(); } let features = this.featuresListCache || []; // Filter by category if specified if (args?.category) { features = features.filter(feature => feature.category === args.category); } return this.createSuccessResponse({ total: features.length, features: features, categories: Object.keys(this.FEATURE_CATEGORIES), }); } catch (error) { this.handleAxiosError(error, "Failed to fetch Better Auth features"); } }
- src/index.ts:134-148 (registration)Registration of the tool in the ListToolsRequestSchema response, defining its name, description, and input schema.{ name: "list_better_auth_features", description: "Get a list of all available Better Auth plugins and features organized by category", inputSchema: { type: "object", properties: { category: { type: "string", description: "Optional category filter: authentication, databases, integrations, or plugins", enum: ["authentication", "databases", "integrations", "plugins"], }, }, required: [], }, },
- src/index.ts:223-224 (registration)Switch case dispatcher in CallToolRequestSchema handler that routes calls to list_better_auth_features to its handler function.case "list_better_auth_features": return await this.handleListFeatures(request.params.arguments);
- src/index.ts:137-147 (schema)Input schema defining the optional 'category' parameter for filtering features.inputSchema: { type: "object", properties: { category: { type: "string", description: "Optional category filter: authentication, databases, integrations, or plugins", enum: ["authentication", "databases", "integrations", "plugins"], }, }, required: [], },
- src/index.ts:75-97 (helper)Static feature categories and lists used by the handler and loaders to generate the complete features list.private readonly FEATURE_CATEGORIES = { authentication: [ "email-password", "social-sign-on", "apple", "discord", "facebook", "github", "google", "hugging-face", "kick", "microsoft", "slack", "notion", "tiktok", "twitch", "twitter", "dropbox", "linear", "linkedin", "gitlab", "reddit", "roblox", "spotify", "vk", "zoom" ], databases: [ "mysql", "sqlite", "postgresql", "ms-sql", "drizzle", "prisma", "mongodb" ], integrations: [ "astro", "remix", "next", "nuxt", "sveltekit", "solidstart", "tanstack-start", "hono", "fastify", "express", "elysia", "nitro", "nestjs", "expo" ], plugins: [ "two-factor", "username", "anonymous", "phone-number", "magic-link", "email-otp", "passkey", "generic-oauth", "one-tap", "sign-in-with-ethereum", "admin", "api-key", "mcp", "organization", "enterprise", "oidc-provider", "sso", "bearer", "captcha", "have-i-been-pwned", "multi-session", "oauth-proxy", "one-time-token", "open-api", "jwt", "stripe", "polar", "autumn-billing", "dodo-payments", "dub" ] };