1.0.1 ‱ Published 8 months ago

@mseep/firestore-advanced-mcp v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

đŸ”„ Firestore Advanced MCP

Version License Node

Serveur MCP (Model Context Protocol) avancé pour Firebase Firestore, permettant aux grands modÚles de langage comme Claude d'interagir de façon complÚte avec vos bases de données Firebase.

✹ FonctionnalitĂ©s

  • 📝 Support complet de Firestore : CRUD, requĂȘtes composĂ©es, filtres multiples
  • ⚡ OpĂ©rations avancĂ©es : Transactions, opĂ©rations atomiques, mise Ă  jour par lot
  • 🔄 Types de donnĂ©es spĂ©ciaux : GeoPoint, rĂ©fĂ©rences de documents, horodatages
  • ⏱ Gestion TTL : Configuration du Time-To-Live pour les documents
  • 🔍 DĂ©tection intelligente des index manquants : Instructions automatiques pour crĂ©er les index nĂ©cessaires
  • 🎯 Recherche avancĂ©e : RequĂȘtes sur groupes de collections, filtres complexes

📋 PrĂ©requis

  • Node.js >= 16.0.0
  • Un projet Firebase avec Firestore activĂ©
  • Une clĂ© de compte de service Firebase (fichier JSON)

🚀 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. Obtenir votre clé de compte de service Firebase :

    • Allez sur la console Firebase
    • SĂ©lectionnez votre projet
    • ParamĂštres du projet > Comptes de service
    • GĂ©nĂ©rez une nouvelle clĂ© privĂ©e et tĂ©lĂ©chargez le fichier JSON
  2. Définir la variable d'environnement :

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

đŸ–„ïž Utilisation

Avec npm global

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

Avec npx

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

Depuis le répertoire cloné

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

Configuration dans Claude

Pour utiliser ce serveur MCP avec Claude, ajoutez la configuration suivante dans votre fichier claude_desktop_config.json :

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

Ou pour une version installée localement :

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

đŸ› ïž Outils disponibles

Le serveur fournit les outils suivants Ă  Claude :

Opérations de base

  • firestore_get - RĂ©cupĂ©rer un document
  • firestore_create - CrĂ©er un nouveau document
  • firestore_update - Mettre Ă  jour un document existant
  • firestore_delete - Supprimer un document
  • firestore_query - ExĂ©cuter une requĂȘte avec filtres
  • firestore_list_collections - Lister les collections disponibles

RequĂȘtes avancĂ©es

  • firestore_collection_group_query - RequĂȘte sur groupes de collections
  • firestore_composite_query - RequĂȘte avec filtres et tris multiples
  • firestore_count_documents - Compter les documents sans tout rĂ©cupĂ©rer

Types spéciaux et fonctionnalités avancées

  • firestore_special_data_types - GĂ©rer les GeoPoints et rĂ©fĂ©rences
  • firestore_set_ttl - Configurer l'expiration automatique des documents
  • firestore_transaction - ExĂ©cuter une transaction composĂ©e de multiples opĂ©rations
  • firestore_batch - ExĂ©cuter des opĂ©rations par lot
  • firestore_field_operations - OpĂ©rations atomiques (increment, arrayUnion, etc.)
  • firestore_full_text_search - Recherche textuelle dans les documents

📝 Exemples

Récupérer un document

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

Créer un document avec référence à un autre document

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

Configurer TTL sur un document

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

ExĂ©cuter une requĂȘte avec filtres multiples

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

📄 Licence

Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.

đŸ‘šđŸœâ€đŸ’» Auteur

  • Diez7lm

🙏 Remerciements

  • Anthropic pour Claude et le Model Context Protocol
  • Firebase pour Firestore et les outils de dĂ©veloppement

đŸŠŸ Contribution

Les contributions sont les bienvenues ! N'hésitez pas à soumettre une pull request ou à signaler des problÚmes via les issues GitHub.

📚 Documentation supplĂ©mentaire

Pour plus d'informations sur l'utilisation de Firestore avec Firebase, consultez la documentation officielle de Firebase.

Pour en savoir plus sur le Model Context Protocol (MCP) et son utilisation avec Claude, consultez la documentation d'Anthropic.