mcpField
P
Pocketbase

Pocketbase

远程服务
github.com/tokenscompany数据库435 周前更新
代码仓库

关于 Pocketbase

Pocketbase 是通过 HTTP 将 MCP 客户端连接到 PocketBase 实例的无状态远程 MCP 服务。它提供管理集合、记录、备份、文件、设置和日志的工具,可托管或自行部署。

主要功能

  1. 01管理集合架构
  2. 02搜索和修改记录
  3. 03创建和管理备份
  4. 04访问文件、设置和日志
  5. 05无状态 HTTP 请求

适用场景

  1. 01检查或更改 PocketBase 集合
  2. 02搜索并更新应用记录
  3. 03创建或删除数据库备份
  4. 04将 MCP 客户端连接到 PocketBase

MCP 相关

该服务将 PocketBase 操作提供为 MCP 工具,并将集合架构作为资源提供。它使用无状态 streamable HTTP,需要实例 URL 和身份验证标头。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://pocketbase.tokenscompany.co/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://pocketbase.tokenscompany.co/mcp需要授权

工具

19

此工具无需参数。

详细介绍

pocketbase-mcp

License: MIT CI Docker

远程 MCP 服务,通过无状态 HTTP 将任意 MCP 客户端连接到 PocketBase 实例。

快速开始

使用托管实例 https://pocketbase.tokenscompany.co/mcp,或自行托管。

使用 AI Agent 安装

将此提示词复制并粘贴到 AI Agent(Claude Code、Cursor、Windsurf 等)中:

Install the PocketBase MCP server. The MCP endpoint is https://pocketbase.tokenscompany.co/mcp and the transport type is http (NOT sse). It requires X-PB-URL set to my PocketBase instance URL and either X-PB-Email + X-PB-Password (superuser credentials) or X-PB-Token (superuser auth token). Add it to my project MCP config with type "http". Then fetch https://raw.githubusercontent.com/tokenscompany/pocketbase-mcp/main/SKILL.md and save it to my project's agent instructions so you always know how to use the PocketBase tools.
Claude Code
claude mcp add --transport http pocketbase https://pocketbase.tokenscompany.co/mcp \
  --header "X-PB-URL: https://your-pocketbase.example.com" \
  --header "X-PB-Email: [email protected]" \
  --header "X-PB-Password: your-password"

或添加到项目根目录下的 .mcp.json:

{
  "mcpServers": {
    "pocketbase": {
      "type": "http",
      "url": "https://pocketbase.tokenscompany.co/mcp",
      "headers": {
        "X-PB-URL": "${PB_URL}",
        "X-PB-Email": "${PB_EMAIL}",
        "X-PB-Password": "${PB_PASSWORD}"
      }
    }
  }
}

Claude Code 会从环境中展开 ${VAR},因此请在 Shell 或 .env 中设置 PB_URL、PB_EMAIL 和 PB_PASSWORD。

Cursor

添加到 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "pocketbase": {
      "url": "https://pocketbase.tokenscompany.co/mcp",
      "headers": {
        "X-PB-URL": "https://your-pocketbase.example.com",
        "X-PB-Email": "[email protected]",
        "X-PB-Password": "your-password"
      }
    }
  }
}
OpenCode

添加到项目根目录下的 opencode.json:

{
  "mcp": {
    "pocketbase": {
      "type": "remote",
      "url": "https://pocketbase.tokenscompany.co/mcp",
      "headers": {
        "X-PB-URL": "https://your-pocketbase.example.com",
        "X-PB-Email": "[email protected]",
        "X-PB-Password": "your-password"
      },
      "enabled": true
    }
  }
}

自行托管

Bun
bun install
bun run src/index.ts

服务会监听 PORT(默认值为 3000)。

Docker(GHCR)
docker pull ghcr.io/tokenscompany/pocketbase-mcp:latest
docker run -p 3000:3000 ghcr.io/tokenscompany/pocketbase-mcp:latest

或在本地构建:

docker build -t pocketbase-mcp .
docker run -p 3000:3000 pocketbase-mcp
验证镜像

每个发布到 GHCR 的镜像都包含 SLSA 来源证明。你可以验证镜像是否基于此仓库构建:

gh attestation verify oci://ghcr.io/tokenscompany/pocketbase-mcp:latest \
  --owner tokenscompany

