您可以使用 Firebase MCP 服务器让 AI 赋能的开发工具能够与 Firebase 项目和应用的代码库协同工作。
Firebase MCP 服务器可与任何可充当 MCP 客户端的工具配合使用,包括:Firebase Studio、Gemini CLI 和 Gemini Code Assist、Claude Code 和 Claude Desktop、Cline、Cursor、VS Code Copilot、Windsurf 等!
MCP 服务器的优势
已配置为使用 Firebase MCP 服务器的编辑器可以使用 AI 功能来帮助您:
- 创建和管理 Firebase 项目
- 管理您的 Firebase Authentication 用户
- 在 Cloud Firestore 和 Firebase Data Connect 中处理数据
- 检索 Firebase Data Connect 架构
- 了解适用于 Firestore 和 Cloud Storage for Firebase 的安全规则
- 使用 Firebase Cloud Messaging 发送消息
部分工具使用 Gemini in Firebase 来为您提供帮助:
- 生成 Firebase Data Connect 架构和操作
- 就 Firebase 产品咨询 Gemini
这只是部分列表;如需查看完整的编辑器可用工具列表,请参阅服务器功能部分。
设置 MCP 客户端
Firebase MCP 服务器可以与任何支持标准 I/O (stdio) 作为传输媒介的 MCP 客户端配合使用。
当 Firebase MCP 服务器调用工具时,它会使用在当前运行环境中授权 Firebase CLI 所用的用户凭证。这可以是已登录的用户,也可以是应用默认凭据,具体取决于环境。
准备工作
确保您已安装正常运行的 Node.js 和 npm。
基本配置
以下是将 Firebase MCP 服务器与一些热门 AI 辅助工具搭配使用的基本配置说明:
Firebase Studio
如需将 Firebase Studio 配置为使用 Firebase MCP 服务器,请编辑或新建配置文件:.idx/mcp.json
如果该文件尚不存在,请右键点击父目录,选择新建文件来创建该文件。将以下内容添加到文件中:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Gemini CLI
建议您通过安装 Gemini CLI 的 Firebase 扩展程序来设置 Gemini CLI 以使用 Firebase MCP 服务器:
gemini extensions install https://github.com/gemini-cli-extensions/firebase/
安装 Firebase 扩展程序会自动配置 Firebase MCP 服务器,并且附带一个上下文文件,可提升 Gemini 的 Firebase 应用开发性能。
或者,您也可以通过修改或创建以下配置文件之一,将 Gemini CLI 配置为使用 Firebase MCP 服务器(但不使用 Firebase 扩展程序上下文文件):
- 在项目中:
.gemini/settings.json
- 在您的主目录中:
~/.gemini/settings.json
如果该文件尚不存在,请右键点击父目录,选择新建文件来创建该文件。将以下内容添加到文件中:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Gemini 代码助手
建议您通过安装 Gemini CLI 的 Firebase 扩展程序来设置 Gemini Code Assist 以使用 Firebase MCP 服务器:
gemini extensions install https://github.com/gemini-cli-extensions/firebase/
安装 Firebase 扩展程序会自动配置 Firebase MCP 服务器,并且附带一个上下文文件,可提升 Gemini 的 Firebase 应用开发性能。
或者,您也可以通过修改或创建以下配置文件之一,将 Gemini Code Assist 配置为使用 Firebase MCP 服务器(但不是 Firebase 扩展程序上下文文件):
- 在项目中:
.gemini/settings.json
- 在您的主目录中:
~/.gemini/settings.json
如果该文件尚不存在,请右键点击父目录,选择新建文件来创建该文件。将以下内容添加到文件中:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Claude
Claude Code
如需将 Claude Code 配置为使用 Firebase MCP 服务器,请在应用文件夹下运行以下命令:
claude mcp add firebase npx -- -y firebase-tools@latest mcp
您可以运行以下命令来验证安装是否成功:
claude mcp list
输出应如下所示:
firebase: npx -y firebase-tools@latest mcp - ✓ Connected
Claude Desktop
如需将 Claude Desktop 配置为使用 Firebase MCP 服务器,请修改 claude_desktop_config.json
文件。您可以从 Claude > 设置菜单中打开或创建此文件。选择开发者标签页,然后点击修改配置。
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Cline
如需将 Cline 配置为使用 Firebase MCP 服务器,请修改 cline_mcp_settings.json
文件。您可以通过点击 Cline 窗格顶部的 MCP Servers 图标,然后点击配置 MCP 服务器按钮来打开或创建此文件。
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"],
"disabled": false
}
}
}
光标
如需将 Cursor 配置为使用 Firebase MCP 服务器,请修改文件 .cursor/mcp.json
(用于仅配置特定项目)或 ~/.cursor/mcp.json
(用于使 MCP 服务器在所有项目中可用):
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
VS Code Copilot
如需配置单个项目,请修改工作区中的 .vscode/mcp.json
文件:
"servers": {
"firebase": {
"type": "stdio",
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
如需使服务器在您打开的每个项目中可用,请修改用户设置:
"mcp": {
"servers": {
"firebase": {
"type": "stdio",
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Windsurf
如需配置 Windsurf 编辑器,请修改 ~/.codeium/windsurf/mcp_config.json
文件:
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
可选配置
除了前面显示的每个客户端的基本配置之外,您还可以指定两个可选参数:
--dir ABSOLUTE_DIR_PATH
:包含firebase.json
的目录的绝对路径,用于为 MCP 服务器设置项目上下文。如果未指定,将启用get_project_directory
和set_project_directory
工具,默认目录为启动 MCP 服务器时的工作目录。--only FEATURE_1,FEATURE_2
:要激活的功能组的逗号分隔列表。使用此参数可将显示的工具限制为您正在使用的功能。请注意,核心工具始终可用
例如:
"firebase": {
"command": "npx",
"args": [
"-y",
"firebase-tools@latest", "mcp",
"--dir", "/Users/turing/my-project",
"--only", "auth,firestore,storage"
]
}
MCP 服务器功能
Firebase MCP 服务器提供三类不同的 MCP 功能:
提示:一个预先编写的提示库,您可以运行这些提示;它们经过优化,可用于使用 Firebase 开发和运行应用
工具:一组旨在供 LLM 使用的工具,可帮助 LLM 直接与您的 Firebase 项目协同工作(经您批准!)。
资源:旨在供 LLM 使用的文档文件,可为 LLM 提供更多指导和背景信息,以帮助其完成任务或实现目标
提示
Firebase MCP 服务器附带一个预先编写的提示库,这些提示经过优化,可用于开发和运行 Firebase 应用。您可以运行这些提示来完成各种常见任务或目标。
下表介绍了 MCP 服务器提供的提示。
大多数支持 MCP 的开发工具都提供了一些便捷的方式来运行这些提示。例如,Gemini CLI 会将这些提示作为斜杠命令提供:
/firebase:init
在 Gemini CLI 中,开始输入 /firebase:
,即可查看可用命令的列表。
提示名称 | 特征组 | 说明 |
---|---|---|
firebase:deploy | core | 使用此命令将资源部署到 Firebase。 实参: <提示>(可选):您希望提供的有关部署的任何具体说明 |
firebase:init | core | 使用此命令设置 Firebase 服务,例如后端和 AI 功能。 |
firebase:consult | core | 使用此命令可咨询 Firebase 助理,并获取有关 Firebase 平台的详细最新文档。 实参: <提示>:要传递给 Gemini in Firebase 模型的提示 |
crashlytics:connect | crashlytics | 访问 Firebase 应用的 Crashlytics 数据。 |
工具
Firebase MCP 服务器还提供了一些旨在供 LLM 使用的工具,可帮助 LLM 直接与您的 Firebase 项目协同工作(经您批准!)。与提示不同,您不会直接调用这些工具;而是由支持工具调用的模型(例如 Gemini、Claude 和 GPT)在需要时自动调用这些工具来执行开发任务。
下表介绍了 MCP 服务器提供的工具。
工具名称 | 特征组 | 说明 |
---|---|---|
firebase_login | core | 使用此命令可让用户登录 Firebase CLI 和 Firebase MCP 服务器。这需要一个 Google 账号,并且您需要登录才能创建和使用 Firebase 项目。 |
firebase_logout | core | 使用此命令可让用户退出 Firebase CLI 和 Firebase MCP 服务器。 |
firebase_validate_security_rules | core | 使用此方法可检查 Firestore、Cloud Storage 或 Realtime Database 的 Firebase 安全规则是否存在语法和验证错误。 |
firebase_get_project | core | 使用此方法可检索当前有效的 Firebase 项目的相关信息。 |
firebase_list_apps | core | 使用此方法可检索当前活跃 Firebase 项目中注册的 Firebase 应用的列表。Firebase 应用可以是 iOS 应用、Android 应用或 Web 应用。 |
firebase_list_projects | core | 使用此方法可检索已登录用户有权访问的 Firebase 项目的列表。 |
firebase_get_sdk_config | core | 使用此方法可检索 Firebase 应用的 Firebase 配置信息。您必须为当前有效的 Firebase 项目中注册的 Firebase 应用指定平台或 Firebase 应用 ID。 |
firebase_create_project | core | 使用此方法可创建新的 Firebase 项目。 |
firebase_create_app | core | 使用此命令可在当前活跃的 Firebase 项目中创建新的 Firebase 应用。Firebase 应用可以是 iOS 应用、Android 应用或 Web 应用。 |
firebase_create_android_sha | core | 使用此方法可将指定的 SHA 证书哈希添加到指定的 Firebase Android 应用。 |
firebase_get_environment | core | 使用此方法可检索 Firebase CLI 和 Firebase MCP 服务器的当前 Firebase 环境配置,包括当前经过身份验证的用户、项目目录、有效 Firebase 项目等。 |
firebase_update_environment | core | 使用此命令更新 Firebase CLI 和 Firebase MCP 服务器的环境配置,例如项目目录、有效项目、有效用户账号、接受服务条款等。使用 firebase_get_environment 查看当前配置的环境。 |
firebase_init | core | 使用此功能可在工作区中初始化所选 Firebase 服务(Cloud Firestore 数据库、Firebase Data Connect、Firebase Realtime Database、Firebase AI Logic)。所有服务都是可选的;请仅指定您要设置的产品。您可以将新功能初始化到现有项目目录中,但重新初始化已有功能可能会覆盖其配置。如需部署已初始化的功能,请在运行 firebase_init 工具后再运行 firebase deploy 命令。 |
firebase_get_security_rules | core | 使用此方法可检索指定 Firebase 服务的安全规则。如果产品中存在该服务的多个实例,则返回默认实例的规则。 |
firebase_read_resources | core | 使用此方法可读取 firebase:// 资源的内容或列出可用资源 |
firestore_delete_document | firestore | 通过完整文档路径从当前项目的数据库中删除一个或多个 Firestore 文档。如果您知道文档的确切路径,请使用此功能。 |
firestore_get_documents | firestore | 使用此方法可通过完整文档路径从当前项目的数据库中检索一个或多个 Firestore 文档。如果您知道文档的确切路径,请使用此功能。 |
firestore_list_collections | firestore | 使用此方法可从当前项目中的 Firestore 数据库检索集合列表。 |
firestore_query_collection | firestore | 通过具有完整文档路径的集合,从当前项目中的数据库检索集合中的一个或多个 Firestore 文档。如果您知道集合的确切路径以及您希望为文档使用的过滤子句,请使用此功能。 |
auth_get_users | auth | 使用此方法可根据 UID 列表或电子邮件地址列表检索一个或多个 Firebase Auth 用户。 |
auth_update_user | auth | 使用此方法可停用、启用或为特定用户的账号设置自定义声明。 |
auth_set_sms_region_policy | auth | 使用此方法可为 Firebase Authentication 设置短信区域政策,以根据国家/地区代码的允许或拒绝列表,限制可接收短信的区域。此政策会在设置时覆盖任何现有政策。 |
dataconnect_build | dataconnect | 使用此命令编译 Firebase Data Connect 架构、操作和/或连接器,并检查是否存在 build 错误。 |
dataconnect_generate_schema | dataconnect | 使用此功能可根据用户对应用的描述生成 Firebase Data Connect 架构。 |
dataconnect_generate_operation | dataconnect | 使用此功能可根据当前已部署的架构和提供的提示生成单个 Firebase Data Connect 查询或变更。 |
dataconnect_list_services | dataconnect | 使用此方法可列出本地和后端现有的 Firebase Data Connect 服务 |
dataconnect_execute | dataconnect | 使用此方法针对 Data Connect 服务或其模拟器执行 GraphQL 操作。 |
storage_get_object_download_url | 存储 | 使用此方法可检索 Cloud Storage for Firebase 存储分区中对象的下载网址。 |
messaging_send_message | 消息传递 | 使用此方法向 Firebase Cloud Messaging 注册令牌或主题发送消息。在特定调用中,只能提供 registration_token 或 topic 中的一个。 |
functions_get_logs | 函数 | 使用此方法可通过 Google Cloud Logging 高级过滤条件检索一页 Cloud Functions 日志条目。 |
remoteconfig_get_template | remoteconfig | 使用此方法可从当前活跃的 Firebase 项目中检索指定的 Firebase Remote Config 模板。 |
remoteconfig_update_template | remoteconfig | 使用此方法可为项目发布新的 Remote Config 模板或回滚到特定版本 |
crashlytics_create_note | crashlytics | 为 Crashlytics 中的问题添加备注。 |
crashlytics_delete_note | crashlytics | 从 Crashlytics 问题中删除备注。 |
crashlytics_get_issue | crashlytics | 获取 Crashlytics 问题的数据,这些数据可用作调试的起点。 |
crashlytics_list_events | crashlytics | 使用此方法可列出与指定过滤条件匹配的最新事件。 可用于获取问题的示例崩溃和异常, 其中将包含有助于调试的堆栈轨迹和其他数据。 |
crashlytics_batch_get_events | crashlytics | 按资源名称获取特定活动。 可用于获取问题的示例崩溃和异常, 其中将包含有助于调试的堆栈轨迹和其他数据。 |
crashlytics_list_notes | crashlytics | 使用此方法可列出 Crashlytics 中某个问题的所有备注。 |
crashlytics_get_top_issues | crashlytics | 使用此函数可按问题对事件和受影响的唯一身份用户进行分组计数。 各组按事件数降序排序。 仅统计与指定过滤条件匹配的事件。 |
crashlytics_get_top_variants | crashlytics | 按问题变体对事件和不同的受影响用户进行计数。 各组按事件数降序排序。 仅统计与指定过滤条件匹配的事件。 |
crashlytics_get_top_versions | crashlytics | 按版本分组,统计事件数和不同的受影响用户数。 各组按事件数降序排序。 仅统计与指定过滤条件匹配的事件。 |
crashlytics_get_top_apple_devices | crashlytics | 统计事件数和受影响的唯一身份用户数,按 Apple 设备分组。 各组按事件数降序排序。 仅统计与指定过滤条件匹配的事件。 仅适用于 iOS、iPadOS 和 macOS 应用。 |
crashlytics_get_top_android_devices | crashlytics | 统计事件数和不同的受影响用户数,按 Android 设备分组。 各组按事件数降序排序。 仅统计与指定过滤条件匹配的事件。 仅适用于 Android 应用。 |
crashlytics_get_top_operating_systems | crashlytics | 统计事件数和不同的受影响用户数,按操作系统分组。 各组按事件数降序排序。 仅统计与指定过滤条件匹配的事件。 |
crashlytics_update_issue | crashlytics | 用于更新 Crashlytics 问题的状态。 |
apphosting_fetch_logs | apphosting | 使用此方法可获取指定的 App Hosting 后端的最新日志。如果指定了 buildLogs ,则会返回最新构建的构建流程日志。最新的日志会被首先列出。 |
apphosting_list_backends | apphosting | 使用此方法可检索当前项目中 App Hosting 后端的列表。如果列表为空,则表示没有后端。uri 是后端的公开网址。正常工作的后端将具有一个 managed_resources 数组,其中包含一个 run_service 条目。该 run_service.service 是为 App Hosting 后端提供服务的 Cloud Run 服务的资源名称。该名称的最后一个部分是服务 ID。domains 是与后端关联的网域的列表。它们的类型为 CUSTOM 或 DEFAULT 。每个后端都应该有一个 DEFAULT 网域。用户用于连接到后端的实际网域是网域资源名称的最后一个参数。如果自定义网域设置正确,其状态将以 ACTIVE 结尾。 |
realtimedatabase_get_data | realtimedatabase | 使用此方法可从 Firebase Realtime Database 中的指定位置检索数据。 |
realtimedatabase_set_data | realtimedatabase | 使用此方法将数据写入 Firebase Realtime Database 中的指定位置。 |
资源
MCP 服务器提供资源,这些资源是旨在供 LLM 使用的文档文件。支持使用资源的模型会自动在对话上下文中使用相关资源。
下表介绍了 MCP 服务器提供的资源。
资源名称 | 说明 |
---|---|
backend_init_guide | Firebase 后端初始化指南:引导编码代理在当前项目中配置 Firebase 后端服务 |
ai_init_guide | Firebase GenAI Init 指南:引导编码代理在当前项目中利用 Firebase 配置 GenAI 功能 |
data_connect_init_guide | Firebase Data Connect 初始化指南:引导编码代理在当前项目中配置 Data Connect 以实现 PostgreSQL 访问 |
firestore_init_guide | Firestore 初始化指南:引导编码代理完成当前项目中的 Firestore 配置 |
firestore_rules_init_guide | Firestore 规则初始化指南:引导编码代理在项目中设置 Firestore 安全规则 |
rtdb_init_guide | Firebase Realtime Database 初始化指南:引导编码代理在当前项目中配置 Realtime Database |
auth_init_guide | Firebase Authentication 初始化指南:引导编码代理在当前项目中配置 Firebase Authentication |
hosting_init_guide | Firebase Hosting 部署指南:引导编码代理完成当前项目中的 Firebase Hosting 部署 |
文档 | Firebase 文档:从 Firebase 文档加载纯文本内容,例如 https://firebase.google.com/docs/functions 变为 firebase://docs/functions |