MCP server for searching and retrieving Firebase documentation using semantic search with embeddings
Single tool with critical gaps. The tool 'find-firebase-doc' has a basic description but lacks essential parameter validation, output schema documentation, error handling guidance, and comprehensive parameter descriptions. Parameter 'request' is described generically ('used as the goal the user is trying to accomplish') without constraints, format guidance, or examples. No output schema is documented, callers cannot know what fields to expect from the QueryResult array. Error handling is entirely absent, what happens when no results are found? When the embedding service fails? When the database connection fails? The tool lacks idempotence hints, rate-limit guidance, and pagination despite querying a vector database that could return many results. Tool name 'find-firebase-doc' is adequate but could be more specific (e.g., 'search_firebase_docs' would better signal the search/lookup pattern). This server does not meet production quality baselines.
used to find helpful documents related to Firebase Data Connect and how to use the Firebase data connect service
Output schema completely undocumented. Tool returns QueryResult[] but callers have no way to know the structure of each result (fields: source, text). LLMs cannot plan downstream operations or extract data reliably.
Parameter description is vague and lacks constraints. 'used as the goal the user is trying to accomplish' does not specify format, length limits, expected content, or examples. LLMs have no guidance on what constitutes a valid 'request' string.
No error handling or recovery guidance. Tool can fail in multiple ways (embedding service down, database error, no results found, timeout) but provides no error responses, retry hints, or user-actionable messages. Agents cannot distinguish between retryable and fatal failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 40 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 44 | - | v1 |
No pagination or result limiting. Vector database queries can return arbitrarily many results. The code hardcodes k=10 in SQL but this limit is invisible to callers. Large result sets will exhaust context windows. Tool description should document the max result count and pagination strategy.
Missing idempotence and side-effect documentation. Tool description does not clarify whether repeated calls with identical input always return identical results, or whether the vector database embedding process is deterministic. Agents need this to decide retry safety.
Input schema uses plain z.string() with minimal constraint. No length bounds (min/max), pattern validation, or format hints. LLMs can pass 1-char strings, 100KB+ strings, or non-text content without validation.