Advanced PocketBase MCP Server

Advanced PocketBase MCP Server

site icon
2025.01.03 0
JavaScript数据库管理数据操作数据库
Advanced PocketBase MCP Server 是一个高级的 MCP 服务器,专门用于与 PocketBase 数据库进行交互。它提供了丰富的数据库操作功能,包括集合管理、记录操作、用户管理和数据库操作等。该服务器通过 Model Context Protocol (MCP) 实现了高级的数据库操作和数据管理功能。
View on GitHub

Overview

基本能力

产品定位

Advanced PocketBase MCP Server 是一个高级的 MCP 服务器,专门用于与 PocketBase 数据库进行交互。它提供了丰富的数据库操作功能,包括集合管理、记录操作、用户管理和数据库操作等。

核心功能

  • 集合管理:创建和管理具有自定义模式的集合,迁移集合模式并保留数据,高级索引管理,模式验证和类型安全,检索集合模式和元数据。
  • 记录操作:记录的 CRUD 操作,高级查询(过滤、排序和聚合),批量导入/导出功能,关系扩展支持,分页和基于游标的导航。
  • 用户管理:用户认证和令牌管理,用户账户创建和管理,密码管理,基于角色的访问控制,会话处理。
  • 数据库操作:数据库备份和恢复,多种导出格式(JSON/CSV),数据迁移工具,索引优化,批量操作。

适用场景

  • 需要高级数据库操作和管理的应用场景。
  • 需要批量导入/导出数据的场景。
  • 需要用户管理和认证的场景。
  • 需要数据库备份和恢复的场景。

工具列表

  • 集合管理
  • create_collection:创建具有自定义模式的新集合。
  • get_collection_schema:获取集合的模式详细信息。
  • migrate_collection:迁移集合模式并保留数据。
  • manage_indexes:创建、删除或列出集合索引。
  • 记录操作
  • create_record:在集合中创建新记录。
  • list_records:列出记录,可选过滤和分页。
  • update_record:更新现有记录。
  • delete_record:删除记录。
  • query_collection:高级查询(过滤、排序和聚合)。
  • import_data:以创建/更新/更新插入模式将数据导入集合。
  • 用户管理
  • authenticate_user:认证用户并获取认证令牌。
  • create_user:创建新用户账户。
  • 数据库操作
  • backup_database:创建 PocketBase 数据库的备份,支持多种格式。
  • import_data:以多种模式导入数据(创建/更新/更新插入)。

常见问题解答

  • 错误处理:所有工具都包含全面的错误处理,并提供详细的错误消息。错误类型包括无效请求错误、认证错误、数据库操作错误、模式验证错误和网络错误。
  • 类型安全:服务器包含所有操作的 TypeScript 定义,确保使用工具时的类型安全。每个工具的输入模式都经过严格类型化和验证。

使用教程

使用依赖

  1. 安装 Node.js 和 npm。
  2. 安装 PocketBase 实例。

安装教程

  1. 克隆仓库:git clone <repository-url>
  2. 安装依赖:npm install
  3. 复制 .env.example.env 并配置: POCKETBASE_URL="http://127.0.0.1:8090" POCKETBASE_ADMIN_EMAIL="[email protected]" POCKETBASE_ADMIN_PASSWORD="yourpassword" POCKETBASE_DATA_DIR="/path/to/data"
  4. 构建项目:npm run build
  5. 启动 PocketBase 实例。
  6. MCP 服务器将自动连接到您的 PocketBase 实例。

调试方式

  1. 确保 PocketBase 实例正在运行。
  2. 检查 .env 文件中的配置是否正确。
  3. 运行 npm start 启动 MCP 服务器。
  4. 使用工具进行测试,例如: typescript await mcp.use_tool("pocketbase", "create_collection", { name: "posts", schema: [ { name: "title", type: "text", required: true }, { name: "content", type: "text", required: true } ] });
  5. 检查控制台输出以查看是否有错误消息。

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。