Firebase MCP Server
公式Firebase MCPサーバーを使用すると、AIを活用した開発ツールがFirebaseプロジェクトやアプリのコードベースと連携できるようになります。
Firebase MCPで何ができますか?
- Create and manage Firebase projects — アシスタントに依頼して、
firebase_create_projectで新しいプロジェクトを初期化するか、既存のプロジェクトやアプリを一覧表示します。 - Manage Authentication users —
auth_get_usersでユーザー詳細を取得し、auth_update_userでカスタムクレームを更新するか、アカウントを無効化します。 - Query and update Firestore or Realtime Database —
firebase_read_resourcesやデータベース関連ツールを使用して、ドキュメントの読み取り、書き込み、管理を行います。 - Debug crashes with Crashlytics —
crashlytics_get_issueとcrashlytics_list_eventsを使用して、問題の詳細を取得し、最近のクラッシュイベントを一覧表示し、メモを追加します。 - Validate and retrieve security rules —
firebase_validate_security_rulesで Firestore、Storage、または Realtime Database のルールにエラーがないか確認します。 - Monitor App Hosting backends —
apphosting_list_backendsでバックエンドを一覧表示し、apphosting_fetch_logsで最近のビルドまたはランタイムログを取得します。
ドキュメント
Firebase MCP サーバー
Firebase Model Context Protocol (MCP) サーバーは、AI を活用した開発ツールが Firebase プロジェクトやアプリのコードベースと連携できるようにします。Firebase MCP サーバーは、MCP クライアントとして動作するあらゆるツールと連携可能です。対象ツールには、Firebase Studio、Gemini CLI、Claude Code、Cline、Cursor、VS Code Copilot、Windsurf などがあります。
機能
Firebase MCP サーバーを使用するように設定されたエディターは、AI 機能を活用して以下の作業を支援します。
- Firebase プロジェクトの作成と管理 - 新規プロジェクトの初期化、既存プロジェクトの一覧表示、Firebase アプリの管理
- Firebase Authentication ユーザーの管理 - ユーザーアカウントの取得、更新、管理
- Cloud Firestore と Firebase SQL Connect の操作 - データベースドキュメントのクエリ、読み取り、書き込み、管理
- Firebase SQL Connect スキーマの取得 - AI 支援によるスキーマと操作の生成
- セキュリティルールの理解 - Firestore、Cloud Storage、Realtime Database のセキュリティルールの検証と取得
- Firebase Cloud Messaging によるメッセージ送信 - デバイスやトピックへのプッシュ通知の送信
- Crashlytics データへのアクセス - 問題のデバッグ、クラッシュレポートの表示、クラッシュ分析の管理
- App Hosting へのデプロイ - バックエンドの監視とログの取得
- Realtime Database の操作 - リアルタイムでのデータの読み取りと書き込み
- Cloud Functions ログのクエリ - 関数実行ログの取得と分析
- Remote Config の管理 - リモート設定テンプレートの取得と更新
一部のツールは Gemini in Firebase を使用して以下を支援します。
- Firebase SQL Connect スキーマと操作の生成
- Firebase 製品に関する Gemini への相談
重要: Gemini in Firebase は、もっともらしく見えるが事実と異なる出力を生成する可能性があります。Google の見解を表さない不正確な情報で応答することがあります。使用前に Gemini からのすべての出力を検証し、テストされていない生成コードを本番環境で使用しないでください。個人を特定できる情報 (PII) やユーザーデータをチャットに入力しないでください。
Gemini in Firebase とデータの使用方法 の詳細をご覧ください。
インストールとセットアップ
前提条件
Node.js と npm が動作する環境を用意してください。
基本設定
Firebase MCP サーバーは、トランスポート媒体として標準 I/O (stdio) をサポートする任意の MCP クライアントと連携できます。Firebase MCP サーバーがツール呼び出しを行う際、実行環境で Firebase CLI を認証するのと同じユーザー認証情報を使用します。
以下は、一般的な AI 支援ツールの設定手順です。
Gemini CLI
Gemini CLI 用 Firebase 拡張機能 をインストールします。
gemini extensions install https://github.com/firebase/agent-skills
Claude Code
オプション 1: プラグイン経由でインストール (推奨)
Claude Code で Firebase MCP サーバーをセットアップする最も簡単な方法は、公式 Firebase プラグインをインストールすることです。
-
Claude プラグイン用の Firebase マーケットプレイスを追加します。
claude plugin marketplace add firebase/firebase-tools -
Firebase 用 Claude プラグインをインストールします。
claude plugin install firebase@firebase -
インストールを確認します。
claude plugin
オプション 2: MCP サーバーを手動で設定
または、以下を実行して Firebase MCP サーバーを手動で設定できます。
claude mcp add firebase npx -- -y firebase-tools@latest mcp
以下を実行してインストールを確認できます。
claude mcp list
次のように表示されます。
firebase: npx -y firebase-tools@latest mcp - ✓ Connected
Cursor
プロジェクトディレクトリの .cursorrules に追加するか、Cursor 設定で構成します。
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json に追加します。
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Firebase Studio
Firebase Studio で Firebase MCP サーバーを使用するように設定するには、設定ファイル .idx/mcp.json を編集または作成します。
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
使用方法
設定が完了すると、MCP サーバーは自動的に AI アシスタントに Firebase 機能を提供します。以下のことが可能です。
- Firebase サービスのセットアップを AI に依頼
- Firestore データベースへのクエリ
- 認証ユーザーの管理
- Firebase Hosting へのデプロイ
- Crashlytics の問題のデバッグ
- その他多数
利用可能なツールとリソースの完全なリストについては、後述の サーバー機能 セクションを参照してください。
ドキュメント
詳細については、Firebase MCP サーバー公式ドキュメント をご覧ください。
サーバー機能
Firebase MCP サーバーは、ツール (アクションを実行する関数)、プロンプト (再利用可能なコマンドテンプレート)、リソース (AI モデル用のドキュメントファイル) の 3 種類の機能を提供します。
| ツール名 | 機能グループ | 説明 |
|---|---|---|
| apphosting_fetch_logs | apphosting | 指定されたApp Hostingバックエンドの最新ログを取得するために使用します。buildLogs が指定されている場合、最新ビルドのビルドプロセスからのログが返されます。最新のログが最初に表示されます。 |
| apphosting_list_backends | apphosting | 現在のプロジェクト内のApp Hostingバックエンドのリストを取得するために使用します。空のリストはバックエンドが存在しないことを意味します。uri はバックエンドの公開URLです。動作中のバックエンドには managed_resources 配列があり、その中に run_service エントリが含まれます。その run_service.service は、App Hostingバックエンドを提供するCloud Runサービスのリソース名です。その名前の最後のセグメントがサービスIDです。domains はバックエンドに関連付けられたドメインのリストです。それらは CUSTOM または DEFAULT のいずれかのタイプを持ちます。すべてのバックエンドには DEFAULT ドメインが必要です。ユーザーがバックエンドへの接続に実際に使用するドメインは、ドメインリソース名の最後のパラメータです。カスタムドメインが正しく設定されている場合、そのステータスは ACTIVE で終わります。 |
| auth_get_users | auth | UIDのリストまたはメールアドレスのリストに基づいて、1人以上のFirebase Authユーザーを取得するために使用します。 |
| auth_update_user | auth | 特定のユーザーアカウントを無効化、有効化、またはカスタムクレームを設定するために使用します。 |
| auth_set_sms_region_policy | auth | Firebase AuthenticationのSMSリージョンポリシーを設定し、国コードの許可リストまたは拒否リストに基づいてテキストメッセージを受信できるリージョンを制限するために使用します。このポリシーは、設定されると既存のポリシーを上書きします。 |
| 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、またはWebです。 |
| 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、Webのいずれかです。 |
| firebase_create_android_sha | core | 指定されたSHA証明書ハッシュを、指定されたFirebase Androidアプリに追加するために使用します。 |
| firebase_get_environment | core | Firebase CLIおよびFirebase MCPサーバーの現在のFirebase 環境設定を取得するために使用します。これには、現在認証されているユーザー、プロジェクトディレクトリ、アクティブなFirebaseプロジェクトなどが含まれます。すべてのツールでユーザー認証が必要ですが、すべての情報がすべてのツールで必須というわけではありません。どの情報が必要かについては、ツールの要件に注意してください。 |
| firebase_update_environment | core | Firebase CLIおよびFirebase MCPサーバーの環境設定(プロジェクトディレクトリ、アクティブプロジェクト、アクティブユーザーアカウント、利用規約への同意など)を更新するために使用します。現在の環境設定を確認するには、firebase_get_environment を使用してください。 |
| firebase_init | core | ワークスペースで選択したFirebaseサービス(Cloud Firestoreデータベース、Firebase SQL Connect、Firebase Realtime Database、Firebase AI Logic)を初期化するために使用します。すべてのサービスはオプションであり、セットアップしたいプロダクトのみを指定してください。既存のプロジェクトディレクトリに新機能を初期化することは可能ですが、既存の機能を再初期化すると設定が上書きされる可能性があります。初期化した機能をデプロイするには、firebase_init ツールの後に firebase deploy コマンドを実行してください。 |
| firebase_get_security_rules | core | 指定されたFirebaseサービスのセキュリティルールを取得するために使用します。そのサービスのインスタンスがプロダクト内に複数ある場合、デフォルトインスタンスのルールが返されます。 |
| firebase_read_resources | core | firebase:// リソースの内容を読み取るか、利用可能なリソースを一覧表示するために使用します。 |
| crashlytics_create_note | crashlytics | CrashlyticsのIssueにメモを追加します。 |
| crashlytics_delete_note | crashlytics | CrashlyticsのIssueからメモを削除します。 |
| crashlytics_get_issue | crashlytics | CrashlyticsのIssueデータを取得します。これはデバッグの開始点として使用できます。 |
| crashlytics_list_events | crashlytics | 指定されたフィルターに一致する最新のイベントを一覧表示するために使用します。 Issueのサンプルクラッシュや例外を取得するために使用でき、 スタックトレースやその他のデバッグに役立つデータが含まれます。 |
| crashlytics_batch_get_events | crashlytics | リソース名で特定のイベントを取得します。 Issueのサンプルクラッシュや例外を取得するために使用でき、 スタックトレースやその他のデバッグに役立つデータが含まれます。 |
| crashlytics_list_notes | crashlytics | CrashlyticsのIssueに関するすべてのメモを一覧表示するために使用します。 |
| crashlytics_update_issue | crashlytics | Crashlytics イシューの状態を更新するために使用します。 |
| realtimedatabase_get_data | realtimedatabase | Firebase Realtime Database の指定されたロケーションからデータを取得するために使用します。 |
| realtimedatabase_set_data | realtimedatabase | Firebase Realtime Database の指定されたロケーションにデータを書き込むために使用します。 |
| dataconnect_build | dataconnect | Firebase SQL Connect のスキーマ、オペレーション、コネクタをコンパイルし、ビルドエラーをチェックするために使用します。 |
| dataconnect_list_services | dataconnect | 既存のローカルおよびバックエンドの Firebase SQL Connect サービスを一覧表示するために使用します。 |
| dataconnect_execute | dataconnect | SQL Connect サービスまたはそのエミュレータに対して GraphQL オペレーションを実行するために使用します。 |
| firestore_delete_document | firestore | 完全なドキュメントパスで、現在のプロジェクトのデータベースから Firestore ドキュメントを削除するために使用します。ドキュメントの正確なパスがわかっている場合に使用します。 |
| firestore_get_documents | firestore | 完全なドキュメントパスで、現在のプロジェクトのデータベースから 1 つ以上の Firestore ドキュメントを取得するために使用します。ドキュメントの正確なパスがわかっている場合に使用します。 |
| firestore_list_collections | firestore | 現在のプロジェクトの Firestore データベースからコレクションのリストを取得するために使用します。 |
| firestore_query_collection | firestore | 完全なドキュメントパスを持つコレクションで、現在のプロジェクトのデータベース内のコレクションから 1 つ以上の Firestore ドキュメントを取得するために使用します。コレクションの正確なパスと、ドキュメントに適用するフィルタリング句がわかっている場合に使用します。 |
| functions_get_logs | functions | Google Cloud Logging の高度なフィルタを使用して、Cloud Functions のログエントリのページを取得するために使用します。 |
| functions_list_functions | functions | Firebase プロジェクトにデプロイされているすべての関数を一覧表示します。 |
| messaging_send_message | messaging | Firebase Cloud Messaging の登録トークンまたはトピックにメッセージを送信するために使用します。特定の呼び出しでは、registration_token または topic のいずれか一方のみを指定できます。 |
| remoteconfig_get_template | remoteconfig | 現在アクティブなFirebaseプロジェクトから、指定されたFirebase Remote Configテンプレートを取得するために使用します。 |
| remoteconfig_update_template | remoteconfig | プロジェクトに新しいRemote Configテンプレートを公開するか、特定のバージョンにロールバックするために使用します。 |
| storage_get_object_download_url | storage | Cloud Storage for Firebaseバケット内のオブジェクトのダウンロードURLを取得するために使用します。 |
| --------------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| firebase:deploy | core | このコマンドを使用して、リソースをFirebaseにデプロイします。 引数: <prompt> (任意): デプロイに関する具体的な指示 |
| firebase:init | core | このコマンドを使用して、バックエンドやAI機能などのFirebaseサービスをセットアップします。 |
| firestore:generate_security_rules | firestore | プロジェクト用の安全なFirebase Firestoreセキュリティルールと対応するユニットテストを生成します。 |
| storage:generate_security_rules | storage | プロジェクト用の安全なFirebase Storageセキュリティルールと対応するユニットテストを生成します。 |
| crashlytics:connect | crashlytics | このコマンドを使用して、FirebaseアプリケーションのCrashlyticsデータにアクセスします。 |
| リソース名 | 説明 |
|---|---|
| app_id_guide | Firebase App IDガイド: 現在のプロジェクトでFirebase App IDを選択する際にコーディングエージェントをガイドします |
| crashlytics_investigations_guide | Firebase Crashlytics調査ガイド: Crashlyticsの問題で報告されたバグを調査する際に、クラッシュの診断と修正手順を含め、コーディングエージェントをガイドします。 |
| crashlytics_issues_guide | Firebase Crashlytics問題ガイド: 優先順位付けルールやクラッシュの診断と修正手順を含め、Crashlyticsの問題を扱う際にコーディングエージェントをガイドします。 |
| crashlytics_reports_guide | Firebase Crashlyticsレポートガイド: 適切なフィルターの設定方法やメトリクスの理解方法を含め、Crashlyticsレポートをリクエストする際にコーディングエージェントをガイドします。エージェントはレポートをリクエストする前にこのガイドを読む必要があります。 |
| backend_init_guide | Firebaseバックエンド初期化ガイド: 現在のプロジェクトでFirebaseバックエンドサービスを設定する際にコーディングエージェントをガイドします |
| ai_init_guide | Firebase GenAI初期化ガイド: Firebaseを利用した現在のプロジェクトでGenAI機能を設定する際にコーディングエージェントをガイドします |
| firestore_init_guide | Firestore初期化ガイド: 現在のプロジェクトでFirestoreを設定する際にコーディングエージェントをガイドします |
| firestore_rules_init_guide | Firestoreルール初期化ガイド: プロジェクトでFirestoreセキュリティルールをセットアップする際にコーディングエージェントをガイドします |
| auth_init_guide | Firebase Authentication初期化ガイド: 現在のプロジェクトでFirebase Authenticationを設定する際にコーディングエージェントをガイドします |
| hosting_init_guide | Firebase Hostingデプロイガイド: 現在のプロジェクトでFirebase Hostingにデプロイする際にコーディングエージェントをガイドします |
| docs | Firebaseドキュメント: Firebaseドキュメントからプレーンテキストコンテンツを読み込みます。例: https://firebase.google.com/docs/functions は firebase://docs/functions になります |