PocketBase MCP 服务器
一个基于 Dynamics 的 MCP 服务器,目前正在进行测试和改进。它提供了与 PocketBase 数据库交互的复杂工具。该服务器通过模型上下文协议 (MCP) 支持高级数据库操作、模式管理和数据操作。
为什么是这个而不是 DynamicsEndpoints?
这实际上已经在最新版本上测试过了。目前是 PocketBase 26.1 版本,它基于 JS-SDK 中的类型定义构建,而不是 Dynamics 中那些随意且错误的定义。很多方法甚至都无法正常工作。
本地设置 MCP 服务器(目前唯一支持的方式)
要在本地设置 MCP 服务器,您需要在cline_mcp_settings.json
或您使用的任何文件(claude、cursor 等,配置看起来完全一样,您只需找到它的存储位置)中进行配置。操作方法如下:
- **找到你的
cline_mcp_settings.json
文件:**此文件通常位于你的 Cursor 用户设置目录中。例如: /Users/yourusername/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- **配置服务器:**在
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": "admin@example.com",
"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 实例的设置。
- **启动服务器:**配置
cline_mcp_settings.json
文件后,您可以开始使用已配置的工具来使用 MCP 服务器。
特征
收藏管理
记录操作
- 记录的 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: "user@example.com",
password: "securepassword",
collection: "users"
});
贡献
- 分叉存储库
- 创建功能分支
- 提交你的更改
- 推送到分支
- 创建拉取请求