Firebase MCP サーバー

Firebase MCP サーバーを使用すると、AI を搭載した開発ツールで Firebase プロジェクトを操作できるようになります。Firebase MCP サーバーは、Claude Desktop、Cline、Cursor、Visual Studio Code Copilot、Windsurf Editor を含め、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 に質問する

これらは一部のリストにすぎません。エディタで使用できるツールの完全なリストについては、サーバーの機能のセクションをご覧ください。

Firebase MCP サーバーがツールを呼び出す際、そのサーバーが実行されている環境で Firebase CLI を認証するのと同じユーザー認証情報を使用します。環境に応じて、ログイン ユーザーまたはアプリケーションのデフォルト認証情報が使用されます。

始める前に

Node.js と npm が動作していることを確認します。

MCP クライアントを設定する

Firebase MCP サーバーは、転送メディアとして標準 I/O(stdio)をサポートする任意の MCP クライアントと連携できます。以下に、一般的なツールの具体的な手順を示します。

基本的な構成

Firebase Studio

Firebase MCP サーバーを使用するように Firebase Studio を構成するには、構成ファイル .idx/mcp.json を編集するか、作成します。

このファイルがまだ存在しない場合は、親ディレクトリを右クリックし、[新しいファイル] を選択して作成します。ファイルに次の内容を追加します。

{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
    }
  }
}

Gemini CLI と Gemini Code Assist

Firebase MCP サーバーを使用するように Gemini CLI または Gemini Code Assist を構成するには、次の場所で構成ファイルを編集するか、作成します。

  • プロジェクト内: .gemini/settings.json
  • ホーム ディレクトリ内: ~/.gemini/settings.json

このファイルがまだ存在しない場合は、親ディレクトリを右クリックし、[新しいファイル] を選択して作成します。ファイルに次の内容を追加します。

{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
    }
  }
}

Claude Desktop

Firebase MCP サーバーを使用するように Claude Desktop を構成するには、claude_desktop_config.json ファイルを編集します。このファイルは、[Claude > 設定] メニューから開くか作成できます。[開発者] タブを選択し、[構成を編集] をクリックします。

{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
    }
  }
}

Claude Code

Firebase MCP サーバーを使用するように Claude Code を構成するには、アプリフォルダで次のコマンドを実行します。

claude mcp add firebase npx -- -y firebase-tools@latest experimental:mcp

次のコマンドを実行して、インストールを確認できます。

claude mcp list

出力は次のようになります。

firebase: npx -y firebase-tools@latest experimental:mcp - ✓ Connected

Cline

Firebase MCP サーバーを使用するように Cline を構成するには、cline_mcp_settings.json ファイルを編集します。Cline ペインの上部にある MCP サーバー アイコンをクリックし、[MCP サーバーを構成] ボタンをクリックして、このファイルを開くか作成します。

{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "experimental:mcp"],
      "disabled": false
    }
  }
}

Cursor

Firebase MCP サーバーを使用するように Cursor を構成するには、.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 Editor

Windsurf Editor を構成するには、~/.codeium/windsurf/mcp_config.json ファイルを編集します。

"mcpServers": {
  "firebase": {
    "command": "npx",
    "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
  }
}

オプションの構成

前述の各クライアントの基本構成の他に、指定できるオプション パラメータが 2 つあります。

  • --dir ABSOLUTE_DIR_PATH: MCP サーバーのプロジェクト コンテキストを設定するための、firebase.json を含むディレクトリの絶対パス。これらを指定しなかった場合、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 サーバーの機能

次の表に、MCP サーバーで使用可能なツールを示します。この情報は、次のコマンドでも確認できます。

