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 が動作していることを確認します。
次のコマンドを実行して、Firebase CLI を認証します。
npx -y firebase-tools@latest login --reauth
Firebase MCP サーバーは、CLI を使用して Firebase プロジェクトの認証を処理します。MCP サーバーを使用する前に、CLI で認証する必要があります。ログインせずにサーバーを使用しようとした場合や、認証トークンの有効期限が切れている場合は、再認証を求めるエラー メッセージがサーバーに表示されます。
MCP クライアントを設定する
Firebase MCP サーバーは、転送メディアとして標準 I/O(stdio)をサポートする任意の MCP クライアントと連携できます。以下に、一般的なツールの具体的な手順を示します。
基本的な構成
Claude Desktop
Firebase MCP サーバーを使用するように Claude Desktop を構成するには、claude_desktop_config.json
ファイルを編集します。このファイルは、[Claude > 設定] メニューから開くか作成できます。[開発者] タブを選択し、[構成を編集] をクリックします。
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental:mcp"]
}
}
}
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"]
}
}
Firebase Studio
Firebase MCP サーバーを使用するように Firebase Studio を構成するには、構成ファイルを編集または作成します。
- Gemini in Firebase チャットでは
.idx/mcp.json
を使用します。 - Gemini CLI では
.gemini/settings.json
を使用します。
ファイルがまだ存在しない場合は、親ディレクトリを右クリックして [新しいファイル] を選択して作成します。ファイルに次の内容を追加します。
{
"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 サーバーの機能
ツール名 | 特徴グループ | 説明 |
---|---|---|
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_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_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 セキュリティ ルールを取得します。 |
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_list_top_issues | 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 になります。 |