
Advanced PocketBase MCP Server
一个全面的 MCP 服务器,提供复杂的工具来与 PocketBase 数据库交互。该服务器通过模型上下文协议 (MCP) 实现高级数据库操作、模式管理和数据操作。
Tools
create_collection
Create a new collection in PocketBase
query_collection
Advanced query with filtering, sorting, and aggregation
create_record
Create a new record in a collection
list_records
List records from a collection with optional filters
update_record
Update an existing record
delete_record
Delete a record
authenticate_user
Authenticate a user and get auth token
create_user
Create a new user account
get_collection_schema
Get schema details for a collection
backup_database
Create a backup of the PocketBase database
import_data
Import data into a collection
migrate_collection
Migrate collection schema with data preservation
manage_indexes
Manage collection indexes
README
高级 PocketBase MCP 服务器
一个全面的 MCP 服务器,提供用于与 PocketBase 数据库交互的复杂工具。该服务器通过模型上下文协议 (MCP) 实现高级数据库操作、模式管理和数据操作。
<a href="https://glama.ai/mcp/servers/z2xjuegxxh"><img width="380" height="200" src="https://glama.ai/mcp/servers/z2xjuegxxh/badge" alt="pocketbase-mcp-server MCP server" /></a>
更新日志
v2.1.0 (2025 年 4 月 3 日)
新增
- 添加了
batch_update_records
工具,用于一次更新多个记录。 - 添加了
batch_delete_records
工具,用于一次删除多个记录。 - 添加了
subscribe_to_collection
工具,用于实时事件订阅(需要eventsource
polyfill)。
修复
- 更正了
authenticate_user
的模式,允许通过环境变量进行管理员身份验证,而无需显式电子邮件/密码。 - 添加了
eventsource
依赖项和 polyfill,以在 Node.js 中启用实时订阅。
v2.0.0 (2025 年 4 月 2 日)
新增
- 增强了对使用环境变量的管理员身份验证支持
- 添加了通过
impersonate_user
工具支持管理员模拟 - 改进了身份验证操作的错误处理
- 添加了全面的 TypeScript 类型定义,以获得更好的开发体验
- 添加了对 Cline 集成的支持
修复
- 修复了 PocketBase 客户端实现中的 TypeScript 错误
- 改进了模式字段处理,并带有正确的类型注释
- 修复了可选模式字段属性的问题
更改
- 更新了身份验证流程以支持多种身份验证方法
- 改进了文档,提供了更详细的示例
- 增强了环境变量配置选项
功能特性
集合管理
- 创建和管理具有自定义模式的集合
- 迁移集合模式并保留数据
- 高级索引管理(创建、删除、列表)
- 模式验证和类型安全
- 检索集合模式和元数据
记录操作
- 记录的 CRUD 操作
- 使用过滤、排序和聚合进行高级查询
- 批量导入/导出功能
- 关系扩展支持
- 分页和基于游标的导航
用户管理
- 用户身份验证和令牌管理
- 用户帐户创建和管理
- 密码管理
- 基于角色的访问控制
- 会话处理
数据库操作
- 数据库备份和恢复
- 多种导出格式 (JSON/CSV)
- 数据迁移工具
- 索引优化
- 批量操作
可用工具
集合管理
create_collection
: 创建具有自定义模式的新集合get_collection_schema
: 获取集合的模式详细信息migrate_collection
: 迁移集合模式并保留数据manage_indexes
: 创建、删除或列出集合索引
记录操作
create_record
: 在集合中创建新记录list_records
: 列出记录,带有可选的过滤器和分页update_record
: 更新现有记录delete_record
: 删除记录query_collection
: 使用过滤、排序和聚合进行高级查询batch_update_records
: 在单个调用中更新多个记录batch_delete_records
: 在单个调用中删除多个记录subscribe_to_collection
: 订阅集合中的实时更改(需要在运行服务器的 Node.js 环境中安装eventsource
包)import_data
: 将数据导入集合,具有创建/更新/插入模式
用户管理
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
: 使用各种模式(创建/更新/插入)导入数据
配置
服务器需要以下环境变量:
POCKETBASE_URL
: 您的 PocketBase 实例的 URL(例如,“http://127.0.0.1:8090”)
可选环境变量:
POCKETBASE_ADMIN_EMAIL
: 用于某些操作的管理员电子邮件POCKETBASE_ADMIN_PASSWORD
: 管理员密码POCKETBASE_DATA_DIR
: 自定义数据目录路径
使用示例
集合管理
// 创建一个新集合
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", "manage_indexes", {
collection: "posts",
action: "create",
index: {
name: "title_idx",
fields: ["title"],
unique: true
}
});
高级查询
// 使用过滤、排序和聚合进行查询
await mcp.use_tool("pocketbase", "query_collection", {
collection: "posts",
filter: "created >= '2024-01-01'",
sort: "-created",
aggregate: {
totalLikes: "sum(likes)",
avgRating: "avg(rating)"
},
expand: "author,categories"
});
数据导入/导出
// 使用插入模式导入数据
await mcp.use_tool("pocketbase", "import_data", {
collection: "posts",
data: [
{
title: "First Post",
content: "Hello World"
},
{
title: "Second Post",
content: "More content"
}
],
mode: "upsert"
});
// 备份数据库
await mcp.use_tool("pocketbase", "backup_database", {
format: "json" // or "csv"
});
模式迁移
// 迁移集合模式
await mcp.use_tool("pocketbase", "migrate_collection", {
collection: "posts",
newSchema: [
{
name: "title",
type: "text",
required: true
},
{
name: "content",
type: "text",
required: true
},
{
name: "tags",
type: "json",
required: false
}
],
dataTransforms: {
// 迁移期间的可选字段转换
tags: "JSON.parse(oldTags)"
}
});
批量和实时操作
// 批量更新记录
await mcp.use_tool("pocketbase", "batch_update_records", {
collection: "products",
records: [
{ id: "record_id_1", data: { price: 19.99 } },
{ id: "record_id_2", data: { status: "published" } }
]
});
// 批量删除记录
await mcp.use_tool("pocketbase", "batch_delete_records", {
collection: "products",
recordIds: ["record_id_3", "record_id_4"]
});
// 订阅集合更改(将事件记录到服务器控制台)
// 注意:需要在运行服务器的 Node.js 环境中安装 'eventsource' 包。
await mcp.use_tool("pocketbase", "subscribe_to_collection", {
collection: "products"
});
// 订阅特定记录
await mcp.use_tool("pocketbase", "subscribe_to_collection", {
collection: "products",
recordId: "specific_product_id"
});
身份验证方法
// 列出可用的身份验证方法
await mcp.use_tool("pocketbase", "list_auth_methods", {
collection: "users"
});
// 使用密码进行身份验证
await mcp.use_tool("pocketbase", "authenticate_user", {
email: "user@example.com",
password: "securepassword",
collection: "users"
});
// 使用 OAuth2 进行身份验证
await mcp.use_tool("pocketbase", "authenticate_with_oauth2", {
provider: "google",
code: "auth_code_from_provider",
codeVerifier: "code_verifier_from_pkce",
redirectUrl: "https://your-app.com/auth/callback",
collection: "users"
});
// 请求密码重置
await mcp.use_tool("pocketbase", "request_password_reset", {
email: "user@example.com",
collection: "users"
});
// 确认密码重置
await mcp.use_tool("pocketbase", "confirm_password_reset", {
token: "verification_token",
password: "new_password",
passwordConfirm: "new_password",
collection: "users"
});
// 刷新身份验证令牌
await mcp.use_tool("pocketbase", "auth_refresh", {
collection: "users"
});
错误处理
所有工具都包含全面的错误处理,并提供详细的错误消息。错误已正确键入,包括:
- 无效的请求错误
- 身份验证错误
- 数据库操作错误
- 模式验证错误
- 网络错误
类型安全
服务器包含所有操作的 TypeScript 定义,确保在使用工具时的类型安全。每个工具的输入模式都经过严格的类型化和验证。
最佳实践
- 始终使用 try/catch 块进行适当的错误处理
- 在执行操作之前验证数据
- 使用适当的索引以获得更好的查询性能
- 定期备份数据库
- 使用迁移进行模式更改
- 遵循用户管理的安全最佳实践
- 监控和优化数据库性能
开发
- 克隆存储库
- 安装依赖项:
npm install
- 将
.env.example
复制到.env
并进行配置 - 构建:
npm run build
- 启动您的 PocketBase 实例
- MCP 服务器将自动连接到您的 PocketBase 实例
通过 Smithery 安装
要通过 Smithery 为 Claude Desktop 自动安装 PocketBase Server:
npx -y @smithery/cli install pocketbase-server --client claude
贡献
- Fork 存储库
- 创建一个功能分支
- 提交您的更改
- 推送到分支
- 创建一个 Pull Request
推荐服务器

Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。