PocketBase MCP Server 使用说明
项目简介
PocketBase MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,专为 PocketBase 数据库设计。它通过 MCP 协议向 LLM 客户端提供了一系列工具,使得 LLM 应用能够以标准化和安全的方式与 PocketBase 数据库进行交互,执行数据查询、管理和操作等任务。
主要功能点
- 集合管理: 创建、管理和迁移 PocketBase 数据库中的集合(collections),包括自定义 Schema、索引管理等。
- 记录操作: 对集合中的记录进行 CRUD 操作(创建、读取、更新、删除),支持高级查询、过滤、排序、聚合、批量导入导出等。
- 用户管理: 提供用户认证、账户创建和管理、密码管理、角色控制和会话处理等用户管理功能。
- 数据库操作: 支持数据库备份和恢复、多种数据导出格式、数据迁移和索引优化等数据库维护功能。
- 工具集: 内置丰富的工具,涵盖集合、记录、用户和数据库的各种操作,方便 LLM 应用调用。
- 类型安全: 使用 TypeScript 开发,提供完善的类型定义,确保工具调用的类型安全。
- 错误处理: 提供全面的错误处理机制,返回详细的错误信息,方便调试和问题排查。
安装步骤
-
克隆仓库
git clone https://github.com/DynamicEndpoints/pocketbase-mcp-server.git cd pocketbase-mcp-server -
安装依赖
npm install -
配置环境变量 复制 '.env.example' 文件并重命名为 '.env',根据你的 PocketBase 实例配置以下环境变量:
- 'POCKETBASE_URL': 你的 PocketBase 实例的 URL 地址,例如 'http://127.0.0.1:8090'。
- 'POCKETBASE_ADMIN_EMAIL' (可选): PocketBase 管理员邮箱,用于某些管理操作。
- 'POCKETBASE_ADMIN_PASSWORD' (可选): PocketBase 管理员密码。
- 'POCKETBASE_DATA_DIR' (可选): 自定义数据目录路径。
-
构建项目
npm run build -
启动 PocketBase 实例 确保你的 PocketBase 服务已经启动并运行。
-
启动 MCP 服务器
npm start或者使用 'node dist/index.js' 命令启动。 服务器默认通过标准输入/输出 (stdio) 与 MCP 客户端通信。
服务器配置 (MCP 客户端配置)
MCP 客户端需要配置以下 JSON 信息以连接到 PocketBase MCP Server:
{ "serverName": "pocketbase", "command": "pocketbase-mcp-server", "args": [], "transport": "stdio" }
配置参数说明:
- 'serverName': 服务器名称,可以自定义,例如 "pocketbase"。
- 'command': 启动 MCP 服务器的命令。 如果 'pocketbase-mcp-server' 命令在您的 PATH 环境变量中,则可以直接使用。否则,需要使用 'node dist/index.js' 或者指定 'npm start' 命令,并确保在项目根目录下执行。
- 'args': 启动命令的参数,本服务器无需额外参数,故为空数组 '[]'。
- 'transport': 传输协议,本服务器使用标准输入/输出,配置为 '"stdio"'。
基本使用方法
-
建立 MCP 连接: 在 LLM 客户端中使用 MCP SDK 建立与 PocketBase MCP Server 的连接。客户端需要加载上面提供的服务器配置信息。
-
列出可用工具: 使用 'mcp.list_tools()' 获取服务器提供的工具列表,了解每个工具的功能和参数。
-
调用工具: 使用 'mcp.use_tool(serverName, toolName, arguments)' 调用具体的工具,例如:
// 示例:创建新的集合 await mcp.use_tool("pocketbase", "create_collection", { name: "posts", schema: [ { name: "title", type: "text", required: true }, { name: "content", type: "text", required: true } ] }); // 示例:查询记录 await mcp.use_tool("pocketbase", "list_records", { collection: "posts", filter: "created >= '2024-01-01'" });请参考仓库 README.md 文件中的 "Usage Examples" 部分,了解更多工具的使用方法和示例。
注意事项
- 确保 PocketBase 服务已正确安装和启动。
- 配置正确的 'POCKETBASE_URL' 环境变量,指向你的 PocketBase 实例。
- 仔细阅读每个工具的 'description' 和 'inputSchema',了解其功能和参数要求。
- 妥善处理工具调用返回的结果和错误信息。
信息
分类
数据库与文件