icon for mcp server

Firebase

STDIOOfficial

Interactive Firebase project management server for AI-assisted development environments

Firebase MCP Server

[!NOTE]
The Firebase MCP Server is considered experimental and subject to breaking changes in minor version updates of the Firebase CLI.

The Firebase MCP Server provides tools to interact with Firebase project resources in compatible AI-assisted development environments.

Usage

The Firebase MCP server uses the Firebase CLI for authentication and project selection. You will usually want to start the server with a specific target directory as an argument to serve as the "project folder" where your firebase.json is or will be.

For global clients that don't operate within a specific workspace, the Firebase MCP Server makes tools available to read and write a project directory.

Client Configuration

If you are using an MCP client that is configured with a JSON, the following example configuration should help you get started:

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

Authentication

The Firebase MCP Server shares authentication with the Firebase CLI. If you've never used the Firebase CLI before, you'll need to login:

npx -y firebase-tools login

Command Line Options

  • --dir <absolute_dir_path>: The absolute path of a directory containing firebase.json (or where you want to initialize firebase.json) to set a workspace context for the MCP server. If unspecified, the working directory where the server is started is used. The {get|update}_project_environment can be used to interactively change the project directory.
  • --only <feature1,feature2>: A comma-separated list of feature groups to activate. Use this to limit the tools exposed to only features you are actively using.

Tools

Tool NameFeature GroupDescription
firebase_get_projectcoreRetrieves information about the currently active Firebase project.
firebase_list_appscoreRetrieves apps registered in the current Firebase project.
firebase_get_admin_sdk_configcoreGets the Admin SDK config for the current project.
firebase_list_projectscoreRetrieves a list of Firebase projects up to the specified total count.
firebase_get_sdk_configcoreRetrieves the Firebase SDK configuration information for the specified platform. You must specify either a platform or an app_id.
firebase_create_projectcoreCreates a new Firebase project.
firebase_create_appcoreCreates a new app in your Firebase project for Web, iOS, or Android.
firebase_create_android_shacoreAdds a SHA certificate hash to an existing Android app.
firebase_consult_assistantcoreSend a question to an AI assistant specifically enhanced to answer Firebase questions.
firebase_get_environmentcoreRetrieves information about the current Firebase environment including current authenticated user, project directory, active project, and more.
firebase_update_environmentcoreUpdates Firebase environment config such as project directory, active project, active user account, and more. Use firebase_get_environment to see the currently configured environment.
firebase_initcoreInitializes selected Firebase features in the workspace (Firestore, Data Connect, Realtime Database). All features are optional; provide only the products you wish to set up. You can initialize new features into an existing project directory, but re-initializing an existing feature may overwrite configuration. To deploy the initialized features, run the firebase deploy command after firebase_init tool.
firestore_delete_documentfirestoreDeletes a 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_documentsfirestoreRetrieves 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_collectionsfirestoreRetrieves a list of collections from a Firestore database in the current project.
firestore_query_collectionfirestoreRetrieves one or more Firestore documents from a collection is a database in the current project by a collection with a full document path. Use this if you know the exact path of a collection and the filtering clause you would like for the document.
firestore_get_rulesfirestoreRetrieves the active Firestore security rules for the current project.
firestore_validate_rulesfirestoreChecks the provided Firestore Rules source for syntax and validation errors. Provide EITHER the source code to validate OR a path to a source file.
auth_get_userauthRetrieves a user based on an email address, phone number, or UID.
auth_disable_userauthDisables or enables a user based on a UID.
auth_list_usersauthRetrieves all users in the project up to the specified limit.
auth_set_claimauthSets a custom claim on a specific user's account. Use to create trusted values associated with a user e.g. marking them as an admin. Claims are limited in size and should be succinct in name and value. Specify ONLY ONE OF value or json_value parameters.
auth_set_sms_region_policyauthSets an SMS Region Policy for Firebase Auth to restrict the regions which can receive text messages based on an ALLOW or DENY list of country codes. This policy will override any existing policies when set.
dataconnect_list_servicesdataconnectList the Firebase Data Connect services available in the current project.
dataconnect_generate_schemadataconnectGenerates a Firebase Data Connect Schema based on the users description of an app.
dataconnect_generate_operationdataconnectGenerates a single Firebase Data Connect query or mutation based on the currently deployed schema and the provided prompt.
dataconnect_get_schemadataconnectRetrieve information about the Firebase Data Connect Schema in the project, including Cloud SQL data sources and the GraphQL Schema describing the data model.
dataconnect_get_connectorsdataconnectGet the Firebase Data Connect Connectors in the project, which includes the pre-defined GraphQL queries accessible to client SDKs.
dataconnect_execute_graphqldataconnectExecutes an arbitrary GraphQL against a Data Connect service or its emulator.
dataconnect_execute_graphql_readdataconnectExecutes an arbitrary GraphQL query against a Data Connect service or its emulator. Cannot write data.
dataconnect_execute_mutationdataconnectExecutes a deployed Data Connect mutation against a service or its emulator. Can read and write data.
dataconnect_execute_querydataconnectExecutes a deployed Data Connect query against a service or its emulator. Cannot write any data.
storage_get_rulesstorageRetrieves the active Storage security rules for the current project.
storage_validate_rulesstorageChecks the provided Storage Rules source for syntax and validation errors. Provide EITHER the source code to validate OR a path to a source file.
storage_get_object_download_urlstorageRetrieves the download URL for an object in Firebase Storage.
messaging_send_messagemessagingSends a message to a Firebase Cloud Messaging registration token or topic. ONLY ONE of registration_token or topic may be supplied in a specific call.
remoteconfig_get_templateremoteconfigRetrieves a remote config template for the project
remoteconfig_publish_templateremoteconfigPublishes a new remote config template for the project
remoteconfig_rollback_templateremoteconfigRollback to a specific version of Remote Config template for a project
crashlytics_list_top_issuescrashlyticsList the top crashes from crashlytics happening in the application.
apphosting_fetch_logsapphostingFetches the most recent logs for a specified App Hosting backend. If buildLogs is specified, the logs from the build process for the latest build are returned. The most recent logs are listed first.
apphosting_list_backendsapphostingRetrieves a list of App Hosting backends in the current project. An empty list means that there are no backends. The uri is the public URL of the backend. A working backend will have a managed_resources array that will contain a run_service entry. That run_service.service is the resource name of the Cloud Run service serving the App Hosting backend. The last segment of that name is the service ID. domains is the list of domains that are associated with the backend. They either have type CUSTOM or DEFAULT. Every backend should have a DEFAULT domain. The actual domain that a user would use to conenct to the backend is the last parameter of the domain resource name. If a custom domain is correctly set up, it will have statuses ending in ACTIVE.

Be the First to Experience MCP Now