Firebase MCP 服务器

您可以使用 Firebase MCP 服务器,让依托 AI 技术的开发工具能够与您的 Firebase 项目协同工作。Firebase MCP 服务器可与任何可用作 MCP 客户端的工具搭配使用,包括 Claude Desktop、Cline、Cursor、Visual Studio Code Copilot、Windsurf Editor 等。

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

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

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

准备工作

  1. 安装 Firebase CLI。MCP 服务器是 Firebase CLI 的组件,从版本 14.4.0 开始。

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

    firebase 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 > Settings 菜单打开或创建此文件。选择开发者标签页,然后点击修改配置

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

Cline

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

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

光标

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

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

Visual Studio Code Copilot

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

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

若要在您打开的每个项目中使用该服务器,请修改您的用户设置

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

Windsurf Editor

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

"mcpServers": {
  "firebase": {
    "command": "npx",
    "args": ["-y", "firebase-tools", "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", "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_get_object_download_url 存储 检索 Firebase Storage 中对象的下载网址。
messaging_send_message 消息传递 向 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 崩溃问题中的前几项。