mcpField
P
PocketBase MCP Server

PocketBase MCP Server

本地服务
fastpocket.dev数据库1541 周前更新

关于 PocketBase MCP Server

PocketBase MCP Server 将 MCP 客户端连接到 PocketBase,执行数据库和账户操作。它提供集合与记录管理、用户工具及数据库备份,并基于 PocketBase JS-SDK 类型定义。

主要功能

  1. 01创建和查看集合
  2. 02创建、列出、更新及删除记录
  3. 03筛选和分页浏览记录
  4. 04验证身份并创建用户
  5. 05备份数据库

适用场景

  1. 01通过 MCP 客户端管理 PocketBase 架构
  2. 02通过 AI 助手执行记录增删改查
  3. 03验证用户身份并创建账户
  4. 04创建 PocketBase 数据库备份

MCP 相关

它向 MCP 客户端提供集合、记录、用户和备份操作工具。服务可在本地配置或通过 Docker 运行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"pocketbase": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
启动命令docker run -i --rm build

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocibuild

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

PocketBase MCP 服务

这是一个仍在开发中、基于我一直在测试和完善的 Dynamics MCP 服务构建的 MCP 服务。它提供了与 PocketBase 数据库交互的高级工具。此服务可通过 Model Context Protocol (MCP) 执行高级数据库操作、架构管理和数据处理。

这是我使用它的视频:https://www.youtube.com/watch?v=ZuTIO3I7rTM&t=345s

为什么选择它,而不是 DynamicsEndpoints?

这个服务实际上已在最新版上经过测试。目前 PocketBase 的版本是 26.1,它基于 JS-SDK 中的类型定义构建,而不是基于 Dynamics 服务中随意且错误的定义。Dynamics 服务中的许多方法甚至无法使用。

在本地设置 MCP 服务(目前唯一支持的方式)

要在本地设置 MCP 服务,你需要在 cline_mcp_settings.json 或你使用的其他配置文件(例如 claude、cursor,配置看起来相同,只需找到其存储位置)中进行配置。具体步骤如下:

  1. 找到 cline_mcp_settings.json 文件: 该文件通常位于 Cursor 用户设置目录中。例如: /Users/yourusername/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

  2. 配置服务: 在 cline_mcp_settings.json 文件的 mcpServers 对象中添加一个新条目。键应为服务的唯一名称(例如 "pocketbase-server"),值应为包含服务配置的对象。

    {
      "mcpServers": {
        "pocketbase-server": {
          "command": "node",
          "args": ["build/index.js"],
          "env": {
            "POCKETBASE_URL": "http://127.0.0.1:8090",
            "POCKETBASE_ADMIN_EMAIL": "[email protected]",
            "POCKETBASE_ADMIN_PASSWORD": "admin_password"
          },
          "disabled": false,
          "autoApprove": ["create_record", "create_collection"]
        }
      }
    }
    
    • command:启动服务的命令(通常为 node)。
    • args:传递给命令的参数数组。此处应指向 MCP 服务编译后的 JavaScript 文件(例如 build/index.js)。请确保路径正确。
    • env:包含环境变量的对象。
      • POCKETBASE_URL:PocketBase 实例的 URL。此项为_必填_。
      • POCKETBASE_ADMIN_EMAIL:PocketBase 实例的管理员邮箱(可选,但某些操作需要此项)。
      • POCKETBASE_ADMIN_PASSWORD:PocketBase 实例的管理员密码(可选,但某些操作需要此项)。
    • disabled:是否在启动时禁用服务。
    • autoApprove:要自动批准的工具列表。
    • 调整 env 对象中的值,使其与你的 PocketBase 实例设置相匹配。
  • 在 vscode 中的设置类似,找到或创建 .vscode/mcp.json 并添加
{
  "inputs": [
    {
      "type": "promptString",
      "id": "pocketbase-admin-email",
      "description": "PocketBase Admin Email",
      "password": false
    },
    {
      "type": "promptString",
      "id": "pocketbase-admin-password",
      "description": "PocketBase Admin Password",
      "password": true
    }
  ],
  "servers": {
    "pocketbaseServer": {
      "type": "stdio",
      "command": "node",
      // replace this with the path to your compiled MCP server (git clone the repo and run `npm run build` to compile)
      "args": ["~/Desktop/code/mcp/pocketbase-mcp/build/index.js"],
      "env": {
        "POCKETBASE_URL": "http://127.0.0.1:8090",
        "POCKETBASE_ADMIN_EMAIL": "${input:pocketbase-admin-email}",
        "POCKETBASE_ADMIN_PASSWORD": "${input:pocketbase-admin-password}"
      }
    }
  }
}
  1. 启动服务: 配置 cline_mcp_settings.json 文件后,你就可以开始使用配置好的工具来调用 MCP 服务。

