Firebase MCP 服务器

您可以使用 Firebase MCP 服务器为 AI 赋能的开发工具提供与 Firebase 项目协同运作的能力。Firebase MCP 服务器可与任何可充当 MCP 客户端的工具配合使用,包括 Claude Desktop、Cline、Cursor、Visual Studio Code Copilot、Windsurf Editor 等。

已配置为使用 Firebase MCP 服务器的编辑器可以使用 AI 功能来帮助您:

  • 创建和管理 Firebase 项目
  • 管理您的 Firebase Authentication 用户
  • 在 Cloud Firestore 和 Firebase Data Connect 中处理数据
  • 检索 Firebase Data Connect 架构
  • 了解适用于 Firestore 和 Cloud Storage for Firebase 的安全规则
  • 使用 Firebase Cloud Messaging 发送消息

这只是部分列表;如需查看编辑器可用的工具的完整列表,请参阅服务器功能部分。

准备工作

  1. 确保您已安装正常运行的 Node.js 和 npm。

  2. 通过运行以下命令向 Firebase CLI 进行身份验证:

    npx -y firebase-tools@latest login --reauth

    Firebase MCP 服务器使用 CLI 来处理 Firebase 项目的身份验证。您必须先使用 CLI 进行身份验证,然后才能使用 MCP 服务器。如果您尝试未登录就使用服务器,或者身份验证令牌已过期,服务器将输出一条错误消息,提示您重新进行身份验证。

设置 MCP 客户端

Firebase MCP 服务器可以与任何支持标准 I/O (stdio) 作为传输媒介的 MCP 客户端配合使用。以下是一些热门工具的具体说明:

基本配置

Claude Desktop

如需将 Claude Desktop 配置为使用 Firebase MCP 服务器,请修改 claude_desktop_config.json 文件。您可以从 Claude > 设置菜单中打开或创建此文件。选择开发者标签页,然后点击修改配置

{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
    }
  }
}

电影作品

如需将 Cline 配置为使用 Firebase MCP 服务器,请修改 cline_mcp_settings.json 文件。您可以通过点击 Cline 窗格顶部的 MCP Servers 图标,然后点击配置 MCP 服务器按钮来打开或创建此文件。

{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "experimental:mcp"],
      "disabled": false
    }
  }
}

光标

如需将 Cursor 配置为使用 Firebase MCP 服务器,请修改文件 .cursor/mcp.json(用于仅配置特定项目)或 ~/.cursor/mcp.json(用于使 MCP 服务器在所有项目中可用):

"mcpServers": {
  "firebase": {
    "command": "npx",
    "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
   }
}

Visual Studio Code Copilot

如需配置单个项目,请修改工作区中的 .vscode/mcp.json 文件:

"servers": {
  "firebase": {
    "type": "stdio",
    "command": "npx",
    "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
  }
}

如需使服务器在您打开的每个项目中可用,请修改用户设置

"mcp": {
  "servers": {
    "firebase": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
    }
  }
}

Windsurf 编辑器

如需配置 Windsurf 编辑器,请修改 ~/.codeium/windsurf/mcp_config.json 文件:

"mcpServers": {
  "firebase": {
    "command": "npx",
    "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
  }
}

可选配置

除了前面显示的每个客户端的基本配置之外,您还可以指定两个可选参数:

  • --dir ABSOLUTE_DIR_PATH:包含 firebase.json 的目录的绝对路径,用于为 MCP 服务器设置项目上下文。如果未指定,将启用 get_project_directoryset_project_directory 工具,默认目录为启动 MCP 服务器时的工作目录。

  • --only FEATURE_1,FEATURE_2:要激活的功能组的逗号分隔列表。使用此参数可将显示的工具限制为您正在使用的功能。请注意,核心工具始终可用

例如:

"firebase": {
  "command": "npx",
  "args": [
    "-y",
    "firebase-tools@latest", "experimental:mcp",
    "--dir", "/Users/turing/my-project",
    "--only", "auth,firestore,storage"
  ]
}

MCP 服务器功能