npx firebase-tools@latest experimental:mcp --generate-tool-list
ツール名 特徴グループ 説明
firebase_login core ユーザーを Firebase CLI と MCP サーバーにログインさせます。
firebase_logout core Firebase から CLI をログアウトします
firebase_get_project core 現在アクティブな Firebase プロジェクトに関する情報を取得します。
firebase_list_apps core 現在の Firebase プロジェクトに登録されているアプリを取得します。
firebase_get_admin_sdk_config core 現在のプロジェクトの Admin SDK 構成を取得します。
firebase_list_projects core 指定した合計数まで Firebase プロジェクトのリストを取得します。
firebase_get_sdk_config core 指定したプラットフォームの Firebase SDK 構成情報を取得します。プラットフォームまたは app_id のいずれかを指定する必要があります。
firebase_create_project core 新しい Firebase プロジェクトを作成します。
firebase_create_app core Firebase プロジェクトに、ウェブ、iOS、Android 用の新しいアプリを作成します。
firebase_create_android_sha core 既存の Android アプリに SHA 証明書ハッシュを追加します。
firebase_consult_assistant core Firebase のあらゆる側面に特化した AI アシスタントにアクセスします。このツールを使用すると、Firebase のサービス、機能、プロジェクト構成に関する詳細情報ベスト プラクティストラブルシューティングの手順コード例コンテキスト ヘルプを取得できます。これには、Firestore、Authentication、Cloud Functions、Hosting、Storage、Analytics などに関する質問が含まれます。現在の Firebase プロジェクトのコンテキストに基づいて分析情報を提供することもできます。
firebase_get_environment core 現在認証されているユーザー、プロジェクト ディレクトリ、アクティブなプロジェクトなど、現在の Firebase 環境に関する情報を取得します。
firebase_update_environment core プロジェクト ディレクトリ、アクティブなプロジェクト、アクティブなユーザー アカウントなど、Firebase の環境構成を更新します。firebase_get_environment を使用して、現在構成されている環境を確認します。
firebase_init core ワークスペース(Firestore、Data Connect、Realtime Database)で選択した Firebase 機能を初期化します。すべての機能は省略可能です。設定するプロダクトのみを指定してください。新しい機能を既存のプロジェクト ディレクトリに初期化できますが、既存の機能を再初期化すると、構成が上書きされる可能性があります。 初期化された機能をデプロイするには、firebase_init ツールの後に firebase deploy コマンドを実行します。
firestore_delete_document firestore ドキュメントの完全パスで、現在のプロジェクトのデータベースから Firestore ドキュメントを削除します。ドキュメントの正確なパスがわかっている場合に使用します。
firestore_get_documents firestore ドキュメントの完全パスで、現在のプロジェクトのデータベースから 1 つ以上の Firestore ドキュメントを取得します。ドキュメントの正確なパスがわかっている場合に使用します。
firestore_list_collections firestore 現在のプロジェクトの Firestore データベースからコレクションのリストを取得します。
firestore_query_collection firestore ドキュメントの完全パスを持つコレクションで、現在のプロジェクトのデータベース内のコレクションから 1 つ以上の Firestore ドキュメントを取得します。コレクションの正確なパスと、ドキュメントに必要なフィルタリング句がわかっている場合に使用します。
firestore_get_rules firestore 現在のプロジェクトのアクティブな Firestore セキュリティ ルールを取得します。
firestore_validate_rules firestore 指定された Firestore Rules ソースに構文エラーや検証エラーがないか確認します。検証するソースコードか、ソースファイルのパスの「いずれか」を指定します。
auth_get_user auth メールアドレス、電話番号、UID に基づいてユーザーを取得します。
auth_disable_user auth UID に基づいてユーザーを無効または有効にします。
auth_list_users auth 指定した上限までプロジェクト内のすべてのユーザーを取得します。
auth_set_claim auth 特定のユーザーのアカウントにカスタム クレームを設定します。ユーザーに関連付けられた信頼できる値を作成するために使用します(管理者としてマークするなど)。クレームのサイズは制限されているため、名前と値は簡潔にする必要があります。value パラメータまたは json_value パラメータのいずれか「1 つのみ」を指定します。
auth_set_sms_region_policy auth Firebase Auth の SMS リージョン ポリシーを設定して、国コードの許可リストまたは拒否リストに基づいてテキスト メッセージを受信できるリージョンを制限します。このポリシーを設定すると、既存のポリシーがオーバーライドされます。
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_rules ストレージ 現在のプロジェクトのアクティブな Storage セキュリティ ルールを取得します。
storage_validate_rules ストレージ 指定された Storage Rules ソースに構文エラーや検証エラーがないか確認します。検証するソースコードか、ソースファイルのパスの「いずれか」を指定します。
storage_get_object_download_url ストレージ Firebase Storage 内のオブジェクトのダウンロード URL を取得します。
messaging_send_message メッセージ Firebase Cloud Messaging 登録トークンまたはトピックにメッセージを送信します。特定の 1 回の呼び出しで指定できるのは、registration_token または topic のいずれか 1 つだけです。
remoteconfig_get_template remoteconfig プロジェクトの Remote Config テンプレートを取得します。
remoteconfig_publish_template remoteconfig プロジェクトの新しい Remote Config テンプレートを公開します。
remoteconfig_rollback_template remoteconfig プロジェクトの特定のバージョンの Remote Config テンプレートにロールバックします。
crashlytics_add_note crashlytics Crashlytics の問題にメモを追加します。
crashlytics_delete_note crashlytics Crashlytics の問題からメモを削除します。
crashlytics_get_issue_details crashlytics 特定の Crashlytics の問題に関する詳細を取得します。
crashlytics_get_sample_crash_for_issue crashlytics 問題のサンプル クラッシュを取得します。
crashlytics_list_notes crashlytics Crashlytics の問題のすべてのメモを一覧表示します。
crashlytics_list_top_devices crashlytics アプリケーションの Crashlytics の上位のデバイスを一覧表示します。
crashlytics_list_top_issues crashlytics アプリケーションで発生した Crashlytics の上位のクラッシュを列挙します。
crashlytics_list_top_operating_systems crashlytics アプリケーションの Crashlytics の上位のオペレーティング システムを一覧表示します。
crashlytics_list_top_versions crashlytics アプリケーションの Crashlytics の上位のバージョンを一覧表示します。
crashlytics_update_issue crashlytics Crashlytics の問題の状態を更新します。
apphosting_fetch_logs apphosting 指定した App Hosting バックエンドの最新のログを取得します。buildLogs を指定した場合、最新のビルドのビルドプロセスのログが返されます。最新のログが最初に表示されます。
apphosting_list_backends apphosting 現在のプロジェクトの App Hosting バックエンドのリストを取得します。リストが空の場合、バックエンドはありません。uri は、バックエンドの公開 URL です。動作中のバックエンドには、run_service エントリを含む managed_resources 配列があります。この run_service.service は、App Hosting バックエンドを提供する Cloud Run サービスのリソース名です。この名前の最後のセグメントはサービス ID です。domains は、バックエンドに関連付けられているドメインのリストです。タイプは CUSTOM または DEFAULT のいずれかです。すべてのバックエンドに DEFAULT ドメインが必要です。ドメイン リソース名の最後のパラメータは、ユーザーがバックエンドとの接続に使用する実際のドメインです。カスタム ドメインが正しく設定されている場合、ステータスの末尾は ACTIVE になります。
database_get_data データベース 指定された場所の RTDB データを返します
database_set_data データベース 指定された場所に RTDB データを書き込みます
database_get_rules データベース RTDB データベースのルールを取得します
database_validate_rules データベース RTDB データベースのルールを検証します