使用 Docker 设置 MCP 服务

你可以使用 Docker 运行 PocketBase MCP 服务。仓库中包含一个 Dockerfile。

构建 Docker 镜像
# Build the Docker image
docker build -t pocketbase-mcp .
运行 Docker 容器
# Run the container with environment variables
docker run -d \
  --name pocketbase-mcp \
  -e POCKETBASE_URL=http://127.0.0.1:8090 \
  -e [email protected] \
  -e POCKETBASE_ADMIN_PASSWORD=your_admin_password \
  pocketbase-mcp
Docker MCP 配置

要在 AI 助手(Cursor、Claude 等)中使用 Docker 化的 MCP 服务,请在 MCP 设置中进行配置:

对于 Cline/Cursor(cline_mcp_settings.json):

{
  "mcpServers": {
    "pocketbase-docker": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "POCKETBASE_URL=http://host.docker.internal:8090",
        "-e",
        "[email protected]",
        "-e",
        "POCKETBASE_ADMIN_PASSWORD=your_admin_password",
        "pocketbase-mcp"
      ],
      "disabled": false,
      "autoApprove": ["list_collections", "list_records", "get_collection"]
    }
  }
}

对于 VS Code(.vscode/mcp.json):

{
  "inputs": [
    {
      "type": "promptString",
      "id": "pocketbase-admin-email",
      "description": "PocketBase Admin Email",
      "password": false
    },
    {
      "type": "promptString",
      "id": "pocketbase-admin-password",
      "description": "PocketBase Admin Password",
      "password": true
    }
  ],
  "servers": {
    "pocketbaseDocker": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "POCKETBASE_URL=http://host.docker.internal:8090",
        "-e",
        "POCKETBASE_ADMIN_EMAIL=${input:pocketbase-admin-email}",
        "-e",
        "POCKETBASE_ADMIN_PASSWORD=${input:pocketbase-admin-password}",
        "pocketbase-mcp"
      ]
    }
  }
}
Docker 配置说明
  • -i:交互模式(stdio 通信必需)
  • --rm:容器退出时自动移除
  • host.docker.internal:在 Docker 内部访问运行于主机上的 PocketBase 时使用
  • 环境变量:将占位值替换为实际的 PocketBase 凭据
  • 网络:如果 PocketBase 也运行在 Docker 中,请使用 Docker 网络(例如,--network host 或自定义桥接网络)
Docker Compose(可选)

创建 docker-compose.yml,以便更轻松地进行管理:

version: "3.8"

services:
  pocketbase-mcp:
    build: .
    environment:
      - POCKETBASE_URL=http://host.docker.internal:8090
      - [email protected]
      - POCKETBASE_ADMIN_PASSWORD=your_admin_password
    stdin_open: true
    tty: true

然后将 MCP 设置配置为使用:

{
  "mcpServers": {
    "pocketbase-docker": {
      "command": "docker-compose",
      "args": ["run", "--rm", "pocketbase-mcp"],
      "disabled": false
    }
  }
}

功能

集合管理
  • 创建和管理具有自定义架构的集合
  • 获取集合架构和元数据
记录操作
  • 记录的 CRUD 操作
  • 支持展开关联关系
  • 分页和基于游标的导航
用户管理
  • 用户身份验证和令牌管理
  • 用户账户创建和管理
  • 密码管理
数据库操作
  • 数据库备份

可用工具

集合管理
  • create_collection:使用自定义架构创建新集合
  • get_collection:获取集合的架构详情
记录操作
  • create_record:在集合中创建新记录
  • list_records:列出记录,可选使用筛选条件和分页
  • update_record:更新现有记录
  • delete_record:删除记录
用户管理
  • authenticate_user:验证用户身份并获取身份验证令牌
  • create_user:创建新用户账户
数据库操作
  • backup_database:根据格式选项创建 PocketBase 数据库的备份

配置

服务需要以下环境变量:

可选环境变量:

  • POCKETBASE_ADMIN_EMAIL:某些操作所需的管理员电子邮件地址
  • POCKETBASE_ADMIN_PASSWORD:管理员密码
  • POCKETBASE_DATA_DIR:自定义数据目录路径

使用示例

// 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,
    },
  ],
});

// Authenticate with password
await mcp.use_tool("pocketbase", "authenticate_user", {
  email: "[email protected]",
  password: "securepassword",
  collection: "users",
});

贡献

  1. Fork 此仓库
  2. 创建功能分支
  3. 提交更改
  4. 推送到该分支
  5. 创建 Pull Request

赞助商

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。