身份验证

每个发往 POST /mcp 的请求都必须包含 X-PB-URL 和以下两种身份验证方式之一:

选项 1:电子邮件 + 密码(推荐)
Header描述
X-PB-URLPocketBase 实例的基本 URL
X-PB-Email超级用户电子邮件
X-PB-Password超级用户密码

服务会在每次请求时向 PocketBase 进行身份验证。无需手动管理令牌。

选项 2:令牌
Header描述
X-PB-URLPocketBase 实例的基本 URL
X-PB-Token超级用户身份验证令牌

手动获取令牌:

curl -X POST https://your-pb.example.com/api/admins/auth-with-password \
  -H 'Content-Type: application/json' \
  -d '{"identity":"[email protected]","password":"your-password"}'

响应中的 token 字段就是你的 X-PB-Token。如果同时提供令牌和电子邮件 + 密码,则优先使用令牌。

工具

工具描述
pb_healthPocketBase 健康检查
pb_list_collections列出所有集合及其完整字段架构
pb_get_collection_schema获取单个集合的完整架构
pb_create_collection创建新集合
pb_update_collection更新集合架构或规则
pb_delete_collection删除集合
pb_import_collections批量导入/覆盖集合架构
pb_list_records列出/搜索集合中的记录
pb_get_record按 ID 获取单条记录
pb_create_record创建新记录
pb_update_record更新现有记录
pb_delete_record按 ID 删除记录
pb_list_backups列出可用备份
pb_create_backup创建新备份
pb_delete_backup按键删除备份
pb_get_file_url获取文件字段的下载 URL
pb_get_settings获取应用设置
pb_update_settings更新应用设置
pb_list_logs查询请求日志

资源

资源URI描述
schemapocketbase://schema所有集合架构的 JSON

安全与隐私

此服务完全无状态——不会存储、记录或保留你的任何数据:

  • 不使用数据库,不写入磁盘——每个请求都会在内存中创建一个全新的 MCP 服务和传输层,处理请求后丢弃所有内容。不会向磁盘写入任何内容。
  • 不存储凭据——你的 X-PB-URL、X-PB-Token、X-PB-Email 和 X-PB-Password 标头仅在处理请求期间使用,不会持久化、缓存或记录。
  • 无遥测或分析——服务不会收集任何使用数据,也不会联系任何第三方服务。
  • 无会话——没有 Cookie、会话 ID,也不会在请求之间保留任何服务端状态。
  • 开源——整个代码库均采用 MIT 许可证。每个 Docker 镜像都包含 SLSA 溯源证明,因此你可以验证它是直接从此代码库构建且未经修改的。
  • 自行托管——如需最大程度的控制权,可运行自己的实例。该服务仅由一个容器构成,除你的 PocketBase 实例外没有任何外部依赖。
安全加固

托管公开实例时,服务还包含以下额外措施:

  • SSRF 防护——会验证 X-PB-URL:仅允许 http/https 协议,并拒绝解析到私有/保留 IP 范围(127.0.0.0/8、10.0.0.0/8、172.16.0.0/12、192.168.0.0/16、169.254.0.0/16、::1、fc00::/7、fe80::/10)的主机名。

  • 速率限制——按 IP 地址实施基于内存的令牌桶限流。可通过环境变量进行配置:

    变量默认值说明
    RATE_LIMIT_RPM60每个 IP 每分钟的请求数
    RATE_LIMIT_BURST10最大突发请求数
  • CORS——Access-Control-Allow-Origin: *,并在 /mcp 上支持预检请求。

  • 请求体大小限制——大于 1 MB 的请求将被拒绝,并返回 413。

端点

方法路径说明
POST/mcpMCP 端点(无状态,返回 JSON)
GET/health健康检查

故障排除

“Failed to reconnect” 错误

你的 MCP 客户端配置可能使用了 "type": "sse"。此服务使用无状态的可流式 HTTP,而非服务器发送事件。请将传输类型改为 "http":

{
  "mcpServers": {
    "pocketbase": {
      "type": "http",
      ...
    }
  }
}

对于 Claude Code CLI,添加时使用 --transport http:

claude mcp add --transport http pocketbase https://pocketbase.tokenscompany.co/mcp ...

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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