{"_id":"@renzo.johnson/firebase-mcp","_rev":"4-6ab71294d963793e26cb7b0509fd3e1e","name":"@renzo.johnson/firebase-mcp","dist-tags":{"latest":"26.11.15"},"versions":{"26.11.14":{"name":"@renzo.johnson/firebase-mcp","version":"26.11.14","keywords":["MCP","MCP server","Model Context Protocol","Firebase","Firebase MCP","Firestore","Firebase Auth","Firebase Admin","NoSQL","AI","Claude","Copilot","Cursor","Codex","Gemini","mcp-server","modelcontextprotocol"],"author":{"url":"https://renzojohnson.com","name":"Renzo Johnson"},"license":"MIT","_id":"@renzo.johnson/firebase-mcp@26.11.14","maintainers":[{"name":"renzo.johnson","email":"renzo.johnson@gmail.com"}],"homepage":"https://renzojohnson.com/contributions/firebase-mcp","bugs":{"url":"https://renzojohnson.com/contact"},"bin":{"firebase-mcp":"dist/server.js"},"dist":{"shasum":"991dc8332d5be82886b6146614af1e8454fbffae","tarball":"https://registry.npmjs.org/@renzo.johnson/firebase-mcp/-/firebase-mcp-26.11.14.tgz","fileCount":4,"integrity":"sha512-lTKElxiBlgMf9LhLxMEpbNjHz888fc3v8GXQLU7xLcPIkrDkla/zhV9kvt9rxMkl885bNodUdPoZBlJmbP69mg==","signatures":[{"sig":"MEQCIEbnzWxoYK03HvDRYicjMDoNLh2pDSOP/KNy6t6u0q08AiBTJ5oXBcwr4ubx0OrxbQa1LUjipZ3utuuTmjiLCuK53A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIERlZ8kdUxGzAL9Mg3ZOt1ZyWsnc19BfAcDXQsATQwDvAiBa0RKcmCbsEmWTDeg2AvNYxrt51ePu+wV6oO449gSSig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4177260},"_from":"file:/srv/www/projects/firebase-mcp/npm/renzo.johnson-firebase-mcp-26.11.14.tgz","engines":{"node":">=22"},"mcpName":"com.renzojohnson/firebase-mcp","_npmUser":{"name":"renzo.johnson","email":"renzo.johnson@gmail.com"},"_resolved":"/srv/www/projects/firebase-mcp/npm/renzo.johnson-firebase-mcp-26.11.14.tgz","_integrity":"sha512-lTKElxiBlgMf9LhLxMEpbNjHz888fc3v8GXQLU7xLcPIkrDkla/zhV9kvt9rxMkl885bNodUdPoZBlJmbP69mg==","_npmVersion":"12.2.2","description":"Firebase MCP server for Claude Code, Cursor, Copilot and five more AI agents.","directories":{},"_nodeVersion":"26.13.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/firebase-mcp_26.11.14_1794530657467_0.04135405396369041","host":"s3://npm-registry-packages-npm-production"}},"26.11.15":{"_id":"@renzo.johnson/firebase-mcp@26.11.15","bin":{"firebase-mcp":"dist/server.js"},"bugs":{"url":"https://renzojohnson.com/contact"},"dist":{"shasum":"cc99b4436636d2ae667eadcc1024932bf6b0c020","tarball":"https://registry.npmjs.org/@renzo.johnson/firebase-mcp/-/firebase-mcp-26.11.15.tgz","fileCount":4,"integrity":"sha512-YhklePWxs9Doc99pHauXlEI7LsZ6Wm4L3h+Jo1dMGf/PxrS6NgWuiR49y83DiKGjJWe+iD+vlWHFhEryDvEgMw==","signatures":[{"sig":"MEUCIAbWF2g3CxZjdCnt16hfqfY4VPx6W8gM/ngQ37BN8jkFAiEA+IZjDjYQQyVErkepvm7StJdO4h/CwburUrPtCIyWqVY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDLMs9lLVARVbYM39pFiXK7aDizusBxkawhls5PX80pTAIhAIKb+xF4Sv51/u0Go695E+W/4kQS5dAKLqBT7mLcwUIl"}],"unpackedSize":4177297},"name":"@renzo.johnson/firebase-mcp","_from":"file:firebase-mcp-26.11.15.tgz","author":{"url":"https://renzojohnson.com","name":"Renzo Johnson"},"engines":{"node":">=22"},"license":"MIT","mcpName":"com.renzojohnson/firebase-mcp","version":"26.11.15","_npmUser":{"name":"renzo.johnson","email":"renzo.johnson@gmail.com"},"homepage":"https://renzojohnson.com/contributions/firebase-mcp","keywords":["MCP","MCP server","Model Context Protocol","Firebase","Firebase MCP","Firestore","Firebase Auth","Firebase Admin","NoSQL","AI","Claude","Copilot","Cursor","Codex","Gemini","mcp-server","modelcontextprotocol"],"_resolved":"/private/tmp/mcprush-claims/firebase-mcp-26.11.15.tgz","_integrity":"sha512-YhklePWxs9Doc99pHauXlEI7LsZ6Wm4L3h+Jo1dMGf/PxrS6NgWuiR49y83DiKGjJWe+iD+vlWHFhEryDvEgMw==","_npmVersion":"11.12.1","description":"Firebase MCP server for Claude Code, Cursor, Copilot and five more AI agents. mcprush.com-bea9c94c1cc9f6dd34244b94","directories":{},"maintainers":[{"name":"renzo.johnson","email":"renzo.johnson@gmail.com"}],"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/firebase-mcp_26.11.15_1794753670908_0.056582590672882516"}}},"time":{"created":"2026-11-13T00:41:07.632Z","modified":"2026-11-15T14:41:11.211Z","0.0.0-stage":"2026-11-13T00:41:07.632Z","26.11.14":"2026-11-13T00:44:17.597Z","26.11.15":"2026-11-15T14:41:11.032Z"},"bugs":{"url":"https://renzojohnson.com/contact"},"author":{"url":"https://renzojohnson.com","name":"Renzo Johnson"},"license":"MIT","homepage":"https://renzojohnson.com/contributions/firebase-mcp","keywords":["MCP","MCP server","Model Context Protocol","Firebase","Firebase MCP","Firestore","Firebase Auth","Firebase Admin","NoSQL","AI","Claude","Copilot","Cursor","Codex","Gemini","mcp-server","modelcontextprotocol"],"description":"Firebase MCP server for Claude Code, Cursor, Copilot and five more AI agents. mcprush.com-bea9c94c1cc9f6dd34244b94","maintainers":[{"name":"renzo.johnson","email":"renzo.johnson@gmail.com"}],"readme":"# Firebase MCP\n\n[![npm](https://img.shields.io/npm/v/@renzo.johnson/firebase-mcp?label=npm&color=red)](https://www.npmjs.com/package/@renzo.johnson/firebase-mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n**Firebase MCP server for Claude Code, Cursor, Copilot and five more AI agents.** This is the MCP server from the Firebase MCP VS Code extension, packaged to run with `npx` in any MCP client.\n\nRequires Node.js 22 or newer.\n\n```bash\nnpx -y @renzo.johnson/firebase-mcp\n```\n\nThe server speaks MCP over stdio, so you normally let your AI agent start it, as below.\n\n## Claude Code\n\n```bash\nclaude mcp add firebase-mcp -- npx -y @renzo.johnson/firebase-mcp\n```\n\nOr add it to `.mcp.json` in your project (or `~/.claude.json` for every project):\n\n```json\n{\n  \"mcpServers\": {\n    \"firebase-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@renzo.johnson/firebase-mcp\"],\n      \"env\": {\n        \"GOOGLE_APPLICATION_CREDENTIALS\": \"/path/to/service-account.json\"\n      }\n    }\n  }\n}\n```\n\n## Cursor\n\nAdd the same block to `~/.cursor/mcp.json` (or `.cursor/mcp.json` in a project):\n\n```json\n{\n  \"mcpServers\": {\n    \"firebase-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@renzo.johnson/firebase-mcp\"],\n      \"env\": {\n        \"GOOGLE_APPLICATION_CREDENTIALS\": \"/path/to/service-account.json\"\n      }\n    }\n  }\n}\n```\n\n## Credentials\n\nThe server signs in to Google in this order:\n\n| Option | Environment | Best for |\n|--------|-------------|----------|\n| **OAuth user** | `GOOGLE_OAUTH_CLIENT_ID`, `GOOGLE_OAUTH_CLIENT_SECRET`, `GOOGLE_OAUTH_REFRESH_TOKEN` (all three) | Personal Google accounts |\n| **Service account or saved credentials** | `GOOGLE_APPLICATION_CREDENTIALS` = path to a JSON key | Servers, Workspace admins |\n| **gcloud** | none: run `gcloud auth application-default login` once | Developers with the Google Cloud CLI |\n\nSetting only some of the three OAuth variables stops the server with an error that names the missing ones. Enable the Cloud Firestore API and the Identity Toolkit API in your Google Cloud project.\n\nOptional settings:\n\n| Variable | What it does |\n|----------|--------------|\n| `FIREBASE_MCP_PROJECT_ID` | Firebase project ID used when a request does not name one |\n\nSet **firebaseMcp.projectId** to your Firebase project ID, or pass `project_id` in a request. A service account key from **Project settings** > **Service accounts** is the simplest sign-in. The account needs the Cloud Datastore Viewer and Firebase Authentication Viewer roles.\n\n## Available Tools (8)\n\n| Tool | What It Does | Example Prompt |\n|------|-------------|----------------|\n| `firestore_list_collections` | Top-level collections or a document's subcollections | \"List my Firestore collections\" |\n| `firestore_get_document` | Read one document | \"Show orders/1234\" |\n| `firestore_query` | Query a collection with filters, order and limit | \"The 10 newest unpaid orders\" |\n| `firestore_count` | Count documents without reading them | \"How many users signed up today?\" |\n| `auth_get_user` | Look up a user by UID, email or phone | \"Find the user ana@example.com\" |\n| `auth_list_users` | List Authentication users | \"List the first 100 users\" |\n\n### Firebase Admin (`firebase_admin`)\n\nOne tool, called with an `action` and its `params`.\n\n| Action | Needs `confirm: true` |\n|--------|----------------------|\n| `create_document(path, data)` | No |\n| `set_document(path, data, merge?)` | Yes |\n| `update_document(path, data)` | No |\n| `delete_document(path)` | Yes |\n| `create_user(email?, password?, display_name?, phone?, email_verified?)` | No |\n| `update_user(uid, email?, password?, display_name?, phone?, email_verified?)` | No |\n| `disable_user(uid, disabled?)` | No |\n| `delete_user(uid)` | Yes |\n\n`set_document` replaces the whole document, so it needs `confirm: true` unless `merge` is true. `create_document` never overwrites.\n\n### Safety\n\nActions that delete, remove, replace or publish need `confirm: true` in their params. Without it the server changes nothing and returns a warning, so your AI agent has to ask you and then call again with `confirm: true`.\n\n## VS Code\n\nPrefer a setup wizard that registers the server with eight agents for you? Install the [Firebase MCP extension](https://open-vsx.org/extension/mercurial/firebase-mcp) instead (also on the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=mercurial.firebase-mcp)). Use one or the other, not both.\n\n## Links\n\n- [Documentation](https://renzojohnson.com/contributions/firebase-mcp)\n- [Report an Issue](https://renzojohnson.com/contact)\n\n---\n\n**By [Renzo Johnson](https://renzojohnson.com/contributions/firebase-mcp)**\n","readmeFilename":"README.md"}