您可以使用 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 发送消息
这只是部分列表;如需查看编辑器可用的工具的完整列表,请参阅服务器功能部分。
准备工作
确保您已安装正常运行的 Node.js 和 npm。
通过运行以下命令向 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_directory
和set_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 | 为特定用户的账号设置自定义声明。用于创建与用户关联的可信值,例如将用户设为管理员。声明的大小有限,并且名称和值都应简洁明了。仅指定 value 或 json_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_token 或 topic 中的一个。 |
remoteconfig_get_template | remoteconfig | 检索项目的 Remote Config 模板 |
remoteconfig_publish_template | remoteconfig | 为项目发布新的 Remote Config 模板 |
remoteconfig_rollback_template | remoteconfig | 回滚到项目的特定 Remote Config 模板版本 |
crashlytics_list_top_issues | crashlytics | 列出应用中发生的由 Crashlytics 导致的最常见崩溃。 |