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 和 Cloud Storage for Firebase 的安全性規則
  • 使用 Firebase 雲端通訊傳送訊息

部分工具會使用 Gemini in Firebase 協助您:

  • 產生 Firebase Data Connect 結構定義和作業
  • 向 Gemini 諮詢 Firebase 產品

這些只是部分清單,如需編輯器可用的完整工具清單,請參閱「伺服器功能」一節。

Firebase MCP 伺服器發出工具呼叫時,會使用授權 Firebase CLI 的相同使用者憑證,也就是執行環境中的憑證。視環境而定,這可能是已登入的使用者或應用程式預設憑證

事前準備

  1. 請確認您已安裝可運作的 Node.js 和 npm。

  2. 執行下列指令,驗證 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_directoryset_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 為特定使用者的帳戶設定自訂憑證附加資訊。用於建立與使用者相關聯的信任值,例如將使用者標示為管理員。聲明的大小有限,名稱和值應簡潔明瞭。請只指定 valuejson_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_tokentopic 其中之一。
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 是與後端相關聯的網域清單。這類參照屬於 CUSTOMDEFAULT 型別。每個後端都應有 DEFAULT 網域。使用者連線至後端時實際使用的網域,是網域資源名稱的最後一個參數。如果自訂網域設定正確,狀態結尾會顯示 ACTIVE