pocketbase-mcp-server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Allows comprehensive interaction with PocketBase databases including collection management, record operations, user management, and database operations such as backup/restore and data migration

  • Provides TypeScript definitions for all operations, ensuring type safety when using the tools

Servidor MCP PocketBase avanzado

Un servidor MCP integral que proporciona herramientas sofisticadas para interactuar con bases de datos de PocketBase. Este servidor permite operaciones avanzadas de bases de datos, gestión de esquemas y manipulación de datos mediante el Protocolo de Contexto de Modelo (MCP).

Registro de cambios

v2.1.0 (3 de abril de 2025)

Agregado

  • Se agregó la herramienta batch_update_records para actualizar varios registros a la vez.
  • Se agregó la herramienta batch_delete_records para eliminar varios registros a la vez.
  • Se agregó la herramienta subscribe_to_collection para suscripciones a eventos en tiempo real (requiere polyfill eventsource ).

Fijado

  • Se corrigió el esquema para authenticate_user para permitir la autenticación de administrador a través de variables de entorno sin correo electrónico o contraseña explícitos.
  • Se agregó la dependencia eventsource y polyfill para habilitar suscripciones en tiempo real en Node.js.

v2.0.0 (2 de abril de 2025)

Agregado

  • Soporte mejorado de autenticación de administrador con variables de entorno
  • Se agregó soporte para la suplantación de administrador a través de la herramienta impersonate_user
  • Manejo mejorado de errores para operaciones de autenticación
  • Se agregaron definiciones de tipos de TypeScript completas para una mejor experiencia de desarrollo
  • Se agregó soporte para la integración de Cline

Fijado

  • Se corrigieron errores de TypeScript en la implementación del cliente PocketBase
  • Manejo mejorado de campos de esquema con anotaciones de tipo adecuadas
  • Se solucionaron problemas con las propiedades de campos de esquema opcionales

Cambió

  • Se actualizó el flujo de autenticación para admitir múltiples métodos de autenticación.
  • Documentación mejorada con ejemplos más detallados
  • Opciones de configuración de variables de entorno mejoradas

Características

Gestión de cobros

  • Crear y administrar colecciones con esquemas personalizados
  • Migrar esquemas de recopilación con preservación de datos
  • Gestión avanzada de índices (crear, eliminar, listar)
  • Validación de esquemas y seguridad de tipos
  • Recuperar esquemas de colección y metadatos

Operaciones de registro

  • Operaciones CRUD para registros
  • Consultas avanzadas con filtrado, ordenación y agregación
  • Capacidades de importación y exportación por lotes
  • Apoyo para la expansión de relaciones
  • Paginación y navegación basada en cursor

Gestión de usuarios

  • Autenticación de usuarios y gestión de tokens
  • Creación y gestión de cuentas de usuario
  • Gestión de contraseñas
  • Control de acceso basado en roles
  • Manejo de sesiones

Operaciones de base de datos

  • Copia de seguridad y restauración de bases de datos
  • Múltiples formatos de exportación (JSON/CSV)
  • Herramientas de migración de datos
  • Optimización de índices
  • Operaciones por lotes

Herramientas disponibles

Gestión de cobros

  • create_collection : Crea una nueva colección con un esquema personalizado
  • get_collection_schema : Obtener detalles del esquema para una colección
  • migrate_collection : Migrar el esquema de colección con preservación de datos
  • manage_indexes : Crea, elimina o enumera índices de colección

Operaciones de registro

  • create_record : Crea un nuevo registro en una colección
  • list_records : Lista de registros con filtros y paginación opcionales
  • update_record : Actualizar un registro existente
  • delete_record : Eliminar un registro
  • query_collection : consulta avanzada con filtrado, ordenación y agregación
  • batch_update_records : Actualizar varios registros en una sola llamada
  • batch_delete_records : elimina varios registros en una sola llamada
  • subscribe_to_collection : Suscribirse a los cambios en tiempo real en una colección (requiere el paquete eventsource en el entorno Node.js)
  • import_data : Importa datos a una colección con modos de creación, actualización y actualización.

Gestión de usuarios

  • authenticate_user : Autenticar un usuario y obtener el token de autenticación
  • create_user : Crea una nueva cuenta de usuario
  • list_auth_methods : enumera todos los métodos de autenticación disponibles
  • authenticate_with_oauth2 : Autenticar un usuario con OAuth2
  • authenticate_with_otp : Autenticar un usuario con una contraseña de un solo uso
  • auth_refresh : Actualizar el token de autenticación
  • request_verification : Solicitar verificación de correo electrónico
  • confirm_verification : Confirmar la verificación del correo electrónico con el token
  • request_password_reset : Solicitar restablecimiento de contraseña
  • confirm_password_reset : Confirmar el restablecimiento de contraseña con token
  • request_email_change : Solicitar cambio de correo electrónico
  • confirm_email_change : Confirmar el cambio de correo electrónico con el token
  • impersonate_user : Suplantar la identidad de otro usuario (solo administrador)

Operaciones de base de datos

  • backup_database : Crea una copia de seguridad de la base de datos de PocketBase con opciones de formato
  • import_data : Importa datos con varios modos (crear/actualizar/insertar)

Configuración

El servidor requiere las siguientes variables de entorno:

Variables de entorno opcionales:

  • POCKETBASE_ADMIN_EMAIL : Correo electrónico de administrador para ciertas operaciones
  • POCKETBASE_ADMIN_PASSWORD : Contraseña de administrador
  • POCKETBASE_DATA_DIR : Ruta del directorio de datos personalizado

Ejemplos de uso

Gestión de cobros

