MCP PocketBase
英语 | 中文
______________________________________________________________________
PocketBase的模型上下文协议(MCP)服务器,使AI助手能够通过标准化工具与PocketBase数据库进行交互。
特性
- 🔍 收藏发现:列出并浏览PocketBase数据库中的所有收藏
- 📋 架构检查:获取任何集合的详细架构信息
- 🔐 权限管理:轻松管理集合的API访问规则
- 🔧 管理员和访客模式:支持经过身份验证的管理员和访客访问模式
- 🚀 MCP标准:基于模型上下文协议构建,实现无缝的人工智能集成
可用工具
| 工具 | 描述 | 需要授权 |
|---|---|---|
ping | 健康检查端点 | 否 |
list_collections | 列出所有具有分页和筛选功能的集合 | 是 |
get_collection | 获取特定集合的详细架构 | 是 |
unlock_collection_permissions | 删除所有API权限规则(公开) | 是 |
set_collection_permissions | 在所有API中设置统一的权限规则 | 是 |
安装
先决条件
- Node.js 18+或Bun
- pnpm(推荐)或npm
- 正在运行的PocketBase实例
设置
- 克隆存储库
git clone
cd mcp-pocketbase- 安装依赖项
pnpm install- 配置环境变量
cp .env.example .env编辑 .env 并配置:
# PocketBase server URL (required)
POCKETBASE_URL=http://127.0.0.1:8090
# Admin credentials (required for admin mode)
POCKETBASE_ADMIN_EMAIL=admin@example.com
POCKETBASE_ADMIN_PASSWORD=your_password> 备注:如果不提供管理员凭据,服务器将以访客模式运行,功能有限。
用法
发展模式
在热重载的开发模式下运行服务器:
pnpm build
pnpm debug这将启动MCP检查器,允许您以交互方式测试工具。
生产模式
- 构建项目
pnpm build- 运行服务器
node build/index.js独立可执行文件
使用Bun构建一个独立的可执行文件:
pnpm bundle这创建了一个 mcp-pb 无需Node.js即可分发的可执行文件。
与MCP客户端集成
添加到您的MCP客户端配置中(例如,Claude Desktop):
{
"mcpServers": {
"pocketbase": {
"command": "node",
"args": ["/absolute/path/to/mcp-pocketbase/build/index.js"],
"env": {
"POCKETBASE_URL": "http://127.0.0.1:8090",
"POCKETBASE_ADMIN_EMAIL": "admin@example.com",
"POCKETBASE_ADMIN_PASSWORD": "your_password"
}
}
}
}或者使用独立的可执行文件:
{
"mcpServers": {
"pocketbase": {
"command": "/absolute/path/to/mcp-pocketbase/mcp-pb",
"env": {
"POCKETBASE_URL": "http://127.0.0.1:8090",
"POCKETBASE_ADMIN_EMAIL": "admin@example.com",
"POCKETBASE_ADMIN_PASSWORD": "your_password"
}
}
}
}发展
项目结构
mcp-pocketbase/
├── src/
│ ├── index.ts # Main MCP server and tool definitions
│ └── pocketbase.ts # PocketBase client initialization and auth
├── build/ # Compiled JavaScript output
├── scripts/ # Build and utility scripts
├── .env.example # Environment variable template
├── manifest.json # MCP server manifest
├── package.json # Project dependencies and scripts
└── tsconfig.json # TypeScript configuration可用脚本
| 脚本 | 描述 |
|---|---|
pnpm build | 将TypeScript编译为JavaScript |
pnpm bundle | 使用Bun创建独立的可执行文件 |
pnpm debug | 与MCP检查员一起运行进行测试 |
pnpm format | 使用Prettier格式化代码 |
pnpm commit | 与Commitizen互动提交 |
代码质量
本项目使用:
- TypeScript 用于类型安全
- 更漂亮 用于代码格式化
- 哈士奇 用于git挂钩
- 委员 对于常规承诺
- 皮棉上演 用于预提交检查
添加新工具
- 在中定义您的工具
src/index.ts:
server.tool(
'tool_name',
'Tool description',
{
param1: z.string().describe('Parameter description')
},
async ({param1}) => {
// Tool implementation
return {
content: [{type: 'text', text: 'Result'}]
};
}
);- 重建和测试:
pnpm build
pnpm debug身份验证模式
管理模式(完全访问)
设置两者 POCKETBASE_ADMIN_EMAIL 和 POCKETBASE_ADMIN_PASSWORD 启用所有工具。
访客模式(限制访问)
省略管理员凭据。只有不需要身份验证的工具才能工作。
故障排除
连接问题
- 验证
POCKETBASE_URL正确,PocketBase正在运行 - 如果使用远程PocketBase实例,请检查防火墙设置
身份验证失败
- 验证管理员凭据是否正确
- 确保PocketBase中存在管理员帐户
- 检查PocketBase日志中的身份验证错误
工具错误
- 启用调试日志记录:
DEBUG=mcp* node build/index.js - 查看PocketBase API文档以了解收集/权限要求
许可证
国际学生委员会