工具名称 特征组 说明
firebase_get_project core 检索当前有效的 Firebase 项目的相关信息。
firebase_list_apps core 检索当前 Firebase 项目中注册的应用。
firebase_get_admin_sdk_config core 获取当前项目的 Admin SDK 配置。
firebase_get_sdk_config core 检索指定平台的 Firebase SDK 配置信息。您必须指定平台或 app_id。
firebase_create_project core 创建新的 Firebase 项目。
firebase_create_app core 在您的 Firebase 项目中为 Web、iOS 或 Android 创建新应用。
firebase_create_android_sha core 将 SHA 证书哈希添加到现有 Android 应用。
firebase_get_environment core 检索有关当前 Firebase 环境的信息,包括当前经过身份验证的用户、项目目录、有效项目等。
firebase_update_environment core 更新 Firebase 环境配置,例如项目目录、有效项目、有效用户账号等。使用 firebase_get_environment 查看当前配置的环境。
firebase_init core 在工作区中初始化所选 Firebase 功能。所有功能都为可选;请仅提供您要设置的产品。您可以将新功能初始化到现有项目目录中,但重新初始化已有功能可能会覆盖其配置。
firestore_delete_document firestore 通过完整文档路径从当前项目的数据库中删除一个或多个 Firestore 文档。如果您知道文档的确切路径,请使用此功能。
firestore_get_documents firestore 通过完整文档路径从当前项目的数据库中检索一个或多个 Firestore 文档。如果您知道文档的确切路径,请使用此功能。
firestore_list_collections firestore 从当前项目中的 Firestore 数据库中检索集合列表。
firestore_query_collection firestore 通过具有完整文档路径的集合,从当前项目中的数据库检索集合中的一个或多个 Firestore 文档。如果您知道集合的确切路径以及您希望为文档使用的过滤子句,请使用此功能。
firestore_get_rules firestore 检索当前项目的有效 Firestore 安全规则。
firestore_validate_rules firestore 检查所提供的 Firestore 规则源代码是否存在语法和验证错误。请提供用于验证的源代码或源文件路径(二选一)。
auth_get_user auth 根据电子邮件地址、电话号码或 UID 检索用户。
auth_disable_user auth 根据 UID 停用或启用用户。
auth_list_users auth 检索项目中的所有用户,数量不超过指定限制。
auth_set_claim auth 为特定用户的账号设置自定义声明。用于创建与用户关联的可信值,例如将用户设为管理员。声明的大小有限,并且名称和值都应简洁明了。仅指定 valuejson_value 参数中的一个。
auth_set_sms_region_policy auth 为 Firebase Auth 设置短信区域政策,以根据国家/地区代码的允许或拒绝列表,限制可接收短信的区域。此政策会在设置时覆盖任何现有政策。
dataconnect_list_services dataconnect 列出当前项目中可用的 Firebase Data Connect 服务。
dataconnect_get_schema dataconnect 检索项目中 Firebase Data Connect 架构的信息,包括 Cloud SQL 数据源和用于描述数据模型的 GraphQL 架构。
dataconnect_get_connectors dataconnect 获取项目中的 Firebase Data Connect 连接器,其中包含客户端 SDK 可访问的预定义 GraphQL 查询。
dataconnect_execute_graphql dataconnect 针对 Data Connect 服务或其模拟器执行任意 GraphQL 查询语句。
dataconnect_execute_graphql_read dataconnect 针对 Data Connect 服务或其模拟器执行任意 GraphQL 查询。无法写入数据。
dataconnect_execute_mutation dataconnect 针对服务或其模拟器执行已部署的 Data Connect 变更。可以读取和写入数据。
dataconnect_execute_query dataconnect 针对服务或其模拟器执行已部署的 Data Connect 查询。无法写入任何数据。
storage_get_rules 存储 检索当前项目的有效 Storage 安全规则。
storage_validate_rules 存储 检查所提供的 Storage 规则源代码是否存在语法和验证错误。请提供用于验证的源代码或源文件路径(二选一)。
storage_get_object_download_url 存储 检索 Firebase Storage 中对象的下载网址。
messaging_send_message messaging 向 Firebase Cloud Messaging 注册令牌或主题发送消息。在特定调用中,只能提供 registration_tokentopic 中的一个。
remoteconfig_get_template remoteconfig 检索项目的 Remote Config 模板
remoteconfig_publish_template remoteconfig 为项目发布新的 Remote Config 模板
remoteconfig_rollback_template remoteconfig 回滚到项目的特定 Remote Config 模板版本
crashlytics_list_top_issues crashlytics 列出应用中发生的由 Crashlytics 导致的最常见崩溃。