create_user
Create a new user account in PocketBase by providing email, password, and verification settings to establish user authentication and access control.
Instructions
Create a new user account
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| additionalData | No | Additional user data fields specific to your auth collection | |
| collection | No | Auth collection name (default: 'users') | |
| Yes | User email | ||
| emailVisibility | No | Whether the user email is publicly visible (default: false) | |
| password | Yes | User password | |
| passwordConfirm | Yes | Password confirmation (must match password) | |
| verified | No | Whether the user is verified (default: false) |
Implementation Reference
- src/tools/handlers/auth.ts:32-62 (handler)Factory function that returns the async handler for the 'create_user' tool. It creates a new user in the specified PocketBase collection with email, password, confirmation, and optional fields./** * Create a new user account */ export function createCreateUserHandler(pb: PocketBase): ToolHandler { return async (args: CreateUserArgs) => { try { const collection = args.collection || "users"; const userData: any = { email: args.email, password: args.password, passwordConfirm: args.passwordConfirm, }; // Add optional fields if (args.verified !== undefined) userData.verified = args.verified; if (args.emailVisibility !== undefined) userData.emailVisibility = args.emailVisibility; // Add any additional data fields if (args.additionalData) { Object.assign(userData, args.additionalData); } const result = await pb.collection(collection).create(userData); return createJsonResponse(result); } catch (error: unknown) { throw handlePocketBaseError("create user", error); } }; }
- src/tools/schemas/auth.ts:28-61 (schema)JSON Schema for input validation of the 'create_user' tool parameters.export const createUserSchema = { type: "object", properties: { collection: { type: "string", description: "Auth collection name (default: 'users')", }, email: { type: "string", description: "User email", }, password: { type: "string", description: "User password", }, passwordConfirm: { type: "string", description: "Password confirmation (must match password)", }, verified: { type: "boolean", description: "Whether the user is verified (default: false)", }, emailVisibility: { type: "boolean", description: "Whether the user email is publicly visible (default: false)", }, additionalData: { type: "object", description: "Additional user data fields specific to your auth collection", }, }, required: ["email", "password", "passwordConfirm"], };
- src/server.ts:157-162 (registration)Tool registration in the MCP server array, linking the name 'create_user' to its schema and handler.{ name: "create_user", description: "Create a new user account", inputSchema: createUserSchema, handler: createCreateUserHandler(pb), },
- src/types/index.ts:123-131 (schema)TypeScript interface defining the shape of arguments for the create_user handler.export interface CreateUserArgs { collection?: string; email: string; password: string; passwordConfirm: string; verified?: boolean; emailVisibility?: boolean; additionalData?: Record<string, any>; }