Firebase MCP server for interacting with Firebase services through the Model Context Protocol
Firebase MCP server has 9 tools with basic schemas and descriptions, but significant gaps limit production readiness. Tool names follow verb_noun convention (firestore_add_document, storage_upload) which is good. The storage_upload tool has NO visible input schema in the provided code. Error handling is minimal, no recovery guidance, no categorization of retryable vs fatal errors. Security concerns: no evidence of secret injection patterns, and destructive operations (firestore_delete_document) lack confirmation/dry-run support. Composition is reasonable (each tool does one thing), but missing pagination metadata in list responses and no chaining IDs documented.
Get a user by ID or email from Firebase Authentication
Add a document to a Firestore collection
Delete a document from a Firestore collection
Get a document from a Firestore collection
List documents from a Firestore collection with filtering and ordering
Update a document in a Firestore collection
storage_upload tool has NO visible input schema in source code. This tool cannot be reliably invoked by LLMs without documented parameter types and constraints.
Destructive operations (firestore_delete_document) lack confirmation/dry-run pattern. Agents can permanently delete data without safeguards. No error recovery guidance provided.
Output schemas are not documented for any tool. LLMs cannot plan downstream calls or extract required fields.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | <=2025-11-25 | v2 |
Get file information including metadata and download URL
List files in a given path in Firebase Storage
Upload a file to Firebase Storage. Supports local file paths (preferred for binary files), base64 data, or plain text.
Parameter descriptions are minimal or missing. 'identifier' in auth_get_user lacks format guidance (is it email or user ID?). 'directoryPath' in storage_list_files is optional but no default behavior documented.
No error handling guidance. Tools return raw errors with no recovery hints. Per pattern:recovery-guide, errors must tell LLM what to do next (e.g., 'User not found. Try search_users() with a partial name.').