Skip to main content
Glama
fadlee

PocketBase MCP Server

by fadlee

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
NameRequiredDescriptionDefault
additionalDataNoAdditional user data fields specific to your auth collection
collectionNoAuth collection name (default: 'users')
emailYesUser email
emailVisibilityNoWhether the user email is publicly visible (default: false)
passwordYesUser password
passwordConfirmYesPassword confirmation (must match password)
verifiedNoWhether the user is verified (default: false)

Implementation Reference

  • 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);
        }
      };
    }
  • 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),
    },
  • 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>;
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fadlee/pocketbase-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server