使用说明

项目简介

firestore-read MCP 服务器旨在解决在 ReactJS 应用开发中,LLM (如 Claude) 难以理解和操作 Firestore 数据库结构的问题。通过此服务器,开发者可以方便地让 LLM 直接访问 Firestore 数据库,获取最新的数据信息,从而减少 LLM 的“幻觉”并提高交互的准确性。

主要功能点

  • 列出集合 (List collections): 获取 Firestore 数据库中所有集合的名称列表。
  • 读取文档 (Get collection): 获取指定集合中的所有文档及其数据。
  • 创建文档 (Create document): 在指定的集合中创建新的文档。
  • 支持复杂数据类型: 能够处理 Firestore 中的时间戳 (timestamps) 和文档引用 (document references) 等复杂数据类型。

安装步骤

  1. 环境准备: 确保已安装 Python 3.11 或更高版本,并安装 'uv' 包管理器 (可以使用 'pip install uv' 安装)。
  2. 安装依赖: 在项目根目录下,使用 'uv' 安装所需的 Python 依赖库:
    uv pip install firebase-admin
    uv pip install python-dotenv

服务器配置

要将此 MCP 服务器配置到 MCP 客户端(例如 Claude Desktop),您需要编辑客户端的配置文件,通常是一个 JSON 文件。以下是针对 Claude Desktop 的配置示例,其他 MCP 客户端的配置方式可能类似。

Claude Desktop 配置 (claude_desktop_config.json):

请根据您的操作系统找到 'claude_desktop_config.json' 文件,通常位置如下:

  • MacOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
  • Windows: '%APPDATA%/Claude/claude_desktop_config.json'

在该文件中,找到 '"mcpServers"' 部分(如果不存在则创建),并添加以下配置信息。请根据实际情况修改路径和凭据:

{
  "mcpServers": {
    "firestore-read": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/your/firestore-read",  // 【请替换为您的 firestore-read 项目的绝对路径】
        "run",
        "src/firestore_read"             //  执行的模块路径,指向包含 main 函数的 __init__.py 文件
      ],
      "env": {
        "FIREBASE_API_KEY": "your-firebase-web-api-key",    // 【请替换为您的 Firebase Web API Key】
        "FIREBASE_PROJECT_ID": "your-firebase-project-id"  // 【请替换为您的 Firebase Project ID】
      }
    }
  }
}

配置参数说明:

  • '"firestore-read"': 服务器名称,在 Claude 中用于标识和调用此服务器。
  • '"command": "uv"': 启动服务器的命令,这里使用 'uv' 包管理器来运行 Python 模块。
  • '"args"': 传递给 'uv' 命令的参数列表:
    • '"--directory"': 指定项目根目录,'【请替换为您的 firestore-read 项目的绝对路径】' 需要替换为实际的项目路径。
    • '"run"': 'uv run' 命令用于运行指定的 Python 模块。
    • '"src/firestore_read"': 指定要运行的 Python 模块,指向 'src/firestore_read/init.py' 文件,该文件包含了 'main' 函数。
  • '"env"': 设置服务器运行所需的环境变量:
    • '"FIREBASE_API_KEY"': Firebase Web API Key,用于初始化 Firebase 客户端,'【请替换为您的 Firebase Web API Key】' 需要替换为您的 Firebase Web API Key。
    • '"FIREBASE_PROJECT_ID"': Firebase Project ID,用于指定 Firebase 项目,'【请替换为您的 Firebase Project ID】' 需要替换为您的 Firebase Project ID。

重要提示:

  • 确保您已在 Firebase 控制台中创建项目,并获取了 Web API KeyProject ID
  • 路径配置: '"--directory"' 参数中的路径必须是您 'firestore-read' 项目在您本地文件系统中的绝对路径。请根据您的实际项目存放位置进行修改。
  • 环境变量: 'FIREBASE_API_KEY' 和 'FIREBASE_PROJECT_ID' 是连接 Firebase 的凭据,请确保配置正确。虽然文档指出 Web API Key 可以安全地暴露在客户端代码中,但仍建议您妥善保管,避免泄露。

基本使用方法

配置完成后,您可以在 Claude 等 MCP 客户端中通过自然语言指令来调用此服务器的功能。以下是一些示例:

  • 列出集合: 在 Claude 中输入类似 "列出所有 Firestore 集合" 或 "有哪些数据库集合" 的指令。Claude 应该能够调用 'list-collections' 工具并返回集合列表。
  • 读取文档: 输入类似 "显示 users 集合中的文档" 或 "读取 products 集合的数据" 的指令。Claude 会调用 'get-collection' 工具并返回指定集合的文档数据。
  • 创建文档: 输入类似 "创建一个新的 test 文档,数据为 {name: 'example', value: 123}" 或 "在 items 集合中添加一个文档,内容是 {title: 'New Item'}" 的指令。Claude 将调用 'create-document' 工具并在指定集合中创建新文档。

请注意,具体的指令格式可能取决于您使用的 MCP 客户端的自然语言理解能力。您可以参考仓库的 'Usage Examples' 部分获取更多示例。

信息

分类

数据库与文件