request_password_reset
Initiate a password reset for a user by submitting their email, enabling secure account recovery within the specified collection in PocketBase MCP Server.
Instructions
Request password reset
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| collection | No | Collection name (default: users) | users |
| Yes | User email |
Implementation Reference
- src/index.ts:434-452 (schema)Input schema definition for the 'request_password_reset' tool. Specifies required 'email' parameter and optional 'collection'.{ name: 'request_password_reset', description: 'Request password reset', inputSchema: { type: 'object', properties: { email: { type: 'string', description: 'User email', }, collection: { type: 'string', description: 'Collection name (default: users)', default: 'users' } }, required: ['email'], }, },
- src/index.ts:49-666 (registration)The tool is registered in the ListToolsRequestSchema handler by including it in the returned tools array.this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: [ { name: 'create_collection', description: 'Create a new collection in PocketBase note never use created and updated because these are already created', inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'Unique collection name (used as a table name for the records table)', }, type: { type: 'string', description: 'Type of the collection', enum: ['base', 'view', 'auth'], default: 'base', }, fields: { type: 'array', description: 'List with the collection fields', items: { type: 'object', properties: { name: { type: 'string', description: 'Field name' }, type: { type: 'string', description: 'Field type', enum: ['bool', 'date', 'number', 'text', 'email', 'url', 'editor', 'autodate', 'select', 'file', 'relation', 'json'] }, required: { type: 'boolean', description: 'Is field required?' }, values: { type: 'array', items: { type: 'string' }, description: 'Allowed values for select type fields', }, collectionId: { type: 'string', description: 'Collection ID for relation type fields' } }, }, }, createRule: { type: 'string', description: 'API rule for creating records', }, updateRule: { type: 'string', description: 'API rule for updating records', }, deleteRule: { type: 'string', description: 'API rule for deleting records', }, listRule: { type: 'string', description: 'API rule for listing and viewing records', }, viewRule: { type: 'string', description: 'API rule for viewing a single record', }, viewQuery: { type: 'string', description: 'SQL query for view collections', }, passwordAuth: { type: 'object', description: 'Password authentication options', properties: { enabled: { type: 'boolean', description: 'Is password authentication enabled?' }, identityFields: { type: 'array', items: { type: 'string' }, description: 'Fields used for identity in password authentication', }, }, }, }, required: ['name', 'fields'], }, }, { name: 'update_collection', description: 'Update an existing collection in PocketBase (admin only)', inputSchema: { type: 'object', properties: { collectionIdOrName: { type: 'string', description: 'ID or name of the collection to update', }, name: { type: 'string', description: 'New unique collection name', }, type: { type: 'string', description: 'Type of the collection', enum: ['base', 'view', 'auth'], }, fields: { type: 'array', description: 'List with the new collection fields. If not empty, the old schema will be replaced with the new one.', items: { type: 'object', properties: { name: { type: 'string', description: 'Field name' }, type: { type: 'string', description: 'Field type', enum: ['bool', 'date', 'number', 'text', 'email', 'url', 'editor', 'autodate', 'select', 'file', 'relation', 'json'] }, required: { type: 'boolean', description: 'Is field required?' }, values: { type: 'array', items: { type: 'string' }, description: 'Allowed values for select type fields', }, collectionId: { type: 'string', description: 'Collection ID for relation type fields' } }, }, }, createRule: { type: 'string', description: 'API rule for creating records', }, updateRule: { type: 'string', description: 'API rule for updating records', }, deleteRule: { type: 'string', description: 'API rule for deleting records', }, listRule: { type: 'string', description: 'API rule for listing and viewing records', }, viewRule: { type: 'string', description: 'API rule for viewing a single record', }, viewQuery: { type: 'string', description: 'SQL query for view collections', }, passwordAuth: { type: 'object', description: 'Password authentication options', properties: { enabled: { type: 'boolean', description: 'Is password authentication enabled?' }, identityFields: { type: 'array', items: { type: 'string' }, description: 'Fields used for identity in password authentication', }, }, }, }, required: ['collectionIdOrName'], }, }, { name: 'create_record', description: 'Create a new record in a collection', inputSchema: { type: 'object', properties: { collection: { type: 'string', description: 'Collection name', }, data: { type: 'object', description: 'Record data', }, }, required: ['collection', 'data'], }, }, { name: 'list_records', description: 'List records from a collection with optional filters', inputSchema: { type: 'object', properties: { collection: { type: 'string', description: 'Collection name', }, filter: { type: 'string', description: 'Filter query', }, sort: { type: 'string', description: 'Sort field and direction', }, page: { type: 'number', description: 'Page number', }, perPage: { type: 'number', description: 'Items per page', }, }, required: ['collection'], }, }, { name: 'update_record', description: 'Update an existing record', inputSchema: { type: 'object', properties: { collection: { type: 'string', description: 'Collection name', }, id: { type: 'string', description: 'Record ID', }, data: { type: 'object', description: 'Updated record data', }, }, required: ['collection', 'id', 'data'], }, }, { name: 'delete_record', description: 'Delete a record', inputSchema: { type: 'object', properties: { collection: { type: 'string', description: 'Collection name', }, id: { type: 'string', description: 'Record ID', }, }, required: ['collection', 'id'], }, }, { name: 'list_auth_methods', description: 'List all available authentication methods', inputSchema: { type: 'object', properties: { collection: { type: 'string', description: 'Collection name (default: users)', default: 'users' } } } }, { name: 'authenticate_user', description: 'Authenticate a user with email and password', inputSchema: { type: 'object', properties: { email: { type: 'string', description: 'User email', }, password: { type: 'string', description: 'User password', }, collection: { type: 'string', description: 'Collection name (default: users)', default: 'users' }, isAdmin: { type: 'boolean', description: 'Whether to authenticate as an admin (uses _superusers collection)', default: false } }, required: ['email', 'password'], }, }, { name: 'authenticate_with_oauth2', description: 'Authenticate a user with OAuth2', inputSchema: { type: 'object', properties: { provider: { type: 'string', description: 'OAuth2 provider name (e.g., google, facebook, github)', }, code: { type: 'string', description: 'The authorization code returned from the OAuth2 provider', }, codeVerifier: { type: 'string', description: 'PKCE code verifier', }, redirectUrl: { type: 'string', description: 'The redirect URL used in the OAuth2 flow', }, collection: { type: 'string', description: 'Collection name (default: users)', default: 'users' } }, required: ['provider', 'code', 'codeVerifier', 'redirectUrl'], }, }, { name: 'authenticate_with_otp', description: 'Authenticate a user with one-time password', inputSchema: { type: 'object', properties: { email: { type: 'string', description: 'User email', }, collection: { type: 'string', description: 'Collection name (default: users)', default: 'users' } }, required: ['email'], }, }, { name: 'auth_refresh', description: 'Refresh authentication token', inputSchema: { type: 'object', properties: { collection: { type: 'string', description: 'Collection name (default: users)', default: 'users' } } }, }, { name: 'request_verification', description: 'Request email verification', inputSchema: { type: 'object', properties: { email: { type: 'string', description: 'User email', }, collection: { type: 'string', description: 'Collection name (default: users)', default: 'users' } }, required: ['email'], }, }, { name: 'confirm_verification', description: 'Confirm email verification with token', inputSchema: { type: 'object', properties: { token: { type: 'string', description: 'Verification token', }, collection: { type: 'string', description: 'Collection name (default: users)', default: 'users' } }, required: ['token'], }, }, { name: 'request_password_reset', description: 'Request password reset', inputSchema: { type: 'object', properties: { email: { type: 'string', description: 'User email', }, collection: { type: 'string', description: 'Collection name (default: users)', default: 'users' } }, required: ['email'], }, }, { name: 'confirm_password_reset', description: 'Confirm password reset with token', inputSchema: { type: 'object', properties: { token: { type: 'string', description: 'Reset token', }, password: { type: 'string', description: 'New password', }, passwordConfirm: { type: 'string', description: 'Confirm new password', }, collection: { type: 'string', description: 'Collection name (default: users)', default: 'users' } }, required: ['token', 'password', 'passwordConfirm'], }, }, { name: 'request_email_change', description: 'Request email change', inputSchema: { type: 'object', properties: { newEmail: { type: 'string', description: 'New email address', }, collection: { type: 'string', description: 'Collection name (default: users)', default: 'users' } }, required: ['newEmail'], }, }, { name: 'confirm_email_change', description: 'Confirm email change with token', inputSchema: { type: 'object', properties: { token: { type: 'string', description: 'Email change token', }, password: { type: 'string', description: 'Current password for confirmation', }, collection: { type: 'string', description: 'Collection name (default: users)', default: 'users' } }, required: ['token', 'password'], }, }, { name: 'impersonate_user', description: 'Impersonate another user (admin only)', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'ID of the user to impersonate', }, collectionIdOrName: { type: 'string', description: 'Collection name or id (default: users)', default: 'users' }, duration: { type: 'number', description: 'Token expirey time (default: 3600)', default: 3600 } }, required: ['id'], }, }, { name: 'create_user', description: 'Create a new user account', inputSchema: { type: 'object', properties: { email: { type: 'string', description: 'User email', }, password: { type: 'string', description: 'User password', }, passwordConfirm: { type: 'string', description: 'Password confirmation', }, name: { type: 'string', description: 'User name', }, collection: { type: 'string', description: 'Collection name (default: users)', default: 'users' } }, required: ['email', 'password', 'passwordConfirm'], }, }, { name: 'get_collection', description: 'Get details for a collection', inputSchema: { type: 'object', properties: { collectionIdOrName: { type: 'string', description: 'ID or name of the collection to view', }, fields: { type: 'string', description: 'Comma separated string of the fields to return in the JSON response', }, }, required: ['collectionIdOrName'], }, }, { name: 'backup_database', description: 'Create a backup of the PocketBase database', inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'backup name', }, }, }, }, { name: 'import_data', description: 'Import data into a collection', inputSchema: { type: 'object', properties: { collection: { type: 'string', description: 'Collection name', }, data: { type: 'array', description: 'Array of records to import', items: { type: 'object', }, }, mode: { type: 'string', enum: ['create', 'update', 'upsert'], description: 'Import mode (default: create)', }, }, required: ['collection', 'data'], }, }, { name: 'list_collections', description: 'List all collections in PocketBase', inputSchema: { type: 'object', properties: { filter: { type: 'string', description: 'Filter query for collections', }, sort: { type: 'string', description: 'Sort order for collections', }, }, }, }, { name: 'delete_collection', description: 'Delete a collection from PocketBase (admin only)', inputSchema: { type: 'object', properties: { collectionIdOrName: { type: 'string', description: 'ID or name of the collection to delete', }, }, required: ['collectionIdOrName'], }, }, ], }));