Skip to main content
Glama
NigelThorne

Firebase MCP Server

by NigelThorne

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation4/5

    Most tools have distinct purposes targeting different Firebase services (Auth, Firestore, Functions, Environment). However, 'list_documents' and 'query_collection' could cause some confusion as both operate on collections, though descriptions clarify that one lists while the other filters.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern (e.g., get_auth_token, list_collections, query_collection). The naming is uniform across all 9 tools with no deviations in style or structure.

    Tool Count5/5

    With 9 tools, this is well-scoped for a Firebase server covering Auth, Firestore, Functions, and environment management. Each tool appears purposeful and earns its place without feeling excessive or sparse.

    Completeness3/5

    The server covers read operations well (get, list, query) but lacks write operations (create, update, delete) for Firestore documents or Auth users, which are core to Firebase workflows. This creates notable gaps that agents may struggle with for full CRUD functionality.

  • Average 3.1/5 across 9 of 9 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided, so description carries full disclosure burden. It fails to describe return format (array of strings? objects?), pagination behavior, error handling (what if documentPath is invalid?), or side effects. For a query tool with zero safety annotations, this is inadequate behavioral disclosure.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Extremely brief at 5 words. While efficient, given the lack of annotations and output schema, this brevity sacrifices necessary behavioral context. Structure is front-loaded but underspecified for the tool's complexity.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Missing critical context: return value structure, error scenarios, and distinction from similar list operations. With no output schema and no annotations, the description should compensate by explaining what subcollection metadata is returned.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema has 100% description coverage with clear example ('users/user123'). The description adds no additional parameter guidance beyond what the schema already provides, meeting the baseline for high-coverage schemas.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Description uses specific verb 'List' with clear resource 'subcollections of a document'. It distinguishes reasonably from siblings: list_collections (top-level) and list_documents (documents vs subcollections). However, it doesn't clarify the hierarchical relationship (subcollections are nested under documents) which would further differentiate it.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No explicit guidance on when to use this versus list_collections or query_collection. No mention of prerequisites (document must exist?) or error conditions. The usage must be inferred entirely from the parameter name 'documentPath'.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description must carry the full burden of behavioral disclosure. It fails to indicate whether this is read-only, what happens when no documents match, pagination behavior, or performance characteristics. Only the basic action is stated.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Extremely terse at 5 words. While there is no wasted prose, the brevity constitutes underspecification rather than efficient precision given the tool's complexity (5 parameters, nested filter objects).

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the presence of complex filtering, ordering, and limiting capabilities alongside 5 parameters and no output schema, the single-sentence description is insufficient. It omits return value description, error conditions, and maximum result limits.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 80% (high), establishing a baseline of 3. The schema already documents the filter structure, ordering, and limits adequately. The description mentions 'filters' but adds no additional semantics regarding syntax or valid combinations beyond the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Specific verb 'Query' and resource 'collection' are stated, with mention of 'filters' indicating the key capability. However, it fails to distinguish from sibling 'list_documents' or clarify when querying is preferable to listing.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No explicit guidance on when to use this tool versus alternatives like 'list_documents' or 'get_document'. No prerequisites or conditions mentioned.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided, so description carries full burden. Fails to disclose error behavior (what happens if path invalid/document missing), return value structure, or whether operation is read-only/safe. 'Get' implies retrieval but lacks explicit safety or side-effect disclosure.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Extremely concise at five words. No wasted language. Front-loaded with verb and object. However, extreme brevity contributes to under-specification; one additional sentence covering error behavior or sibling distinction would improve utility without sacrificing clarity.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Minimum viable for a single-parameter retrieval tool. Covers the basic operation but lacks critical contextual gaps given the server has multiple retrieval tools (list_documents, query_collection): no error handling documentation, no return value hints, and no selection guidance for the agent.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100% with 'documentPath' well-documented including example. Description mentions 'by path' which aligns with the parameter, but adds no syntax rules, validation constraints, or format details beyond the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    States specific verb ('Get'), resource ('document'), and scope ('single', 'by path'). Implicitly distinguishes from 'list_documents' via 'single', but does not explicitly differentiate from 'query_collection' or when path-based vs. query-based retrieval is appropriate.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Provides no guidance on when to use this tool versus siblings like 'list_documents' or 'query_collection'. Does not mention prerequisites (e.g., authentication) or edge cases (e.g., document not found).

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries full burden but only adds 'optional limit' context. It does not confirm this is read-only, disclose pagination behavior (e.g., cursor/token support), explain error cases (empty collection vs invalid path), or describe return format despite no output schema being present.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    A single, efficient sentence front-loaded with the verb. No filler words or redundant phrases. Every word serves the core purpose statement.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the lack of output schema and the presence of similar sibling tools (query_collection, list_collections), the description is insufficient. It omits return value structure, pagination mechanics, and differentiation from query operations that an agent needs to select the correct tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100%, establishing baseline 3. Description mentions 'optional limit' reinforcing the optionality seen in schema (limit not in required array), but adds no additional syntax details, format constraints, or examples beyond what the schema already provides for collectionPath.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    States clear verb 'List' and resource 'documents' with scope 'in a collection.' However, it fails to distinguish from sibling tool 'query_collection' which likely offers similar functionality with filtering capabilities.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Provides no guidance on when to use this simple list operation versus the more powerful 'query_collection' alternative, nor does it mention prerequisites like collection existence or auth requirements.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description bears full responsibility for disclosing behavior, yet it fails to specify what constitutes 'environment' information (project ID, region, configuration variables), caching behavior, or authentication requirements. The term 'information' is vague and provides no operational context.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The single sentence is efficiently constructed with no redundant words or filler. However, extreme brevity in the absence of schema or annotation support leaves critical informational gaps, preventing a score of 5.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Lacks essential detail for a tool with no output schema: it does not enumerate, categorize, or describe the structure of the returned environment data. Given zero annotations and no parameters, the description must compensate by detailing return values, which it fails to do.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Zero parameters are defined in the input schema, establishing the baseline score of 4 per evaluation rules. The description appropriately implies no inputs are required by omitting parameter references.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    States a clear verb-object pair ('Get information' + 'Firebase environment') that identifies the resource being accessed. However, it does not differentiate from siblings like get_document or get_auth_token, which also retrieve Firebase-related information, leaving the specific scope of 'environment' undefined.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Provides no guidance on when to invoke this tool versus alternatives. Does not indicate typical use cases (e.g., initialization, configuration checks) or prerequisites, forcing the agent to infer applicability from the name alone.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided, so description carries full disclosure burden. It fails to indicate return structure (array of collection IDs?), pagination behavior, or safety characteristics (read-only nature). Only basic scope is declared.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Extremely efficient: 6 words convey exact operation, scope, and system. No redundancy, properly front-loaded with action verb.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Adequate for a zero-parameter tool but minimal given lack of annotations and output schema. Could benefit from noting return format or that results are limited to root collections only.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Zero parameters present, establishing baseline 4 per rubric. No parameters require semantic explanation beyond schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Clear verb ('List') and resource ('top-level collections in Firestore'). The 'top-level' qualifier helps distinguish from sibling tool list_subcollections, though it does not explicitly differentiate from list_documents or query_collection.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No guidance provided on when to use this versus siblings like list_subcollections (for nested collections) or list_documents. No mention of prerequisites like authentication or project selection.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided, so description carries full burden. It valuably discloses the 'emulator' context (indicating local development, not production GCP), but omits return format, pagination behavior, and whether it includes all function types (HTTP, callable, triggers).

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Nine words, single sentence. Front-loaded with action verb. Zero redundancy or waste.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a zero-parameter list tool, the description is minimally sufficient but lacks output value description (names, URLs, triggers?) given no output schema exists. The 'emulator' context partially compensates.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Input schema has zero parameters. Per scoring rules, baseline is 4 for tools with no parameters; the description appropriately implies no filtering is needed/possible.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Clear verb ('List') + resource ('Cloud Functions') + scope ('emulator'). However, it does not explicitly differentiate from sibling 'get_function_logs' (which retrieves logs for specific functions) even though the distinction is implied by the verbs.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No explicit guidance on when to use this versus alternatives like 'get_function_logs' (which requires knowing a function name first) or when to prefer this over other listing operations.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Discloses default return size (20 lines) which is crucial for log retrieval. With no annotations provided, the description misses opportunity to clarify if logs are streaming, rate-limited, consumable, or their format (JSON vs. text). Carries partial burden adequately but not fully.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Two sentences, zero waste. Front-loaded with purpose ('Get Firebase function logs'), followed immediately by behavioral constraints and usage guidance. Every word earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    5 parameters with 100% schema coverage and no output schema. Description omits mention of 'since' parameter (critical for log time-windowing) and return format. Adequate but gaps remain for a tool with optional time-based filtering.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100%, establishing baseline 3. Mentions filter parameters (pattern, level, functionName) by name to reinforce their purpose, and implies 'limit' default behavior, adding minimal semantic value beyond schema descriptions.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Clear verb ('Get') and resource ('Firebase function logs'). Implicitly distinguishes from sibling 'list_functions' (metadata vs. logs) and other Firestore tools. Lacks explicit scope restrictions that would earn a 5.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Provides implicit usage guidance ('use filters... to narrow results before increasing limit') advising efficient query patterns. However, lacks explicit when-to-use vs. alternatives (e.g., when to use 'since' vs. large limits) or prerequisites.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided, so description carries full burden. Adds critical context that this targets the 'Auth emulator' (not production). Reveals dual behavior (list vs get token). Missing safety profile, error conditions, or return value description.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Two sentences, zero waste. Front-loaded with primary purpose, second sentence handles edge case. Every word earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Adequate for a single-parameter, dual-mode tool. Emulator context and conditional behavior are disclosed. Lacks output description (no output schema exists) and safety annotations, but sufficient for correct invocation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100%, establishing baseline 3. Description mentions 'if no uid provided' which aligns with optional parameter behavior, but adds no semantic detail beyond schema's 'If omitted, lists available users instead'.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Specific verb 'Get' + resource 'ID token' + scope 'Auth emulator'. The second sentence clearly distinguishes the dual mode (listing users when uid omitted), differentiating it from document-centric siblings like get_document.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Implies usage through conditional behavior ('Lists users if no uid provided'), showing when listing occurs vs token retrieval. However, lacks explicit 'when to use' guidance regarding emulator workflow or prerequisites (e.g., 'use this to impersonate users during testing').

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

firebase_mcp_server MCP server

Copy to your README.md:

Score Badge

firebase_mcp_server MCP server

Copy to your README.md:

Latest Blog Posts

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/NigelThorne/firebase_mcp_server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server