Firebase MCP サーバーを使用すると、AI を搭載した開発ツールで Firebase プロジェクトとアプリのコードベースを操作できるようになります。
Firebase MCP サーバーは、Firebase Studio、Gemini CLI、Gemini Code Assist、Claude Code、Claude Desktop、Cline、Cursor、VS Code Copilot、Windsurf など、MCP クライアントとして機能できる任意のツールと連携できます。
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 に質問する
これらは一部のリストにすぎません。エディタで使用できるツールの完全なリストについては、サーバーの機能のセクションをご覧ください。
MCP クライアントを設定する
Firebase MCP サーバーは、転送メディアとして標準 I/O(stdio)をサポートする任意の MCP クライアントと連携できます。
Firebase MCP サーバーがツールを呼び出す際、そのサーバーが実行されている環境で Firebase CLI を認証するのと同じユーザー認証情報を使用します。環境に応じて、ログイン ユーザーまたはアプリケーションのデフォルト認証情報が使用されます。
始める前に
Node.js と npm が動作していることを確認します。
基本的な構成
一般的な AI アシスタント ツールで Firebase MCP サーバーを使用するための基本的な構成手順は次のとおりです。
Firebase Studio
Firebase MCP サーバーを使用するように Firebase Studio を構成するには、構成ファイル .idx/mcp.json
を編集するか、作成します。
このファイルがまだ存在しない場合は、親ディレクトリを右クリックし、[新しいファイル] を選択して作成します。ファイルに次の内容を追加します。
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Gemini CLI
Firebase MCP サーバーを使用するように Gemini CLI を設定するおすすめの方法は、Gemini CLI 用の Firebase 拡張機能をインストールすることです。
gemini extensions install https://github.com/gemini-cli-extensions/firebase/
Firebase 拡張機能をインストールすると、Firebase MCP サーバーが自動的に構成されます。また、Gemini の Firebase アプリ開発のパフォーマンスを向上させるコンテキスト ファイルも付属しています。
または、構成ファイルのいずれかを編集または作成して、Firebase MCP サーバー(Firebase 拡張機能コンテキスト ファイルではない)を使用するように Gemini CLI を構成することもできます。
- プロジェクト内:
.gemini/settings.json
- ホーム ディレクトリ内:
~/.gemini/settings.json
このファイルがまだ存在しない場合は、親ディレクトリを右クリックし、[新しいファイル] を選択して作成します。ファイルに次の内容を追加します。
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Gemini コード アシスタンス
Firebase MCP サーバーを使用するように Gemini Code Assist を設定するおすすめの方法は、Gemini CLI 用の Firebase 拡張機能をインストールすることです。
gemini extensions install https://github.com/gemini-cli-extensions/firebase/
Firebase 拡張機能をインストールすると、Firebase MCP サーバーが自動的に構成されます。また、Gemini の Firebase アプリ開発のパフォーマンスを向上させるコンテキスト ファイルも付属しています。
また、次の構成ファイルのいずれかを編集または作成して、Firebase MCP サーバー(Firebase 拡張機能コンテキスト ファイルではない)を使用するように Gemini Code Assist を構成することもできます。
- プロジェクト内:
.gemini/settings.json
- ホーム ディレクトリ内:
~/.gemini/settings.json
このファイルがまだ存在しない場合は、親ディレクトリを右クリックし、[新しいファイル] を選択して作成します。ファイルに次の内容を追加します。
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Claude
Claude Code
Firebase MCP サーバーを使用するように Claude Code を構成するには、アプリフォルダで次のコマンドを実行します。
claude mcp add firebase npx -- -y firebase-tools@latest mcp
次のコマンドを実行して、インストールを確認できます。
claude mcp list
出力は次のようになります。
firebase: npx -y firebase-tools@latest mcp - ✓ Connected
Claude Desktop
Firebase MCP サーバーを使用するように Claude Desktop を構成するには、claude_desktop_config.json
ファイルを編集します。このファイルは、[Claude > 設定] メニューから開くか作成できます。[開発者] タブを選択し、[構成を編集] をクリックします。
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Cline
Firebase MCP サーバーを使用するように Cline を構成するには、cline_mcp_settings.json
ファイルを編集します。Cline ペインの上部にある MCP サーバー アイコンをクリックし、[MCP サーバーを構成] ボタンをクリックして、このファイルを開くか作成します。
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"],
"disabled": false
}
}
}
カーソル
Firebase MCP サーバーを使用するように Cursor を構成するには、.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 Editor を構成するには、~/.codeium/windsurf/mcp_config.json
ファイルを編集します。
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "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", "mcp",
"--dir", "/Users/turing/my-project",
"--only", "auth,firestore,storage"
]
}
MCP サーバーの機能
Firebase MCP サーバーは、次の 3 つのカテゴリの MCP 機能を提供します。
プロンプト: 実行可能な事前作成済みプロンプトのライブラリ。Firebase を使用したアプリの開発と実行に最適化されています。
ツール: LLM が Firebase プロジェクトを直接操作できるようにするためのツールセット(お客様の承認が必要です)。
リソース: LLM がタスクや目標を達成するためのガイダンスやコンテキストをより多く提供するために使用することを目的としたドキュメント ファイル
プロンプト
Firebase MCP サーバーには、Firebase を使用したアプリの開発と実行に最適化された、事前作成済みのプロンプトのライブラリが付属しています。これらのプロンプトを実行して、さまざまな一般的なタスクや目標を達成できます。
次の表に、MCP サーバーで使用可能なプロンプトを示します。
MCP をサポートするほとんどの開発ツールには、これらのプロンプトを簡単に実行する方法が用意されています。たとえば、Gemini CLI では、これらのプロンプトがスラッシュ コマンドとして使用できます。
/firebase:init
Gemini CLI で /firebase:
の入力を開始すると、使用可能なコマンドのリストが表示されます。
プロンプト名 | 特徴グループ | 説明 |
---|---|---|
firebase:deploy | core | このコマンドを使用して、リソースを Firebase にデプロイします。 引数: <prompt>(省略可): デプロイについて提供する特定の指示 |
firebase:init | core | このコマンドを使用して、バックエンドや AI 機能などの Firebase サービスを設定します。 |
firebase:consult | core | このコマンドを使用すると、Firebase プラットフォームの最新の詳細なドキュメントにアクセスして Firebase Assistant に問い合わせることができます。 引数: <プロンプト>: Gemini in Firebase モデルに渡す質問 |
crashlytics:connect | crashlytics | Firebase アプリケーションの Crashlytics データにアクセスします。 |
ツール
Firebase MCP サーバーには、LLM が Firebase プロジェクトを直接操作するのに役立つ(承認が必要)ツールも用意されています。プロンプトとは異なり、これらのツールを直接呼び出すことはありません。ツール呼び出しをサポートするモデル(Gemini、Claude、GPT など)は、必要に応じてこれらのツールを自動的に呼び出して開発タスクを実行します。
次の表に、MCP サーバーで使用できるツールを示します。
ツール名 | 特徴グループ | 説明 |
---|---|---|
firebase_login | core | これを使用して、ユーザーが Firebase CLI と Firebase MCP サーバーにログインできるようにします。これには Google アカウントが必要です。Firebase プロジェクトを作成して操作するには、ログインが必要です。 |
firebase_logout | core | これを使用して、Firebase CLI と Firebase MCP サーバーからユーザーをログアウトします。 |
firebase_validate_security_rules | core | これを使用して、Firestore、Storage、Realtime Database の Firebase セキュリティ ルールに構文エラーや検証エラーがないか確認します。 |
firebase_get_project | core | これを使用して、現在アクティブな Firebase プロジェクトに関する情報を取得します。 |
firebase_list_apps | core | これを使用して、現在アクティブな Firebase プロジェクトに登録されている Firebase アプリのリストを取得します。Firebase アプリは、iOS、Android、ウェブのいずれかになります。 |
firebase_list_projects | core | これを使用して、ログインしているユーザーがアクセスできる Firebase プロジェクトのリストを取得します。 |
firebase_get_sdk_config | core | これを使用して、Firebase アプリの Firebase 構成情報を取得します。現在アクティブな Firebase プロジェクトに登録されている Firebase アプリのプラットフォームまたは Firebase アプリ ID のいずれかを指定する必要があります。 |
firebase_create_project | core | これを使用して、新しい Firebase プロジェクトを作成します。 |
firebase_create_app | core | これを使用して、現在アクティブな Firebase プロジェクトに新しい Firebase アプリを作成します。Firebase アプリは、iOS、Android、ウェブのいずれかになります。 |
firebase_create_android_sha | core | これを使用して、指定した SHA 証明書ハッシュを指定した Firebase Android アプリに追加します。 |
firebase_get_environment | core | これを使用して、現在の認証済みユーザー、プロジェクト ディレクトリ、アクティブな Firebase プロジェクトなど、Firebase CLI と Firebase MCP サーバーの現在の Firebase 環境構成を取得します。 |
firebase_update_environment | core | これを使用して、プロジェクト ディレクトリ、アクティブなプロジェクト、アクティブなユーザー アカウント、利用規約への同意など、Firebase CLI と Firebase MCP サーバーの環境構成を更新します。firebase_get_environment を使用して、現在構成されている環境を確認します。 |
firebase_init | core | これを使用して、ワークスペース(Cloud Firestore データベース、Firebase Data Connect、Firebase Realtime Database、Firebase AI Logic)で選択した Firebase サービスを初期化します。すべてのサービスは省略可能です。設定するプロダクトのみを指定してください。新しい機能を既存のプロジェクト ディレクトリに初期化できますが、既存の機能を再初期化すると、構成が上書きされる可能性があります。 初期化された機能をデプロイするには、firebase_init ツールの後に firebase deploy コマンドを実行します。 |
firebase_get_security_rules | core | これを使用して、指定された Firebase サービスのセキュリティ ルールを取得します。プロダクトにそのサービスのインスタンスが複数ある場合は、デフォルトのインスタンスのルールが返されます。 |
firebase_read_resources | core | firebase:// リソースの内容を読み取るか、使用可能なリソースを一覧表示するために使用します。 |
firestore_delete_document | firestore | ドキュメントの完全パスで、現在のプロジェクトのデータベースから Firestore ドキュメントを削除します。ドキュメントの正確なパスがわかっている場合に使用します。 |
firestore_get_documents | firestore | これを使用して、ドキュメントの完全パスで、現在のプロジェクトのデータベースから 1 つ以上の Firestore ドキュメントを取得します。ドキュメントの正確なパスがわかっている場合に使用します。 |
firestore_list_collections | firestore | これを使用して、現在のプロジェクトの Firestore データベースからコレクションのリストを取得します。 |
firestore_query_collection | firestore | ドキュメントの完全パスを持つコレクションで、現在のプロジェクトのデータベース内のコレクションから 1 つ以上の Firestore ドキュメントを取得します。コレクションの正確なパスと、ドキュメントに必要なフィルタリング句がわかっている場合に使用します。 |
auth_get_users | auth | これを使用して、UID のリストまたはメールアドレスのリストに基づいて 1 人以上の Firebase Auth ユーザーを取得します。 |
auth_update_user | auth | このメソッドを使用して、特定のユーザーのアカウントでカスタム クレームを無効、有効、または設定します。 |
auth_set_sms_region_policy | auth | これを使用して、Firebase Authentication の 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_object_download_url | storage | これを使用して、Cloud Storage for Firebase バケット内のオブジェクトのダウンロード URL を取得します。 |
messaging_send_message | メッセージング | Firebase Cloud Messaging 登録トークンまたはトピックにメッセージを送信するために使用します。特定の 1 回の呼び出しで指定できるのは、registration_token または topic のいずれか 1 つだけです。 |
functions_get_logs | 関数 | これは、Google Cloud Logging の高度なフィルタを使用して Cloud Functions ログエントリのページを取得するために使用します。 |
remoteconfig_get_template | remoteconfig | これを使用して、現在アクティブな Firebase プロジェクトから指定された Firebase Remote Config テンプレートを取得します。 |
remoteconfig_update_template | remoteconfig | これを使用して、新しい Remote Config テンプレートを公開するか、プロジェクトの特定のバージョンにロールバックします。 |
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 は、バックエンドの公開 URL です。動作中のバックエンドには、run_service エントリを含む managed_resources 配列があります。この run_service.service は、App Hosting バックエンドを提供する Cloud Run サービスのリソース名です。この名前の最後のセグメントはサービス ID です。domains は、バックエンドに関連付けられているドメインのリストです。タイプは CUSTOM または DEFAULT のいずれかです。すべてのバックエンドに DEFAULT ドメインが必要です。ドメイン リソース名の最後のパラメータは、ユーザーがバックエンドとの接続に使用する実際のドメインです。カスタム ドメインが正しく設定されている場合、ステータスの末尾は ACTIVE になります。 |
realtimedatabase_get_data | realtimedatabase | Firebase Realtime Database の指定された場所からデータを取得するために使用します。 |
realtimedatabase_set_data | realtimedatabase | これを使用して、Firebase Realtime Database の指定された場所にデータを書き込みます。 |
リソース
MCP サーバーは、LLM で使用することを目的としたドキュメント ファイルであるリソースを提供します。リソースの使用をサポートするモデルは、関連するリソースをセッション コンテキストに自動的に含めます。
次の表に、MCP サーバーが使用可能にするリソースを示します。
リソース名 | 説明 |
---|---|
backend_init_guide | Firebase バックエンド初期化ガイド: 現在のプロジェクトで Firebase バックエンド サービスを構成する手順をコーディング エージェントに説明します。 |
ai_init_guide | Firebase GenAI 初期設定ガイド: Firebase を利用して現在のプロジェクトで GenAI 機能を構成する手順をコーディング エージェントに説明します |
data_connect_init_guide | Firebase Data Connect 初期設定ガイド: 現在のプロジェクトで PostgreSQL アクセス用に Data Connect を構成する手順をコーディング エージェントに説明します |
firestore_init_guide | Firestore 初期化ガイド: 現在のプロジェクトで Firestore を構成する手順をコーディング エージェントに示します |
firestore_rules_init_guide | Firestore Rules Init Guide: プロジェクトで Firestore セキュリティ ルールを設定する手順をコーディング エージェントに案内します |
rtdb_init_guide | Firebase Realtime Database の初期化ガイド: 現在のプロジェクトで Realtime Database を構成するようコーディング エージェントに指示します |
auth_init_guide | Firebase Authentication の初期化ガイド: 現在のプロジェクトで Firebase Authentication を構成する手順をコーディング エージェントに案内します |
hosting_init_guide | Firebase Hosting デプロイガイド: 現在のプロジェクトで Firebase Hosting にデプロイする手順をコーディング エージェントに示します |
ドキュメント | Firebase Docs: Firebase ドキュメントからプレーン テキスト コンテンツを読み込みます(例: https://firebase.google.com/docs/functions が firebase://docs/functions になります)。 |