使用说明

项目简介

Firebase MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,它使用 Firebase 作为数据存储和工具执行平台。该服务器旨在为 LLM 客户端提供访问和操作 Firebase Firestore 数据库的能力,并可以通过工具的形式集成到 LLM 应用的工作流程中。它支持两种部署模式:本地 Node.js 模式 (使用 Firebase Admin SDK) 和 Cloudflare Workers 模式 (使用 Firebase REST API),以适应不同的运行环境和需求。

主要功能点

  • Firestore 数据库操作: 提供对 Firebase Firestore 数据库的文档进行 CRUD (创建、读取、更新、删除) 操作的工具。
  • 集合和子集合查询: 支持列出 Firestore 数据库中的集合和子集合,方便 LLM 应用浏览和管理数据结构。
  • 条件过滤查询: 允许 LLM 客户端使用过滤条件查询 Firestore 文档,以获取更精确的数据。
  • 多模式部署: 支持本地 Node.js 模式和 Cloudflare Workers 模式,灵活适应开发、测试和生产环境。
  • MCP 协议标准: 遵循 MCP 协议,易于与任何兼容 MCP 协议的 LLM 客户端集成。

安装步骤

  1. 克隆仓库

    git clone https://github.com/sheep52031/mcp-server-firebase.git
    cd mcp-server-firebase
  2. 安装依赖

    npm install

服务器配置

1. 本地 Node.js 模式 (Firebase Admin SDK)

  • MCP服务器配置 (JSON):

    {
      "serverName": "firebase-mcp-nodejs",
      "command": "node",
      "args": ["dist/index.js"]
    }

    参数说明:

    • 'serverName': MCP 服务器的名称,客户端用于标识和连接。
    • 'command': 启动 MCP 服务器的命令,这里使用 'node' 运行 JavaScript 文件。
    • 'args': 传递给 'node' 命令的参数,'dist/index.js' 是编译后的服务器入口文件。
  • Firebase 配置:

    • 下载服务帐户密钥文件: 从 Firebase 控制台下载服务帐户密钥 JSON 文件,并将其保存在项目目录下。
    • 设置环境变量 'SERVICE_ACCOUNT_KEY_PATH': 指向您下载的服务帐户密钥 JSON 文件的路径。例如:
      export SERVICE_ACCOUNT_KEY_PATH="/path/to/your-service-account.json"

2. Cloudflare Workers 模式 (Firebase REST API)

  • MCP服务器配置 (JSON):

    {
      "serverName": "firebase-mcp-workers",
      "command": "npm",
      "args": ["run", "dev:worker"]
    }

    参数说明:

    • 'serverName': MCP 服务器的名称,客户端用于标识和连接。
    • 'command': 启动 Cloudflare Workers 开发服务器的命令,这里使用 'npm' 运行 npm script。
    • 'args': 传递给 'npm run' 命令的参数,'dev:worker' 是 'package.json' 中定义的用于本地运行 Workers 的脚本。
  • Firebase 配置:

    • 配置 'wrangler.toml' 或 Cloudflare Secrets:
      • 在 'wrangler.toml' 文件中配置 'FIREBASE_PROJECT_ID', 'FIREBASE_API_KEY', 'FIREBASE_AUTH_DOMAIN' 环境变量。
      • 或者使用 Cloudflare Secrets 通过 'wrangler secret put' 命令设置这些环境变量。

基本使用方法

  1. 启动 MCP 服务器

    • 本地 Node.js 模式: 运行 'npm run dev' 或 'node dist/index.js' (确保已设置 'SERVICE_ACCOUNT_KEY_PATH' 环境变量)。
    • Cloudflare Workers 模式 (本地开发): 运行 'npm run dev:worker'。
    • Cloudflare Workers 模式 (部署后): 部署到 Cloudflare Workers 后,通过 Worker 的 URL 访问。
  2. 在 MCP 客户端中使用

    • 使用 MCP 客户端 SDK (如 '@modelcontextprotocol/sdk') 连接到服务器。

    • 调用 'mcp.get_tools()' 获取可用的工具列表。

    • 使用 'mcp.execute_tool()' 调用 Firestore 相关的工具,例如:

      // 示例:使用 firestore_add_document 工具添加文档
      const result = await mcp.tools.mcp_firebase_mcp_firestore_add_document({
        documentPath: "my_collection",
        data: { name: "example", value: 123 }
      });
      console.log(result);
      
      // 示例:使用 firestore_get_document 工具获取文档
      const doc = await mcp.tools.mcp_firebase_mcp_firestore_get_document({
        documentPath: "my_collection/document_id"
      });
      console.log(doc);

注意: 请根据您选择的运行模式配置相应的 Firebase 环境和 MCP 服务器连接参数。详细的工具参数和使用方法请参考仓库 'README.md' 文件和代码注释。

信息

分类

数据库与文件