PocketBase数据库AI交互服务

一个基于模型上下文协议(MCP)的PocketBase服务器,使AI助手能够通过标准化工具与PocketBase数据库交互。

  • by SmilingXinyi
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 SmilingXinyi/mcp-pocketbase

使用说明

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实例

设置

  1. 克隆存储库

    git clone <repository-url>
    cd mcp-pocketbase
    
  2. 安装依赖项

    pnpm install
    
  3. 配置环境变量

    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检查器,允许您以交互方式测试工具。

生产模式

  1. 构建项目

    pnpm build
    
  2. 运行服务器

    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挂钩
  • 委员 对于常规承诺
  • 皮棉上演 用于预提交检查

添加新工具

  1. 在中定义您的工具 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'}]
            };
        }
    );
    
  2. 重建和测试:

    pnpm build
    pnpm debug
    

身份验证模式

管理模式(完全访问)

设置两者 POCKETBASE_ADMIN_EMAIL 和 POCKETBASE_ADMIN_PASSWORD 启用所有工具。

访客模式(限制访问)

省略管理员凭据。只有不需要身份验证的工具才能工作。

故障排除

连接问题

  • 验证 POCKETBASE_URL 正确,PocketBase正在运行
  • 如果使用远程PocketBase实例,请检查防火墙设置

身份验证失败

  • 验证管理员凭据是否正确
  • 确保PocketBase中存在管理员帐户
  • 检查PocketBase日志中的身份验证错误

工具错误

  • 启用调试日志记录: DEBUG=mcp* node build/index.js
  • 查看PocketBase API文档以了解收集/权限要求

许可证

国际学生委员会