您可以使用 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 驗證使用者
- 使用 Cloud Firestore 和 Firebase Data Connect 中的資料
- 擷取 Firebase Data Connect 結構定義
- 瞭解 Firestore 和 Cloud Storage for Firebase 的安全性規則
- 使用 Firebase 雲端通訊傳送訊息
部分工具會使用 Gemini in Firebase 協助您:
- 生成 Firebase Data Connect 結構定義和作業
- 向 Gemini 諮詢 Firebase 產品
這些只是部分清單,如需編輯器可用的完整工具清單,請參閱「伺服器功能」一節。
設定 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
。
如果檔案尚不存在,請在上層目錄上按一下滑鼠右鍵,然後選取「New file」,即可建立檔案。在檔案中加入下列內容:
{
"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
如果檔案尚不存在,請在上層目錄上按一下滑鼠右鍵,然後選取「New file」,即可建立檔案。在檔案中加入下列內容:
{
"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
如果檔案尚不存在,請在上層目錄上按一下滑鼠右鍵,然後選取「New file」,即可建立檔案。在檔案中加入下列內容:
{
"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」圖示,然後按一下「Configure MCP Servers」按鈕。
{
"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 編輯器,請編輯 ~/.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 直接處理 Firebase 專案 (須經您核准!)。
資源:供 LLM 使用的文件檔案,可提供更多指引和背景資訊,協助完成工作或達成目標
提示
Firebase MCP 伺服器隨附預先撰寫的提示程式庫,可針對使用 Firebase 開發及執行應用程式進行最佳化。您可以執行這些提示,完成各種常見工作或達成目標。
下表說明 MCP 伺服器提供的提示。
支援 MCP 的大多數開發工具,都會提供便利的方式來執行這些提示。舉例來說,Gemini CLI 會將這些提示設為斜線指令:
/firebase:init
在 Gemini CLI 中,開始輸入 /firebase:
即可查看可用指令清單。
提示名稱 | 特徵群組 | 說明 |
---|---|---|
firebase:deploy | 核心 | 使用這項指令將資源部署至 Firebase。 引數: <提示> (選用):您想提供的任何部署相關具體指示 |
firebase:init | 核心 | 使用這項指令設定 Firebase 服務,例如後端和 AI 功能。 |
firebase:consult | 核心 | 使用這項指令諮詢 Firebase Assistant,取得 Firebase 平台的最新詳細說明文件。 引數: <prompt>:要傳遞至 Gemini in Firebase 模型的相關問題 |
crashlytics:connect | crashlytics | 存取 Firebase 應用程式的 Crashlytics 資料。 |
工具
Firebase MCP 伺服器也提供多種工具,供 LLM 使用,協助 LLM 直接處理 Firebase 專案 (須經您核准!)。與提示不同,您不會直接呼叫這些工具,而是由支援工具呼叫的模型 (例如 Gemini、Claude 和 GPT) 在需要時自動呼叫這些工具,執行開發工作。
下表說明 MCP 伺服器提供的工具。
工具名稱 | 特徵群組 | 說明 |
---|---|---|
firebase_login | 核心 | 用來讓使用者登入 Firebase CLI 和 Firebase MCP 伺服器。您必須擁有 Google 帳戶,且必須登入才能建立及使用 Firebase 專案。 |
firebase_logout | 核心 | 用來將使用者登出 Firebase CLI 和 Firebase MCP 伺服器。 |
firebase_validate_security_rules | 核心 | 您可以使用這項工具,檢查 Firestore、Storage 或 Realtime Database 的 Firebase 安全性規則,找出語法和驗證錯誤。 |
firebase_get_project | 核心 | 使用這個方法擷取目前有效 Firebase 專案的相關資訊。 |
firebase_list_apps | 核心 | 您可以使用這個方法,擷取目前有效 Firebase 專案中註冊的 Firebase 應用程式清單。Firebase 應用程式可以是 iOS、Android 或網頁應用程式。 |
firebase_list_projects | 核心 | 用來擷取登入使用者可存取的 Firebase 專案清單。 |
firebase_get_sdk_config | 核心 | 用來擷取 Firebase 應用程式的 Firebase 設定資訊。您必須為目前有效的 Firebase 專案中註冊的 Firebase 應用程式,指定平台或 Firebase 應用程式 ID。 |
firebase_create_project | 核心 | 用來建立新的 Firebase 專案。 |
firebase_create_app | 核心 | 您可以使用這個選項,在目前啟用的 Firebase 專案中建立新的 Firebase 應用程式。Firebase 應用程式可以是 iOS、Android 或網頁應用程式。 |
firebase_create_android_sha | 核心 | 使用這個方法,將指定的 SHA 憑證雜湊新增至指定的 Firebase Android 應用程式。 |
firebase_get_environment | 核心 | 您可以使用這項指令,擷取 Firebase CLI 和 Firebase MCP 伺服器的目前 Firebase 環境設定,包括目前已驗證的使用者、專案目錄、有效 Firebase 專案等。 |
firebase_update_environment | 核心 | 您可以使用這項工具更新 Firebase CLI 和 Firebase MCP 伺服器的環境設定,例如專案目錄、有效專案、有效使用者帳戶、接受服務條款等。使用 firebase_get_environment 查看目前設定的環境。 |
firebase_init | 核心 | 您可以使用這個選項,在工作區中初始化選取的 Firebase 服務 (Cloud Firestore 資料庫、Firebase Data Connect、Firebase 即時資料庫、Firebase AI Logic)。所有服務皆為選用,請只指定要設定的產品。您可以在現有專案目錄中初始化新功能,但重新初始化現有功能可能會覆寫設定。如要部署初始化的功能,請在 firebase_init 工具後執行 firebase deploy 指令。 |
firebase_get_security_rules | 核心 | 可用於擷取指定 Firebase 服務的安全規則。如果產品中有多個該服務的執行個體,系統會傳回預設執行個體的規則。 |
firebase_read_resources | 核心 | 用來讀取 firebase:// 資源的內容或列出可用資源 |
firestore_delete_document | firestore | 這項工具可透過完整文件路徑,從目前專案的資料庫中刪除 Firestore 文件。如果您知道文件的確切路徑,請使用這個方法。 |
firestore_get_documents | firestore | 使用這個方法,透過完整的文件路徑,從目前專案的資料庫擷取一或多個 Firestore 文件。如果您知道文件的確切路徑,請使用這個方法。 |
firestore_list_collections | firestore | 您可以使用這項功能,從目前專案的 Firestore 資料庫擷取集合清單。 |
firestore_query_collection | firestore | 使用這個方法,透過集合和完整的文件路徑,從目前專案的資料庫中擷取一或多個 Firestore 文件。如果您知道集合的確切路徑,以及您希望文件使用的篩選子句,請使用這項功能。 |
auth_get_users | 授權 | 根據 UID 清單或電子郵件地址清單,擷取一或多位 Firebase 驗證使用者。 |
auth_update_user | 授權 | 您可以使用這項功能,在特定使用者的帳戶上停用、啟用或設定自訂聲明。 |
auth_set_sms_region_policy | 授權 | 您可以使用這項政策,為 Firebase 驗證設定簡訊區域政策,根據國家/地區代碼的許可或拒絕清單,限制可接收簡訊的區域。設定這項政策後,系統會覆寫所有現有政策。 |
dataconnect_build | dataconnect | 您可以使用這項功能編譯 Firebase Data Connect 結構定義、作業和/或連接器,並檢查建構錯誤。 |
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 bucket 中物件的下載網址。 |
messaging_send_message | 訊息傳遞 | 您可以使用這個方法,將訊息傳送至 Firebase 雲端通訊註冊權杖或主題。在特定呼叫中,只能提供 registration_token 或 topic 其中之一。 |
functions_get_logs | 函式 | 使用這個方法,透過 Google Cloud Logging 進階篩選器擷取一頁 Cloud Functions 記錄項目。 |
remoteconfig_get_template | remoteconfig | 使用這個方法,從目前有效的 Firebase 專案中擷取指定的 Firebase 遠端設定範本。 |
remoteconfig_update_template | remoteconfig | 用來發布新的遠端設定範本,或將專案還原至特定版本 |
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 即時資料庫的指定位置擷取資料。 |
realtimedatabase_set_data | realtimedatabase | 用來將資料寫入 Firebase 即時資料庫的指定位置。 |
資源
MCP 伺服器提供資源,也就是供 LLM 使用的說明文件檔案。支援使用資源的模型會自動在工作階段內容中加入相關資源。
下表說明 MCP 伺服器提供的資源。
資源名稱 | 說明 |
---|---|
backend_init_guide | Firebase 後端初始化指南:引導程式碼代理人在目前專案中設定 Firebase 後端服務 |
ai_init_guide | Firebase GenAI Init Guide:引導程式碼代理程式,在目前專案中利用 Firebase 設定 GenAI 功能 |
data_connect_init_guide | Firebase Data Connect 初始化指南:引導程式碼代理程式,在目前專案中設定 Data Connect 的 PostgreSQL 存取權 |
firestore_init_guide | Firestore Init Guide:引導程式碼代理程式在目前專案中設定 Firestore |
firestore_rules_init_guide | Firestore 規則初始化指南:引導程式碼代理程式在專案中設定 Firestore 安全性規則 |
rtdb_init_guide | Firebase 即時資料庫初始化指南:引導程式碼代理程式在目前專案中設定即時資料庫 |
auth_init_guide | Firebase 驗證初始化指南:引導程式碼代理程式在目前專案中設定 Firebase 驗證 |
hosting_init_guide | Firebase 託管部署指南:引導程式碼代理程式將目前專案部署至 Firebase 託管 |
說明文件 | Firebase 文件:從 Firebase 說明文件載入純文字內容,例如 https://firebase.google.com/docs/functions 會變成 firebase://docs/functions |