firebase/firebase-tools

DevOps & Self-hosting

Command line for deploying and managing Firebase projects, including a local emulator suite and an official MCP server.

4,481
1,274
TypeScript
MIT
12 years old

Adopt it if you already run projects on Firebase and want deploys, local emulation and project administration from one command instead of the web console. Skip it if you want a framework-agnostic backend or refuse to depend on Google Cloud.

The problem

A Firebase project usually spans Hosting, Auth, Firestore and Realtime Database, plus apps registered in the console. Without a CLI, each change means clicking through the web console, and matching a staging project to production by hand. The CLI collapses this into a project directory: authenticate once, select the project, then deploy code and assets, serve Hosting locally, and query or import data. The result is a repeatable workflow you can script and share with teammates, rather than a manual sequence of console steps.

What's different

The distinguishing piece is local emulation. emulators:exec starts the Firebase emulators, runs a test script, then shuts them down, which lets test runs exercise Firebase services without touching the real project. The same tool covers admin work beyond deploys: creating apps, listing registered apps, printing SDK config, importing and exporting Auth accounts, and recursive deletion of Firestore documents or collections. Project-specific commands expect either a directory with an active project alias or an explicit -P <project_id> flag, so you can keep several environments side by side.

The repository also hosts the official Firebase MCP Server, which lets an AI assistant drive Firebase operations. The README points to separate documentation for it, and the install path differs from the plain CLI: there is an MCP install link for Cursor, while the CLI itself is installed via npm or a standalone binary. The trade-off is that Firebase Tools assumes Firebase as the backend; if your services live elsewhere, the deployment and emulation commands do not apply to you.

Who should try it

Good fit: a team running a web or mobile app on Firebase that wants deploys and emulator-backed tests from laptops and CI, and admins who regularly import/export Auth users or clean Firestore data. Also a fit if you want an AI coding assistant to perform Firebase tasks through the official MCP server. Poor fit: projects on self-hosted or non-Google infrastructure, or anyone wanting a CLI that manages multiple cloud providers uniformly. If you use an AI assistant but not MCP, the README describes installing Firebase agent skills with npx skills add firebase/agent-skills as a separate path, so the assistant route is not limited to the MCP server.

Requirements and limitations

You need Node.js and npm for the npm install, or a shell for the standalone binary install; the standalone route avoids managing a global Node package. login requires access to a web browser, which matters on headless servers and in CI, and project-specific commands require a project alias or the -P flag. The README's command list is explicitly brief and points to the Firebase CLI documentation for details, so expect to consult the docs for less common commands rather than rely on the README.

Ongoing upkeep means keeping the CLI and emulators updated alongside Firebase service changes, and being careful with destructive commands such as firestore:delete on real projects. The MCP server has its own documentation in the repository, so treat it as a separately maintained surface whose behavior may change independently of the core CLI.

HotRepo's take

HotRepo only began tracking this repository on 2026-10-24, recording 4,481 stars on that date and 4,481 the next day with a +1 gain, across two days on the daily board. That is far too little to judge momentum, and the repository's 2013 creation date plus star count say nothing about current maintenance. Verify that the emulator commands cover the Firebase services your project actually uses before building test scripts around them.

Written by AI from the project's README, updated October 25, 2026. The project's own docs are the source of truth.