// Create a new collection await mcp.use_tool("pocketbase", "create_collection", { name: "posts", schema: [ { name: "title", type: "text", required: true }, { name: "content", type: "text", required: true } ] }); // Manage indexes await mcp.use_tool("pocketbase", "manage_indexes", { collection: "posts", action: "create", index: { name: "title_idx", fields: ["title"], unique: true } });

Consultas avanzadas

// Query with filtering, sorting, and aggregation await mcp.use_tool("pocketbase", "query_collection", { collection: "posts", filter: "created >= '2024-01-01'", sort: "-created", aggregate: { totalLikes: "sum(likes)", avgRating: "avg(rating)" }, expand: "author,categories" });

Importación/exportación de datos

// Import data with upsert mode await mcp.use_tool("pocketbase", "import_data", { collection: "posts", data: [ { title: "First Post", content: "Hello World" }, { title: "Second Post", content: "More content" } ], mode: "upsert" }); // Backup database await mcp.use_tool("pocketbase", "backup_database", { format: "json" // or "csv" });

Migración de esquemas

// Migrate collection schema await mcp.use_tool("pocketbase", "migrate_collection", { collection: "posts", newSchema: [ { name: "title", type: "text", required: true }, { name: "content", type: "text", required: true }, { name: "tags", type: "json", required: false } ], dataTransforms: { // Optional field transformations during migration tags: "JSON.parse(oldTags)" } });

Operaciones por lotes y en tiempo real

// Batch update records await mcp.use_tool("pocketbase", "batch_update_records", { collection: "products", records: [ { id: "record_id_1", data: { price: 19.99 } }, { id: "record_id_2", data: { status: "published" } } ] }); // Batch delete records await mcp.use_tool("pocketbase", "batch_delete_records", { collection: "products", recordIds: ["record_id_3", "record_id_4"] }); // Subscribe to collection changes (logs events to server console) // Note: Requires 'eventsource' package installed in the Node.js environment running the server. await mcp.use_tool("pocketbase", "subscribe_to_collection", { collection: "products" }); // Subscribe to a specific record await mcp.use_tool("pocketbase", "subscribe_to_collection", { collection: "products", recordId: "specific_product_id" });

Métodos de autenticación

// List available authentication methods await mcp.use_tool("pocketbase", "list_auth_methods", { collection: "users" }); // Authenticate with password await mcp.use_tool("pocketbase", "authenticate_user", { email: "user@example.com", password: "securepassword", collection: "users" }); // Authenticate with OAuth2 await mcp.use_tool("pocketbase", "authenticate_with_oauth2", { provider: "google", code: "auth_code_from_provider", codeVerifier: "code_verifier_from_pkce", redirectUrl: "https://your-app.com/auth/callback", collection: "users" }); // Request password reset await mcp.use_tool("pocketbase", "request_password_reset", { email: "user@example.com", collection: "users" }); // Confirm password reset await mcp.use_tool("pocketbase", "confirm_password_reset", { token: "verification_token", password: "new_password", passwordConfirm: "new_password", collection: "users" }); // Refresh authentication token await mcp.use_tool("pocketbase", "auth_refresh", { collection: "users" });

Manejo de errores

Todas las herramientas incluyen un completo sistema de gestión de errores con mensajes detallados. Los errores se tipifican correctamente e incluyen:

  • Errores de solicitud no válida
  • Errores de autenticación
  • Errores de operación de la base de datos
  • Errores de validación del esquema
  • Errores de red

Seguridad de tipos

El servidor incluye definiciones de TypeScript para todas las operaciones, lo que garantiza la seguridad de tipos al usar las herramientas. El esquema de entrada de cada herramienta está estrictamente tipado y validado.

Mejores prácticas

  1. Utilice siempre un manejo de errores adecuado con los bloques try/catch
  2. Validar datos antes de realizar operaciones
  3. Utilice índices apropiados para un mejor rendimiento de las consultas
  4. Realice copias de seguridad periódicas de su base de datos
  5. Utilice migraciones para cambios de esquema
  6. Siga las mejores prácticas de seguridad para la gestión de usuarios
  7. Supervisar y optimizar el rendimiento de la base de datos

Desarrollo

  1. Clonar el repositorio
  2. Instalar dependencias: npm install
  3. Copiar .env.example a .env y configurar
  4. Construir: npm run build
  5. Inicie su instancia de PocketBase
  6. El servidor MCP se conectará automáticamente a su instancia de PocketBase

Instalación mediante herrería

Para instalar PocketBase Server para Claude Desktop automáticamente a través de Smithery :

npx -y @smithery/cli install pocketbase-server --client claude

Contribuyendo

  1. Bifurcar el repositorio
  2. Crear una rama de características
  3. Confirme sus cambios
  4. Empujar hacia la rama
  5. Crear una solicitud de extracción

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Un servidor MCP integral que proporciona herramientas sofisticadas para interactuar con bases de datos de PocketBase. Este servidor permite operaciones avanzadas de bases de datos, gestión de esquemas y manipulación de datos mediante el Protocolo de Contexto de Modelo (MCP).

  1. Changelog
    1. v2.1.0 (April 3, 2025)
    2. v2.0.0 (April 2, 2025)
  2. Features
    1. Collection Management
    2. Record Operations
    3. User Management
    4. Database Operations
  3. Available Tools
    1. Collection Management
    2. Record Operations
    3. User Management
    4. Database Operations
  4. Configuration
    1. Usage Examples
      1. Collection Management
      2. Advanced Querying
      3. Data Import/Export
      4. Schema Migration
      5. Batch & Real-time Operations
      6. Authentication Methods
    2. Error Handling
      1. Type Safety
        1. Best Practices
          1. Development
            1. Installing via Smithery
              1. Contributing
                ID: z2xjuegxxh