The Firebase Model Context Protocol (MCP) Server gives AI-powered development tools the ability to work with your Firebase projects and your app's codebase. The Firebase MCP server works with any tool that can act as an MCP client, including: Firebase Studio, Gemini CLI, Claude Code, Cline, Cursor, VS Code Copilot, Windsurf, and more!
An editor configured to use the Firebase MCP server can use its AI capabilities to help you:
- Create and manage Firebase projects - Initialize new projects, list existing ones, and manage Firebase apps
- Manage Firebase Authentication users - Retrieve, update, and manage user accounts
- Work with Cloud Firestore and Firebase SQL Connect - Query, read, write, and manage database documents
- Retrieve Firebase SQL Connect schemas - Generate schemas and operations with AI assistance
- Understand security rules - Validate and retrieve security rules for Firestore, Cloud Storage, and Realtime Database
- Send messages with Firebase Cloud Messaging - Send push notifications to devices and topics
- Access Crashlytics data - Debug issues, view crash reports, and manage crash analytics
- Deploy to App Hosting - Monitor backends and retrieve logs
- Work with Realtime Database - Read and write data in real-time
- Query Cloud Functions logs - Retrieve and analyze function execution logs
- Manage Remote Config - Get and update remote configuration templates
Some tools use Gemini in Firebase to help you:
- Generate Firebase SQL Connect schema and operations
- Consult Gemini about Firebase products
Important: Gemini in Firebase can generate output that seems plausible but is factually incorrect. It may respond with inaccurate information that doesn't represent Google's views. Validate all output from Gemini before you use it and don't use untested generated code in production. Don't enter personally-identifiable information (PII) or user data into the chat.
Learn more about Gemini in Firebase and how it uses your data.
Make sure you have a working installation of Node.js and npm.
The Firebase MCP server can work with any MCP client that supports standard I/O (stdio) as the transport medium. When the Firebase MCP server makes tool calls, it uses the same user credentials that authorize the Firebase CLI in the environment where it's running.
Here are configuration instructions for popular AI-assistive tools:
Install the Firebase extension for Gemini CLI:
gemini extensions install https://github.com/firebase/agent-skillsThe easiest way to set up the Firebase MCP server in Claude Code is to install the official Firebase plugin:
-
Add the Firebase marketplace for Claude plugins:
claude plugin marketplace add firebase/firebase-tools
-
Install the Claude plugin for Firebase:
claude plugin install firebase@firebase
-
Verify the installation:
claude plugin
Alternatively, you can manually configure the Firebase MCP server by running:
claude mcp add firebase npx -- -y firebase-tools@latest mcpYou can verify the installation by running:
claude mcp listIt should show:
firebase: npx -y firebase-tools@latest mcp - ✓ Connected
Add to .cursorrules in your project directory or configure in Cursor settings:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}To configure Firebase Studio to use the Firebase MCP server, edit or create the configuration file: .idx/mcp.json
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}Once configured, the MCP server will automatically provide Firebase capabilities to your AI assistant. You can:
- Ask the AI to help set up Firebase services
- Query your Firestore database
- Manage authentication users
- Deploy to Firebase Hosting
- Debug Crashlytics issues
- And much more!
For a complete list of available tools and resources, see the Server Capabilities section below.
For more information, visit the official Firebase MCP server documentation.
The Firebase MCP server provides three types of capabilities: Tools (functions that perform actions), Prompts (reusable command templates), and Resources (documentation files for AI models).
| Tool Name | Feature Group | Description |
|---|---|---|
| apphosting_fetch_logs | apphosting | Fetch recent service or build logs for an App Hosting backend. |
| apphosting_list_backends | apphosting | List App Hosting backends, traffic configurations, and custom domains in your project. |
| auth_get_users | auth | Retrieve Firebase Auth users by UID, email, phone number, or list all users. |
| auth_update_user | auth | Update a user's account by enabling/disabling it or setting custom claims. |
| auth_set_sms_region_policy | auth | Set an SMS region policy allowing or denying specific country codes for Firebase Authentication. |
| firebase_login | core | Sign the user into the Firebase CLI and MCP server or check current authentication status. |
| firebase_logout | core | Sign the user out of the Firebase CLI and MCP server. |
| firebase_validate_security_rules | core | Validate syntax and check for errors in Firestore, Storage, or Realtime Database security rules. |
| firebase_get_project | core | Retrieve metadata and configuration details for the currently active Firebase project. |
| firebase_list_apps | core | List all Firebase apps registered in the active project. |
| firebase_list_projects | core | List Firebase projects accessible by the authenticated user. |
| firebase_get_sdk_config | core | Retrieve SDK configuration details or config file contents for a registered Firebase app. |
| firebase_create_project | core | Create a new Firebase project or enable Firebase services on an existing Google Cloud project. |
| firebase_create_app | core | Create a new iOS, Android, or Web app in the active Firebase project. |
| firebase_create_android_sha | core | Add a SHA-1 or SHA-256 certificate hash to an Android app in the active Firebase project. |
| firebase_get_environment | core | Retrieve the current Firebase CLI and MCP environment configuration, active project, and authenticated user. |
| firebase_update_environment | core | Update environment settings such as project directory, active project, or active user account. |
| firebase_init | core | Initialize and configure Firebase services in your local project workspace. |
| firebase_get_security_rules | core | Retrieve the active security rules for Firestore, Storage, or Realtime Database. |
| firebase_read_resources | core | Read the contents of internal firebase:// documentation resources or list all available resources. |
| crashlytics_create_note | crashlytics | Add a note to a Crashlytics issue for an Android or iOS app. |
| crashlytics_delete_note | crashlytics | Delete a note from a Crashlytics issue for an Android or iOS app. |
| crashlytics_get_issue | crashlytics | Retrieve details and metadata for a specific Crashlytics issue. |
| crashlytics_list_events | crashlytics | List recent crash and exception events matching specified filters for an issue. |
| crashlytics_batch_get_events | crashlytics | Retrieve sample crash and exception events by resource name for debugging. |
| crashlytics_list_notes | crashlytics | List all notes attached to a Crashlytics issue for an Android or iOS app. |
| crashlytics_get_report | crashlytics | Generate aggregated numerical reports for Crashlytics issues and events. |
| crashlytics_update_issue | crashlytics | Update the state (OPEN or CLOSED) of a Crashlytics issue. |
| realtimedatabase_get_data | realtimedatabase | Read data from a specified path in the Firebase Realtime Database. |
| realtimedatabase_set_data | realtimedatabase | Write JSON data to a specified path in the Firebase Realtime Database. |
| dataconnect_build | dataconnect | Compile Firebase SQL Connect schemas, operations, and connectors to validate syntax and types. |
| dataconnect_list_services | dataconnect | List local and deployed Firebase SQL Connect services, schemas, and connectors. |
| dataconnect_execute | dataconnect | Execute a GraphQL query or mutation against a Firebase SQL Connect service or emulator. |
| firestore_delete_document | firestore | Use this to delete Firestore documents from a database in the current project by full document paths. Use this if you know the exact path of a document. |
| firestore_get_documents | firestore | Use this to retrieve one or more Firestore documents from a database in the current project by full document paths. Use this if you know the exact path of a document. |
| firestore_list_collections | firestore | Use this to retrieve a list of collections from a Firestore database in the current project. |
| firestore_query_collection | firestore | Query Firestore documents from a collection with optional filters and ordering. |
| functions_get_logs | functions | Retrieve and filter Cloud Functions log entries from Google Cloud Logging. |
| functions_list_functions | functions | List all deployed Cloud Functions in your Firebase project. |
| messaging_send_message | messaging | Send a Firebase Cloud Messaging push notification to a device registration token or topic. |
| remoteconfig_get_template | remoteconfig | Retrieve the active or specified version of the Firebase Remote Config template. |
| remoteconfig_update_template | remoteconfig | Publish a new Firebase Remote Config template or rollback to a previous version. |
| storage_get_object_download_url | storage | Retrieve the download URL for an object in a Cloud Storage bucket. |
| Prompt Name | Feature Group | Description |
|---|---|---|
| firebase:deploy | core | Use this command to deploy resources to Firebase. Arguments: <prompt> (optional): any specific instructions you wish to provide about deploying |
| firebase:init | core | Use this command to set up Firebase services, like backend and AI features. |
| firestore:generate_security_rules | firestore | Generate secure Firebase Firestore Security Rules and corresponding unit tests for your project. |
| storage:generate_security_rules | storage | Generate secure Firebase Storage Security Rules and corresponding unit tests for your project. |
| crashlytics:connect | crashlytics | Use this command to access a Firebase application's Crashlytics data. |
| Resource Name | Description |
|---|---|
| app_id_guide | Firebase App Id Guide: guides the coding agent through choosing a Firebase App ID in the current project |
| crashlytics_investigations_guide | Firebase Crashlytics Investigations Guide: Guides the coding agent when investigating bugs reported in Crashlytics issues, including procedures for diagnosing and fixing crashes. |
| crashlytics_issues_guide | Firebase Crashlytics Issues Guide: Guides the coding agent when working with Crashlytics issues, including prioritization rules and procedures for diagnosing and fixing crashes. |
| crashlytics_reports_guide | Firebase Crashlytics Reports Guide: Guides the coding agent through requesting Crashlytics reports, including setting appropriate filters and how to understand the metrics. The agent should read this guide before requesting any report. |
| backend_init_guide | Firebase Backend Init Guide: guides the coding agent through configuring Firebase backend services in the current project |
| ai_init_guide | Firebase GenAI Init Guide: guides the coding agent through configuring GenAI capabilities in the current project utilizing Firebase |
| firestore_init_guide | Firestore Init Guide: guides the coding agent through configuring Firestore in the current project |
| firestore_rules_init_guide | Firestore Rules Init Guide: guides the coding agent through setting up Firestore security rules in the project |
| auth_init_guide | Firebase Authentication Init Guide: guides the coding agent through configuring Firebase Authentication in the current project |
| hosting_init_guide | Firebase Hosting Deployment Guide: guides the coding agent through deploying to Firebase Hosting in the current project |
| docs | Firebase Docs: loads plain text content from Firebase documentation, e.g. https://firebase.google.com/docs/functions becomes firebase://docs/functions |