您可以使用 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 和 Cloud Storage for Firebase 的安全性規則
- 使用 Firebase 雲端通訊傳送訊息
部分工具會使用 Gemini in Firebase 協助您:
- 產生 Firebase Data Connect 結構定義和作業
- 向 Gemini 諮詢 Firebase 產品
這些只是部分清單,如需編輯器可用的完整工具清單,請參閱「伺服器功能」一節。
Firebase MCP 伺服器發出工具呼叫時,會使用授權 Firebase CLI 的相同使用者憑證,也就是執行環境中的憑證。視環境而定,這可能是已登入的使用者或應用程式預設憑證。
事前準備
請確認您已安裝可運作的 Node.js 和 npm。
執行下列指令,驗證 Firebase CLI:
npx -y firebase-tools@latest login --reauth
Firebase MCP 伺服器會使用 CLI 處理 Firebase 專案的驗證作業。使用 MCP 伺服器前,請務必先透過 CLI 進行驗證。如果嘗試在未登入的情況下使用伺服器,或是驗證權杖已過期,伺服器會列印錯誤訊息,提示您重新驗證。
設定 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
如要設定 Cline 使用 Firebase MCP 伺服器,請編輯 cline_mcp_settings.json
檔案。如要開啟或建立這個檔案,請按一下「Cline」窗格頂端的「MCP Servers」圖示,然後按一下「Configure MCP Servers」按鈕。
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"],
"disabled": false
}
}
}
Cursor
如要設定 Cursor 使用 Firebase MCP 伺服器,請編輯 .cursor/mcp.json
檔案 (僅設定特定專案) 或 ~/.cursor/mcp.json
檔案 (在所有專案中提供 MCP 伺服器):
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
Firebase Studio
如要設定 Firebase Studio 使用 Firebase MCP 伺服器,請編輯或建立設定檔:
- Gemini in Firebase 對話會使用
.idx/mcp.json
。 - Gemini CLI 使用
.gemini/settings.json
。
如果檔案尚不存在,請在上層目錄上按一下滑鼠右鍵,然後選取「New file」,即可建立檔案。在檔案中加入下列內容:
{
"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 | 核心 | 擷取目前有效 Firebase 專案的相關資訊。 |
firebase_list_apps | 核心 | 擷取目前 Firebase 專案中註冊的應用程式。 |
firebase_get_admin_sdk_config | 核心 | 取得目前專案的 Admin SDK 設定。 |
firebase_list_projects | 核心 | 擷取最多指定總數的 Firebase 專案清單。 |
firebase_get_sdk_config | 核心 | 擷取指定平台的 Firebase SDK 設定資訊。您必須指定平台或 app_id。 |
firebase_create_project | 核心 | 建立新的 Firebase 專案。 |
firebase_create_app | 核心 | 在 Firebase 專案中為網頁、iOS 或 Android 建立新的應用程式。 |
firebase_create_android_sha | 核心 | 為現有的 Android 應用程式新增 SHA 憑證雜湊。 |
firebase_consult_assistant | 核心 | 向 AI 助理提問,取得 Firebase 相關問題的解答。 |
firebase_get_environment | 核心 | 擷取目前 Firebase 環境的相關資訊,包括目前已通過驗證的使用者、專案目錄、有效專案等。 |
firebase_update_environment | 核心 | 更新 Firebase 環境設定,例如專案目錄、有效專案、有效使用者帳戶等。使用 firebase_get_environment 查看目前設定的環境。 |
firebase_init | 核心 | 在工作區中初始化選取的 Firebase 功能 (Firestore、Data Connect、即時資料庫)。所有功能皆為選用,請只提供要設定的產品。您可以在現有專案目錄中初始化新功能,但重新初始化現有功能可能會覆寫設定。如要部署初始化的功能,請在 firebase_init 工具後執行 firebase deploy 指令。 |
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_generate_schema | dataconnect | 根據使用者對應用程式的描述,生成 Firebase Data Connect 結構定義。 |
dataconnect_generate_operation | 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_validate_rules | 儲存空間 | 檢查提供的儲存空間規則來源是否有語法和驗證錯誤。請提供要驗證的原始碼,或來源檔案的路徑。 |
storage_get_object_download_url | 儲存空間 | 擷取 Firebase Storage 中物件的下載網址。 |
messaging_send_message | 訊息傳遞 | 將訊息傳送至 Firebase 雲端通訊註冊權杖或主題。在特定呼叫中,只能提供 registration_token 或 topic 其中之一。 |
remoteconfig_get_template | remoteconfig | 擷取專案的遠端設定範本 |
remoteconfig_publish_template | remoteconfig | 為專案發布新的遠端設定範本 |
remoteconfig_rollback_template | remoteconfig | 將專案的遠端設定範本還原為特定版本 |
crashlytics_list_top_issues | 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 。 |