使用说明
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 <repository-url> 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文档以了解收集/权限要求
许可证
国际学生委员会