Firebase MCP Server
The Firebase MCP Server provides a unified interface to interact with multiple Firebase services:
Authentication: Retrieve user information by ID or email.
Firestore:
Add, update, delete, and get documents by ID.
List collections and documents with optional filtering and pagination.
List root collections or subcollections under a document.
Storage:
List files in specified directories.
Retrieve file metadata and download URLs.
Provides a unified interface to interact with various Firebase services including Authentication, Firestore, and Storage, allowing users to get user information, manage Firestore documents and collections, and handle Storage files
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Firebase MCP Serverlist all users in the authentication database"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Firebase MCP Server
Overview
This is a Firebase MCP (Model Context Protocol) server that provides a unified interface to interact with various Firebase services including Authentication, Firestore, and Storage.
Related MCP server: Firestore Advanced MCP
Setup
Clone and build the project:
git clone https://github.com/gemini-dk/mcp-server-firebase cd mcp-server-firebase npm install npm run buildGet Firebase service account key:
Go to Firebase Console > Project Settings > Service accounts
Click "Generate new private key"
Save the JSON file to your project directory
Configure
mcp_settings.json:{ "firebase-mcp": { "command": "node", "args": [ "/path/to/mcp-server-firebase/dist/index.js" ], "env": { "SERVICE_ACCOUNT_KEY_PATH": "/path/to/serviceAccountKey.json" } } }Replace
/path/to/mcp-server-firebasewith the actual path where you cloned the repository. Replace/path/to/serviceAccountKey.jsonwith the path to your service account key file.
Available APIs
Authentication
Get user by ID or email
Firestore
Add/update/delete documents
List collections/documents
Storage
List files in a directory
Get File metadata and Download URL
License
MIT License
Available Tools
9 toolsauth_get_userB
Get a user by ID or email from Firebase Authentication
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | User ID or email address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states it's a read operation ('Get'), but doesn't mention authentication requirements, rate limits, error handling, or what happens with invalid identifiers. For a tool accessing user data, this is a significant gap in behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized for a simple retrieval tool and front-loads the essential information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description is minimally adequate. It covers what the tool does but lacks important context about authentication requirements, error behavior, and return format. The absence of annotations means the description should do more to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the single parameter. The description adds minimal value by specifying 'User ID or email address' which the schema already states. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get a user') and resource ('from Firebase Authentication'), with specificity about the identifier type ('by ID or email'). However, it doesn't distinguish this tool from potential siblings in the authentication domain, as the sibling list only includes Firestore and Storage tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, error conditions, or comparisons with other user retrieval methods. It's a basic functional statement without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
firestore_add_documentC
Add a document to a Firestore collection
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Collection name | |
| data | Yes | Document data |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits. It doesn't mention permissions required, error handling, whether the operation is idempotent, or what happens on success/failure, leaving significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero wasted words. It's appropriately sized and front-loaded, making it easy to parse quickly without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on return values, error conditions, or behavioral context, which are crucial for safe and effective use in an AI agent workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (collection and data). The description doesn't add any meaning beyond this, such as format examples or constraints, but meets the baseline since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add') and resource ('document to a Firestore collection'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like firestore_update_document or firestore_delete_document, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like firestore_update_document or firestore_get_document. The description lacks context about prerequisites (e.g., collection existence) or typical use cases, offering minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
firestore_delete_documentC
Delete a document from a Firestore collection
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Collection name | |
| id | Yes | Document ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Delete') but lacks details on permissions needed, whether deletion is permanent, error handling (e.g., if document doesn't exist), or rate limits, which are critical for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste, front-loading the key action and resource. It's appropriately sized for a simple tool, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a destructive operation with no annotations and no output schema, the description is incomplete. It fails to address critical aspects like return values, error conditions, or safety warnings, leaving significant gaps for an AI agent to handle correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('collection' and 'id') adequately. The description doesn't add any meaning beyond what the schema provides, such as format examples or constraints, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Delete') and resource ('a document from a Firestore collection'), making the tool's purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'firestore_update_document' or 'firestore_add_document' beyond the action name, missing explicit comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., document must exist), exclusions, or comparisons to siblings like 'firestore_update_document' for modifications, leaving usage context implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
firestore_get_documentC
Get a document from a Firestore collection
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Collection name | |
| id | Yes | Document ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the basic action but omits critical details: whether this is a read-only operation, potential error conditions (e.g., missing documents), authentication requirements, rate limits, or return format. This leaves significant gaps for agent decision-making.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It fails to address behavioral aspects like safety, error handling, or return values, which are crucial for a read operation in a database context. This leaves the agent with insufficient information for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with both parameters ('collection' and 'id') clearly documented in the schema. The description doesn't add any meaningful semantic context beyond what the schema provides, such as format examples or constraints, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('a document from a Firestore collection'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'firestore_list_documents' or 'storage_get_file_info', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description lacks context about prerequisites (e.g., authentication), exclusions, or comparisons to siblings like 'firestore_list_documents' for listing multiple documents or 'firestore_update_document' for modifications.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
firestore_list_collectionsA
List collections in Firestore. If documentPath is provided, returns subcollections under that document; otherwise returns root collections.
| Name | Required | Description | Default |
|---|---|---|---|
| documentPath | No | Optional parent document path | |
| limit | No | Number of collections to return | |
| pageToken | No | Token for pagination to get the next page of results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the behavioral trait of returning different results based on documentPath, which is useful. However, it doesn't mention other behavioral aspects like whether this is a read-only operation (implied but not stated), error handling, or performance considerations, leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and followed by conditional behavior. Every word earns its place with no redundancy or fluff, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (listing with optional filtering and pagination), no annotations, and no output schema, the description is adequate but incomplete. It covers the basic operation and parameter effect, but lacks details on return format, error cases, or pagination behavior, which would be helpful for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds marginal value by explaining the effect of documentPath on the operation, but doesn't provide additional syntax, format details, or usage examples beyond what the schema specifies. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('collections in Firestore'), specifying the exact operation. It distinguishes from sibling tools like firestore_list_documents (which lists documents) and firestore_get_document (which retrieves a single document), making the purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool: with documentPath for subcollections or without it for root collections. However, it doesn't explicitly mention when not to use it or name alternatives (e.g., firestore_list_documents for listing documents instead of collections), so it falls short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
firestore_list_documentsC
List documents from a Firestore collection with optional filtering
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Collection name | |
| filters | No | Array of filter conditions | |
| limit | No | Number of documents to return | |
| pageToken | No | Token for pagination to get the next page of results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'optional filtering' which hints at query capabilities, but fails to describe critical behaviors: whether this is a read-only operation (implied but not stated), pagination mechanics (only hinted by the 'pageToken' parameter), rate limits, authentication requirements, error conditions, or the format of returned data. For a database query tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately conveys the core functionality. Every word earns its place: 'List documents' (action), 'from a Firestore collection' (resource), 'with optional filtering' (key capability). There's no redundancy or unnecessary elaboration, making it perfectly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a database query tool with 4 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns (document format, metadata), how pagination works, error handling, or authentication requirements. While the schema covers parameter details, the description fails to provide the broader context needed for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, providing complete documentation for all 4 parameters. The description adds minimal value beyond the schema by mentioning 'optional filtering' which corresponds to the 'filters' parameter, but doesn't explain filter syntax, operator options, or practical usage examples. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('documents from a Firestore collection'), making the purpose immediately understandable. It distinguishes from siblings like 'firestore_get_document' (single document) and 'firestore_list_collections' (collections rather than documents). However, it doesn't specify the scope (e.g., all documents vs. paginated results) which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'firestore_list_documents' over 'firestore_get_document' (single document retrieval) or 'firestore_list_collections' (listing collections). There's also no mention of prerequisites like authentication or collection existence, leaving the agent with insufficient context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
firestore_update_documentC
Update a document in a Firestore collection
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Collection name | |
| id | Yes | Document ID | |
| data | Yes | Updated document data |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Update' implies a mutation operation, it doesn't specify whether this is a partial or full update, if it requires specific permissions, what happens on conflicts, or what the response contains. For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the update operation returns, potential side effects, error conditions, or how it interacts with sibling tools. The high schema coverage helps with parameters, but overall context for safe and effective use is lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with clear descriptions for all three parameters (collection, id, data). The description doesn't add any additional semantic context beyond what the schema already provides, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('a document in a Firestore collection'), making the purpose immediately understandable. It distinguishes from siblings like firestore_add_document (create) and firestore_delete_document (delete), though it doesn't explicitly mention these distinctions in the description text itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like firestore_add_document for creation or firestore_get_document for reading. It lacks any context about prerequisites, such as needing an existing document to update, or exclusions for when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
storage_get_file_infoC
Get file information including metadata and download URL
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | The path of the file to get information for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Get file information' implies a read-only operation, it doesn't explicitly state whether this requires authentication, what happens if the file doesn't exist (error behavior), rate limits, or what specific metadata fields are returned. The mention of 'download URL' is useful but insufficient for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 8 words, front-loading the core purpose immediately. Every word earns its place by specifying what information is retrieved (metadata and download URL), with zero redundant or unnecessary content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is incomplete. It doesn't explain what metadata fields are returned, the format of the download URL, error conditions, or authentication requirements. While concise, it leaves too many behavioral aspects unspecified for a tool that presumably interacts with storage systems.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'filePath' clearly documented in the schema as 'The path of the file to get information for'. The description doesn't add any additional parameter semantics beyond what the schema already provides, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'file information', specifying what metadata and download URL are included. It distinguishes this from sibling tools like storage_list_files (which lists files) and firestore operations, but doesn't explicitly differentiate from other potential 'get info' tools beyond the storage context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to use storage_get_file_info versus storage_list_files (which lists files) or firestore_get_document (which gets document data), nor does it specify prerequisites like authentication or file existence requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
storage_list_filesC
List files in a given path in Firebase Storage
| Name | Required | Description | Default |
|---|---|---|---|
| directoryPath | No | The optional path to list files from. If not provided, the root is used. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool lists files but doesn't mention behavioral traits like pagination, rate limits, authentication needs, or what happens if the path is invalid. This leaves significant gaps in understanding how the tool behaves beyond its basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't address key contextual aspects like return format, error handling, or how it fits with sibling tools, leaving the agent with insufficient information for effective use in a complex environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'directoryPath' well-documented in the schema itself. The description adds no additional meaning beyond the schema, such as path format examples or constraints, so it meets the baseline score without compensating further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List files') and the resource ('in a given path in Firebase Storage'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'storage_get_file_info', which might also involve file operations, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as 'storage_get_file_info' or other sibling tools. It lacks context about use cases, prerequisites, or exclusions, leaving the agent without clear usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
9 tool updates
v1.0.0- Added
auth_get_user - Added
firestore_add_document - Added
firestore_delete_document - Added
firestore_get_document - Added
firestore_list_collections - Added
firestore_list_documents - Added
firestore_update_document - Added
storage_get_file_info - Added
storage_list_files
TDQS
Every tool has a clearly distinct purpose with no ambiguity. The tools are organized by Firebase service (Authentication, Firestore, Storage) and specific operations within each service, making it easy to distinguish between them. For example, firestore_get_document retrieves a single document while firestore_list_documents lists multiple documents with filtering.
Tool names follow a highly consistent verb_noun pattern throughout, with clear service prefixes (auth_, firestore_, storage_). All tools use snake_case consistently, and the naming convention is predictable and readable across all nine tools.
With 9 tools, this server is well-scoped for covering core Firebase operations across multiple services. Each tool earns its place by addressing distinct functionality without being overwhelming. The count is appropriate for the server's purpose of providing access to Firebase Authentication, Firestore, and Storage.
The tool surface provides excellent coverage for Firestore (full CRUD operations plus listing) and good coverage for Storage and Authentication. Minor gaps exist, such as no user creation/update/deletion in Authentication and no file upload/download in Storage, but agents can work around these limitations for many common workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Butterbase MCP server — manage your backend: schemas, auth, functions, storage, RAG, deploys.
Unified.to MCP server — one API for 500+ B2B SaaS integrations across 28+ categories
- SupabaseOAuthcom.supabase
MCP server for interacting with the Supabase platform
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceThe Firebase MCP server provides a standardized interface to interact with Firebase services, including Firebase Authentication, Firestore, and Firebase Storage.315248MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables large language models like Claude to perform comprehensive interactions with Firebase Firestore databases, supporting full CRUD operations, complex queries, and advanced features like transactions and TTL management.214MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP Server providing access to Google's Firebase API, allowing natural language interaction with Firebase services and resources.-
- AlicenseAqualityDmaintenanceA Model Context Protocol server that exposes Firebase Firestore and Authentication to AI agents, supporting multi-project configurations and read operations.549MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gemini-dk/mcp-server-firebase'
If you have feedback or need assistance with the MCP directory API, please join our Discord server