PocketBase MCP Server 使用说明

项目简介

PocketBase MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,专为 PocketBase 数据库设计。它通过 MCP 协议向 LLM 客户端提供了一系列工具,使得 LLM 应用能够以标准化和安全的方式与 PocketBase 数据库进行交互,执行数据查询、管理和操作等任务。

主要功能点

  • 集合管理: 创建、管理和迁移 PocketBase 数据库中的集合(collections),包括自定义 Schema、索引管理等。
  • 记录操作: 对集合中的记录进行 CRUD 操作(创建、读取、更新、删除),支持高级查询、过滤、排序、聚合、批量导入导出等。
  • 用户管理: 提供用户认证、账户创建和管理、密码管理、角色控制和会话处理等用户管理功能。
  • 数据库操作: 支持数据库备份和恢复、多种数据导出格式、数据迁移和索引优化等数据库维护功能。
  • 工具集: 内置丰富的工具,涵盖集合、记录、用户和数据库的各种操作,方便 LLM 应用调用。
  • 类型安全: 使用 TypeScript 开发,提供完善的类型定义,确保工具调用的类型安全。
  • 错误处理: 提供全面的错误处理机制,返回详细的错误信息,方便调试和问题排查。

安装步骤

  1. 克隆仓库

    git clone https://github.com/DynamicEndpoints/pocketbase-mcp-server.git
    cd pocketbase-mcp-server
  2. 安装依赖

    npm install
  3. 配置环境变量 复制 '.env.example' 文件并重命名为 '.env',根据你的 PocketBase 实例配置以下环境变量:

    • 'POCKETBASE_URL': 你的 PocketBase 实例的 URL 地址,例如 'http://127.0.0.1:8090'。
    • 'POCKETBASE_ADMIN_EMAIL' (可选): PocketBase 管理员邮箱,用于某些管理操作。
    • 'POCKETBASE_ADMIN_PASSWORD' (可选): PocketBase 管理员密码。
    • 'POCKETBASE_DATA_DIR' (可选): 自定义数据目录路径。
  4. 构建项目

    npm run build
  5. 启动 PocketBase 实例 确保你的 PocketBase 服务已经启动并运行。

  6. 启动 MCP 服务器

    npm start

    或者使用 'node dist/index.js' 命令启动。 服务器默认通过标准输入/输出 (stdio) 与 MCP 客户端通信。

服务器配置 (MCP 客户端配置)

MCP 客户端需要配置以下 JSON 信息以连接到 PocketBase MCP Server:

{
  "serverName": "pocketbase",
  "command": "pocketbase-mcp-server",
  "args": [],
  "transport": "stdio"
}

配置参数说明:

  • 'serverName': 服务器名称,可以自定义,例如 "pocketbase"。
  • 'command': 启动 MCP 服务器的命令。 如果 'pocketbase-mcp-server' 命令在您的 PATH 环境变量中,则可以直接使用。否则,需要使用 'node dist/index.js' 或者指定 'npm start' 命令,并确保在项目根目录下执行。
  • 'args': 启动命令的参数,本服务器无需额外参数,故为空数组 '[]'。
  • 'transport': 传输协议,本服务器使用标准输入/输出,配置为 '"stdio"'。

基本使用方法

  1. 建立 MCP 连接: 在 LLM 客户端中使用 MCP SDK 建立与 PocketBase MCP Server 的连接。客户端需要加载上面提供的服务器配置信息。

  2. 列出可用工具: 使用 'mcp.list_tools()' 获取服务器提供的工具列表,了解每个工具的功能和参数。

  3. 调用工具: 使用 'mcp.use_tool(serverName, toolName, arguments)' 调用具体的工具,例如:

    // 示例:创建新的集合
    await mcp.use_tool("pocketbase", "create_collection", {
      name: "posts",
      schema: [
        { name: "title", type: "text", required: true },
        { name: "content", type: "text", required: true }
      ]
    });
    
    // 示例:查询记录
    await mcp.use_tool("pocketbase", "list_records", {
      collection: "posts",
      filter: "created >= '2024-01-01'"
    });

    请参考仓库 README.md 文件中的 "Usage Examples" 部分,了解更多工具的使用方法和示例。

注意事项

  • 确保 PocketBase 服务已正确安装和启动。
  • 配置正确的 'POCKETBASE_URL' 环境变量,指向你的 PocketBase 实例。
  • 仔细阅读每个工具的 'description' 和 'inputSchema',了解其功能和参数要求。
  • 妥善处理工具调用返回的结果和错误信息。

信息

分类

数据库与文件