A Model Context Protocol (MCP) server for Firestore, enabling AI agents to interact with Firestore databases through multiple transport protocols (stdio, HTTP, SSE)
FireMCP registers 5 tools with basic schemas and descriptions. All tools have input schemas with type definitions and descriptions present. However, descriptions are minimal (10-50 chars), falling below the 50-200 char baseline for LLM-optimized descriptions. Output schemas are referenced but not visible in source. Parameter descriptions exist but lack detail on constraints, formats, and error recovery. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Error handling and validation logic not visible in provided code. Tool composition is sound (each does one thing), but descriptions need expansion to guide LLM selection and usage.
Add a new document to a collection
Delete a document from Firestore
Retrieve a document from Firestore by its path
Query a Firestore collection with filters
Create or overwrite a document in Firestore
Descriptions are too brief (10-50 chars vs 50-200 baseline). LLMs cannot determine when to select each tool or what distinguishes set_document from add_document.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (READ_ONLY, WRITE, DESTRUCTIVE). Agents cannot infer safety/retry semantics.
Parameter descriptions lack constraint details. 'path' and 'collection' accept strings but no format/pattern guidance. 'filters' array structure documented but operator enum values not specified.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2025-06-18+ | v2 |
Output schemas referenced in imports (getDocOutput, setDocOutput, etc.) but not visible in source. Cannot verify return field names, types, or whether they enable tool chaining.
No error handling guidance visible. Tools should return actionable errors (e.g., 'Document not found at path users/123. Verify path format: collection/docId') instead of raw exceptions.