使用说明

项目简介

Advanced PocketBase MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 客户端提供与 PocketBase 数据库交互的强大工具集。它允许LLM通过标准化的MCP协议,安全、便捷地访问和操作PocketBase数据库中的数据,执行数据库管理任务,并进行用户认证等操作。

主要功能点

  • 集合 (Collection) 管理: 创建、读取、更新和删除数据库集合,管理集合的Schema和索引。
  • 记录 (Record) 操作: 对集合中的记录进行CRUD (创建、读取、更新、删除) 操作,支持高级查询、过滤、排序和聚合。
  • 用户 (User) 认证: 提供用户身份验证、Token管理、OAuth2和OTP认证等多种用户认证方式。
  • 数据库 (Database) 操作: 支持数据库备份、数据导入导出和Schema迁移等数据库管理功能。
  • 文件上传: 支持文件上传到PocketBase存储。
  • 灵活的查询构建: 提供工具帮助构建复杂的数据库查询条件。
  • 请求选项配置: 允许配置请求的自动取消和自定义Header。
  • 认证存储管理: 提供工具管理客户端的认证信息。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/DynamicEndpoints/advanced-pocketbase-mcp-server
    cd advanced-pocketbase-mcp-server
  2. 安装依赖:

    npm install
  3. 配置环境变量: 复制 '.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' (可选): 自定义数据目录路径。
  4. 构建项目:

    npm run build
  5. 启动 PocketBase MCP Server: 确保你的 PocketBase 实例已经运行。然后,在项目根目录下运行以下命令启动 MCP 服务器:

    npm start

    服务器将通过标准输入/输出 (stdio) 与 MCP 客户端通信。

服务器配置 (MCP 客户端配置)

MCP 客户端需要配置以下信息才能连接到 Advanced PocketBase MCP Server。以下是 JSON 格式的配置信息示例,请根据你的实际情况进行配置:

{
  "serverName": "pocketbase-server",
  "command": "node",
  "args": [ "dist/index.js" ],
  "transport": "stdio"
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,可以自定义,用于在客户端标识服务器。 例如: '"pocketbase-server"'。
  • 'command': 启动 MCP 服务器的命令。 由于本项目是 Node.js 应用,所以这里设置为 '"node"'。
  • 'args': 启动命令的参数,指向编译后的服务器入口文件。 对于本项目,编译后的入口文件位于 'dist/index.js'。
  • 'transport': MCP 服务器使用的传输协议。 本项目使用标准输入/输出流进行通信,因此设置为 '"stdio"'。

注意: 请确保 MCP 客户端能够找到 'node' 命令,并且 'dist/index.js' 文件路径相对于客户端的运行环境是正确的。 如果你的客户端和服务器部署在不同的目录或机器上,可能需要调整 'args' 中的路径。

基本使用方法

Advanced PocketBase MCP Server 提供了丰富的工具 (Tools) 和资源 (Resources) 供 LLM 客户端使用。

  • 使用工具 (Tools): LLM 客户端可以通过调用 'use_tool' 方法来执行服务器提供的工具,例如:

    await mcp.use_tool("pocketbase-server", "list_collections", {}); // 列出所有集合
    await mcp.use_tool("pocketbase-server", "create_record", {
        collection: "posts",
        data: { title: "Hello", content: "World" }
    }); // 在 posts 集合中创建一条记录

    工具名称 (例如 '"list_collections"', '"create_record"') 和参数需要参考仓库的 'README.md' 文件中 "Available Tools" 章节的描述。

  • 访问资源 (Resources): LLM 客户端可以通过资源 URI 访问服务器提供的资源,例如:

    const serverInfo = await mcp.fetch_resource("pocketbase://info"); // 获取服务器信息
    const collectionSchema = await mcp.fetch_resource("pocketbase://collections/posts/schema"); // 获取 posts 集合的 Schema

    资源 URI (例如 '"pocketbase://info"', '"pocketbase://collections/posts/schema"') 需要参考仓库的 'src/index.ts' 文件中 'setupResources()' 函数的定义。

请参考仓库的 'README.md' 文件和 'src/index.ts' 代码,了解更详细的工具和资源信息,以及更高级的使用方法。

信息

分类

数据库与文件