
Advanced PocketBase MCP Server

2025.04.04
0
JavaScript数据库管理数据操作用户认证数据库
Advanced PocketBase MCP Server 是一个基于 Model Context Protocol (MCP) 的高级 PocketBase 数据库交互服务。它提供了丰富的工具集,用于管理集合、执行记录操作、用户管理以及数据库维护等高级功能。该服务支持类型安全、错误处理和最佳实践,适用于需要与 PocketBase 数据库进行复杂交互的场景。
View on GitHub
Overview
基本能力
产品定位
Advanced PocketBase MCP Server 是一个专门为 PocketBase 数据库设计的高级交互服务,通过 MCP 协议提供全面的数据库管理功能。
核心功能
- 集合管理
- 创建和管理带有自定义模式的集合
- 迁移集合模式并保留数据
- 高级索引管理(创建、删除、列出)
- 模式验证和类型安全
-
检索集合模式和元数据
-
记录操作
- 记录的 CRUD 操作
- 带有过滤、排序和聚合的高级查询
- 批量导入/导出功能
- 关系扩展支持
-
分页和基于游标的导航
-
用户管理
- 用户认证和令牌管理
- 用户账户创建和管理
- 密码管理
- 基于角色的访问控制
-
会话处理
-
数据库操作
- 数据库备份和恢复
- 多种导出格式(JSON/CSV)
- 数据迁移工具
- 索引优化
- 批量操作
适用场景
- 需要与 PocketBase 数据库进行复杂交互的应用程序
- 需要高级数据库管理功能的开发项目
- 需要自动化数据库操作的工作流程
- 需要严格类型安全和错误处理的数据库应用
工具列表
- 集合管理工具
create_collection
: 创建带有自定义模式的新集合get_collection_schema
: 获取集合的模式详情migrate_collection
: 迁移集合模式并保留数据-
manage_indexes
: 创建、删除或列出集合索引 -
记录操作工具
create_record
: 在集合中创建新记录list_records
: 列出带有可选过滤和分页的记录update_record
: 更新现有记录delete_record
: 删除记录query_collection
: 带有过滤、排序和聚合的高级查询-
import_data
: 以创建/更新/upsert 模式将数据导入集合 -
用户管理工具
authenticate_user
: 认证用户并获取认证令牌create_user
: 创建新用户账户list_auth_methods
: 列出所有可用的认证方法authenticate_with_oauth2
: 使用 OAuth2 认证用户authenticate_with_otp
: 使用一次性密码认证用户auth_refresh
: 刷新认证令牌request_verification
: 请求电子邮件验证confirm_verification
: 使用令牌确认电子邮件验证request_password_reset
: 请求密码重置confirm_password_reset
: 使用令牌确认密码重置request_email_change
: 请求电子邮件更改confirm_email_change
: 使用令牌确认电子邮件更改-
impersonate_user
: 模拟其他用户(仅限管理员) -
数据库操作工具
backup_database
: 创建 PocketBase 数据库的备份,支持多种格式import_data
: 以多种模式(创建/更新/upsert)导入数据
常见问题解答
- 所有工具都包含全面的错误处理,带有详细的错误消息
- 错误类型包括:无效请求错误、认证错误、数据库操作错误、模式验证错误和网络错误
- 服务包含所有操作的 TypeScript 定义,确保使用工具时的类型安全
使用教程
使用依赖
- 需要安装 Node.js 环境
- 需要运行 PocketBase 实例
安装教程
- 克隆仓库
- 安装依赖:
npm install
- 复制
.env.example
到.env
并进行配置 - 构建:
npm run build
- 启动你的 PocketBase 实例
- MCP 服务器将自动连接到你的 PocketBase 实例
或者通过 Smithery 安装:
npx -y @smithery/cli install pocketbase-server --client claude
调试方式
- 确保 PocketBase 实例正在运行
- 检查环境变量配置是否正确
- 使用 TypeScript 定义确保类型安全
- 使用 try/catch 块进行错误处理
- 验证数据后再执行操作