Skip to main content
Glama
Firestore Advanced MCP

Firestore Advanced MCP

by diez7lm

πŸ”₯ Firestore Advanced MCP

VersionLicenseNode

Advanced MCP (Model Context Protocol) server for Firebase Firestore, allowing large language models like Claude to fully interact with your Firebase databases.

✨ Features

  • πŸ“ Full Firestore support : CRUD, compound queries, multiple filters

  • ⚑ Advanced operations : Transactions, atomic operations, batch updates

  • πŸ”„ Special data types : GeoPoint, document references, timestamps

  • ⏱️ TTL Management : Time-To-Live Configuration for Documents

  • πŸ” Smart Missing Index Detection : Automatic instructions to create the necessary indexes

  • 🎯 Advanced search : Queries on collection groups, complex filters

Related MCP server: MCP Firebase Server

πŸ“‹ Prerequisites

  • Node.js >= 16.0.0

  • A Firebase project with Firestore enabled

  • A Firebase service account key (JSON file)

πŸš€ Installation

Via npm

npm install -g firestore-advanced-mcp

Via GitHub

git clone https://github.com/diez7lm/firestore-advanced-mcp.git
cd firestore-advanced-mcp
npm install

πŸ”§ Configuration

  1. Get your Firebase service account key :

    • Go to the Firebase console

    • Select your project

    • Project Settings > Service Accounts

    • Generate a new private key and upload the JSON file

  2. Set the environment variable :

export SERVICE_ACCOUNT_KEY_PATH="/chemin/vers/votre/serviceAccountKey.json"

πŸ–₯️ Use

With npm global

SERVICE_ACCOUNT_KEY_PATH="/chemin/vers/votre/serviceAccountKey.json" firestore-advanced-mcp

With npx

SERVICE_ACCOUNT_KEY_PATH="/chemin/vers/votre/serviceAccountKey.json" npx firestore-advanced-mcp

From the cloned directory

SERVICE_ACCOUNT_KEY_PATH="/chemin/vers/votre/serviceAccountKey.json" node index.js

Configuration in Claude

To use this MCP server with Claude, add the following configuration to your claude_desktop_config.json file:

"firebase-mcp": {
  "command": "npx",
  "args": ["firestore-advanced-mcp"],
  "env": {
    "SERVICE_ACCOUNT_KEY_PATH": "/chemin/vers/votre/serviceAccountKey.json"
  }
}

Or for a locally installed version:

"firebase-mcp": {
  "command": "node",
  "args": ["/chemin/vers/firestore-advanced-mcp/index.js"],
  "env": {
    "SERVICE_ACCOUNT_KEY_PATH": "/chemin/vers/votre/serviceAccountKey.json"
  }
}

πŸ› οΈ Available tools

The server provides the following tools to Claude:

Basic operations

  • firestore_get - Retrieve a document

  • firestore_create - Create a new document

  • firestore_update - Update an existing document

  • firestore_delete - Delete a document

  • firestore_query - Run a query with filters

  • firestore_list_collections - List available collections

Advanced queries

  • firestore_collection_group_query - Collection group query

  • firestore_composite_query - Query with multiple filters and sorts

  • firestore_count_documents - Count documents without retrieving everything

Special Types and Advanced Features

  • firestore_special_data_types - Manage GeoPoints and References

  • firestore_set_ttl - Configure automatic document expiration

  • firestore_transaction - Execute a transaction consisting of multiple operations

  • firestore_batch - Execute batch operations

  • firestore_field_operations - Atomic operations (increment, arrayUnion, etc.)

  • firestore_full_text_search - Full text search in documents

πŸ“ Examples

Retrieve a document

{
  "collection": "users",
  "id": "user123"
}

Create a document with reference to another document

{
  "collection": "orders",
  "data": {
    "product": "Laptop",
    "price": 999.99,
    "fields": [
      {
        "fieldPath": "user",
        "type": "reference",
        "value": "users/user123"
      }
    ]
  }
}

Configure TTL on a document

{
  "collection": "temporaryData",
  "id": "session123",
  "expiresIn": 86400000,
  "fieldName": "expires_at"
}

Run a query with multiple filters

{
  "collection": "products",
  "filters": [
    {
      "field": "category",
      "operator": "==",
      "value": "electronics"
    },
    {
      "field": "price",
      "operator": "<",
      "value": 1000
    }
  ],
  "orderBy": {
    "field": "price",
    "direction": "asc"
  },
  "limit": 10
}

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘¨πŸ½β€πŸ’» Author

  • Diez7lm

πŸ™ Acknowledgments

  • Anthropic for Claude and the Model Context Protocol

  • Firebase for Firestore and Developer Tools

🦾 Contribution

Contributions are welcome! Feel free to submit a pull request or report issues via GitHub issues.

πŸ“š Additional documentation

For more information on using Firestore with Firebase, see the official Firebase documentation .

To learn more about the Model Context Protocol (MCP) and its use with Claude, see the Anthropic documentation .

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that enables Claude AI to interact with Xano databases, providing comprehensive database operations, file management, and request history tracking through a standardized interface.
      1
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents and LLMs to securely interact with Firestore databases through complete CRUD operations (get, set, add, delete, query) while respecting Firestore Security Rules via the Firebase Client SDK.
      1
      MIT