项目简介

PocketBase MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为 LLM (大型语言模型) 客户端提供与 PocketBase 后端数据库交互的能力。它将 PocketBase 的功能以标准化的 MCP 协议暴露出来,使得 LLM 应用可以通过工具调用来管理 PocketBase 中的数据、文件,甚至执行数据库迁移和查看日志。

主要功能点

  • 数据管理: 提供对 PocketBase 数据库记录的增删改查功能,包括:

    • 获取记录 (fetch_record): 根据ID从指定集合中检索单条记录。
    • 列出记录 (list_records): 从指定集合中列出记录,支持分页、过滤、排序和展开关联数据。
    • 创建记录 (create_record): 在指定集合中创建新记录。
    • 更新记录 (update_record): 更新指定集合中的现有记录。
    • 获取集合结构 (get_collection_schema): 获取指定集合的字段定义和规则。
    • 列出集合 (list_collections): 获取 PocketBase 实例中所有集合的列表。
  • 文件操作: 支持在 PocketBase 中上传和下载文件:

    • 上传文件 (upload_file): 将文件内容上传到指定集合记录的文件字段。
    • 下载文件 (download_file): 获取 PocketBase 中文件资源的下载 URL。
  • 日志管理: 允许查看 PocketBase 服务器的 API 请求日志(需要管理员权限):

    • 列出日志 (list_logs): 分页、过滤、排序地列出 API 请求日志。
    • 获取日志 (get_log): 根据 ID 获取单条 API 请求日志详情。
    • 获取日志统计 (get_logs_stats): 获取 API 请求日志的统计信息。
  • 数据库迁移: 提供数据库迁移管理工具,方便进行 PocketBase 数据库结构变更:

    • 设置迁移目录 (set_migrations_directory): 设置迁移文件存放目录。
    • 创建迁移 (create_migration): 创建空的迁移文件。
    • 创建集合迁移 (create_collection_migration): 创建用于创建集合的迁移文件。
    • 添加字段迁移 (add_field_migration): 创建用于添加字段的迁移文件。
    • 列出迁移 (list_migrations): 列出所有迁移文件。
    • 应用迁移 (apply_migration): 应用指定的迁移文件。
    • 回滚迁移 (revert_migration): 回滚指定的迁移文件。
    • 应用所有迁移 (apply_all_migrations): 应用所有待执行的迁移。
    • 回滚至指定迁移 (revert_to_migration): 回滚到指定的迁移版本。

安装步骤

  1. 克隆仓库:

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

    npm install
  3. 构建服务器:

    npm run build

    构建成功后,会在 'build/' 目录下生成可执行的 'index.js' 文件。

服务器配置

要将 PocketBase MCP Server 添加到 MCP 客户端(例如 Cline),您需要在客户端的 MCP 设置文件中进行配置。 以下是 Cline 客户端的配置示例 ('cline_mcp_settings.json'):

{
  "mcpServers": {
    "pocketbase-mcp": {
      "command": "node",
      "args": ["/path/to/pocketbase-mcp/build/index.js"],
      "env": {
        "POCKETBASE_API_URL": "您的PocketBase API URL",  // 例如: "http://127.0.0.1:8090"
        "POCKETBASE_ADMIN_TOKEN": "您的PocketBase管理员令牌" // 从 PocketBase 管理后台 API KEYS 页面获取
      },
      "disabled": false,
      "autoApprove": [
        "fetch_record",
        "list_collections",
        "get_collection_schema",
        "list_logs",
        "get_log",
        "get_logs_stats"
      ]
    }
  }
}

配置参数说明:

  • '"command"': 启动服务器的命令,这里使用 'node'。
  • '"args"': 命令参数,指向构建后的服务器入口文件 '/path/to/pocketbase-mcp/build/index.js',请替换为实际路径。
  • '"env"': 环境变量,用于配置服务器连接 PocketBase 实例的信息:
    • '"POCKETBASE_API_URL"': 您的 PocketBase API 地址。
    • '"POCKETBASE_ADMIN_TOKEN"': PocketBase 管理员 API 令牌,必须配置。您需要在 PocketBase 管理后台的 "API KEYS" 页面生成管理员令牌并填写。
  • '"disabled"': 设置为 'false' 启用该服务器。
  • '"autoApprove"': (可选)配置自动批准的工具列表。示例中列出了一些建议自动批准的工具,客户端将自动允许调用这些工具,无需用户手动确认。

请务必将 '/path/to/pocketbase-mcp' 替换为 'pocketbase-mcp' 仓库在您系统中的实际绝对路径,并将 '您的PocketBase API URL' 和 '您的PocketBase管理员令牌' 替换为您的 PocketBase 实例的真实信息。

基本使用方法

配置完成后,您的 MCP 客户端 (如 Cline) 应该能够检测到并连接到 PocketBase MCP Server。 您可以在客户端中使用 'pocketbase-mcp' 服务器提供的各种工具,例如在对话中使用自然语言指示客户端调用 'fetch_record' 工具来获取 PocketBase 中的数据,或使用 'create_migration' 工具来创建数据库迁移文件等。 具体的工具使用方法请参考仓库 README.md 文件中 "Available Tools" 章节的详细描述和输入参数说明。

信息

分类

数据库与文件