Meilisearch MCP Server

officiel

Interagir et interroger avec Meilisearch (API de recherche plein texte et sémantique)

Documentation

Meilisearch

Serveur MCP Meilisearch

Meilisearch | Meilisearch Cloud | Documentation | Discord

PyPI version Python Versions Tests License Downloads

⚡ Connectez n'importe quel LLM à Meilisearch et boostez votre IA avec des capacités de recherche ultra-rapides ! 🔍

🤔 Qu'est-ce que c'est ?

Le serveur MCP Meilisearch est un serveur Model Context Protocol qui permet à tout client compatible MCP (y compris Claude, les agents OpenAI et autres LLM) d'interagir avec Meilisearch. Ce serveur basé sur stdio permet aux assistants IA de gérer les index de recherche, d'effectuer des recherches et de manipuler vos données par le biais d'une conversation naturelle.

Pourquoi l'utiliser ?

  • 🤖 Compatibilité universelle - Fonctionne avec n'importe quel client MCP, pas seulement Claude
  • 🗣️ Contrôle en langage naturel - Gérez Meilisearch par la conversation avec n'importe quel LLM
  • 🚀 Aucune courbe d'apprentissage - Pas besoin d'apprendre l'API de Meilisearch
  • 🔧 Accès complet aux fonctionnalités - Toutes les capacités de Meilisearch à portée de main
  • 🔄 Connexions dynamiques - Basculez entre les instances Meilisearch à la volée
  • 📡 Transport stdio - Utilise actuellement stdio ; le support natif MCP de Meilisearch arrive bientôt !

✨ Fonctionnalités clés

  • 📊 Gestion des index et des documents - Créez, mettez à jour et gérez les index de recherche
  • 🔍 Recherche intelligente - Recherchez dans un ou plusieurs index avec un filtrage avancé
  • ⚙️ Configuration des paramètres - Ajustez la pertinence et les performances de la recherche
  • 📈 Suivi des tâches - Suivez la progression de l'indexation et les opérations système
  • 🔐 Gestion des clés API - Contrôle d'accès sécurisé
  • 🏥 Surveillance de l'état - Gardez un œil sur votre instance Meilisearch
  • 🐍 Implémentation Python - Version TypeScript également disponible

🚀 Démarrage rapide

Soyez opérationnel en seulement 3 étapes !

1️⃣ Installez le paquet

# Using pip
pip install meilisearch-mcp

# Or using uvx (recommended)
uvx -n meilisearch-mcp

2️⃣ Configurez Claude Desktop

Ajoutez ceci à votre claude_desktop_config.json :

{
  "mcpServers": {
    "meilisearch": {
      "command": "uvx",
      "args": ["-n", "meilisearch-mcp"]
    }
  }
}

3️⃣ Démarrez Meilisearch

# Using Docker (recommended)
docker run -d -p 7700:7700 getmeili/meilisearch:v1.28

# Or using Homebrew
brew install meilisearch
meilisearch

C'est tout ! Vous pouvez maintenant demander à votre assistant IA de rechercher et de gérer vos données Meilisearch ! 🎉

📚 Exemples

💬 Parlez naturellement à votre assistant IA :

You: "Create a new index called 'products' with 'id' as the primary key"
AI: I'll create that index for you... ✓ Index 'products' created successfully!

You: "Add some products to the index"
AI: I'll add those products... ✓ Added 5 documents to 'products' index

You: "Search for products under $50 with 'electronics' in the category"
AI: I'll search for those products... Found 12 matching products!

🔍 Exemple de recherche avancée :

You: "Search across all my indices for 'machine learning' and sort by date"
AI: Searching across all indices... Found 47 results from 3 indices:
- 'blog_posts': 23 articles about ML
- 'documentation': 15 technical guides
- 'tutorials': 9 hands-on tutorials

🔧 Installation

Prérequis

  • Python ≥ 3.9
  • Instance Meilisearch en cours d'exécution
  • Client compatible MCP (Claude Desktop, agents OpenAI, etc.)

Depuis PyPI

pip install meilisearch-mcp

Depuis les sources (pour le développement)

# Clone repository
git clone https://github.com/meilisearch/meilisearch-mcp.git
cd meilisearch-mcp

# Create virtual environment and install
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
uv pip install -e .

Utiliser Docker

Parfait pour les environnements conteneurisés comme les workflows n8n !

Depuis Docker Hub

# Pull the latest image
docker pull getmeili/meilisearch-mcp:latest

# Or a specific version
docker pull getmeili/meilisearch-mcp:0.5.0

# Run the container
docker run -it \
  -e MEILI_HTTP_ADDR=http://your-meilisearch:7700 \
  -e MEILI_MASTER_KEY=your-master-key \
  getmeili/meilisearch-mcp:latest

Construire depuis les sources

# Build your own image
docker build -t meilisearch-mcp .
docker run -it \
  -e MEILI_HTTP_ADDR=http://your-meilisearch:7700 \
  -e MEILI_MASTER_KEY=your-master-key \
  meilisearch-mcp

Intégration avec n8n

Pour les workflows n8n, vous pouvez utiliser l'image Docker directement dans votre configuration :

meilisearch-mcp:
  image: getmeili/meilisearch-mcp:latest
  environment:
    - MEILI_HTTP_ADDR=http://meilisearch:7700
    - MEILI_MASTER_KEY=masterKey

🛠️ Que pouvez-vous faire ?

🔗 Gestion de la connexion
  • Voir les paramètres de connexion actuels
  • Basculer dynamiquement entre les instances Meilisearch
  • Mettre à jour les clés API à la volée
📁 Opérations sur les index
  • Créer de nouveaux index avec des clés primaires personnalisées
  • Lister tous les index avec leurs statistiques
  • Supprimer des index et leurs données
  • Obtenir des métriques détaillées sur les index
📄 Gestion des documents
  • Ajouter ou mettre à jour des documents
  • Récupérer des documents avec pagination
  • Importer des données en masse
🔍 Capacités de recherche
  • Rechercher avec des filtres, du tri et des facettes
  • Recherche multi-index
  • Recherche sémantique avec des vecteurs
  • Recherche hybride (mots-clés + sémantique)
⚙️ Paramètres et configuration
  • Configurer les règles de classement
  • Mettre en place la facettisation et le filtrage
  • Gérer les attributs interrogeables
  • Personnaliser la tolérance aux fautes de frappe
🔐 Sécurité
  • Créer et gérer des clés API
  • Définir des permissions granulaires
  • Surveiller l'utilisation des clés

⚠️ Remarque : Bien que vous puissiez ajouter et mettre à jour des hôtes et des clés API directement dans le chat pour plus de commodité, cette approche est principalement conçue pour des cas d'utilisation de développement (comme la connexion à plusieurs instances à la volée). Elle ne suit pas les meilleures pratiques de sécurité MCP et ne doit pas être utilisée dans des environnements de production sans mesures de protection appropriées.

📊 Surveillance et santé
  • Vérifications de l'état
  • Statistiques système
  • Suivi des tâches
  • Informations sur la version

🌍 Variables d'environnement

Configurez les paramètres de connexion par défaut :

MEILI_HTTP_ADDR=http://localhost:7700  # Default Meilisearch URL
MEILI_MASTER_KEY=your_master_key       # Optional: Default API key

💻 Développement

Mise en place de l'environnement de développement

  1. Démarrez Meilisearch :

    docker run -d -p 7700:7700 getmeili/meilisearch:v1.28
    
  2. Installez les dépendances de développement :

    uv pip install -r requirements-dev.txt
    
  3. Exécutez les tests :

    python -m pytest tests/ -v
    
  4. Formatez le code :

    black src/ tests/
    

Tester avec MCP Inspector

npx @modelcontextprotocol/inspector python -m src.meilisearch_mcp

🤝 Communauté et support

Nous aimerions avoir de vos nouvelles ! Voici comment obtenir de l'aide et vous connecter :

🤗 Contribuer

Nous accueillons les contributions ! Voici comment commencer :

  1. Forkez le dépôt
  2. Créez votre branche de fonctionnalité (git checkout -b feature/amazing-feature)
  3. Écrivez des tests pour vos modifications
  4. Apportez vos modifications et exécutez les tests
  5. Formatez votre code avec black
  6. Commitez vos modifications (git commit -m 'Add amazing feature')
  7. Poussez vers votre branche (git push origin feature/amazing-feature)
  8. Ouvrez une Pull Request

Consultez notre Guide de contribution pour plus de détails.

📦 Processus de publication

Ce projet utilise le versionnage et la publication automatisés. Lorsque la version dans pyproject.toml change sur la branche main, le paquet est automatiquement publié sur PyPI.

Consultez la section Processus de publication pour des instructions détaillées.

📄 Licence

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


Meilisearch est un moteur de recherche open source qui offre une expérience de recherche agréable.
En savoir plus sur Meilisearch sur meilisearch.com


📖 Documentation complète

Outils disponibles

Gestion de la connexion

  • get-connection-settings : Voir l'URL de connexion Meilisearch actuelle et le statut de la clé API
  • update-connection-settings : Mettre à jour l'URL et/ou la clé API pour se connecter à une autre instance

Gestion des index

  • create-index : Créer un nouvel index avec une clé primaire optionnelle
  • list-indexes : Lister tous les index disponibles
  • delete-index : Supprimer un index existant et tous ses documents
  • get-index-metrics : Obtenir des métriques détaillées pour un index spécifique

Opérations sur les documents

  • get-documents : Récupérer des documents d'un index avec pagination
  • add-documents : Ajouter ou mettre à jour des documents dans un index

Recherche

  • search : Recherche flexible dans un ou plusieurs index avec des options de filtrage et de tri

Gestion des paramètres

  • get-settings : Voir les paramètres actuels d'un index
  • update-settings : Mettre à jour les paramètres de l'index (classement, facettisation, etc.)

Gestion des clés API

  • get-keys : Lister toutes les clés API
  • create-key : Créer une nouvelle clé API avec des permissions spécifiques
  • delete-key : Supprimer une clé API existante

Gestion des tâches

  • get-task : Obtenir des informations sur une tâche spécifique
  • get-tasks : Lister les tâches avec des filtres optionnels
  • cancel-tasks : Annuler les tâches en attente ou en file d'attente
  • delete-tasks : Supprimer les tâches terminées

Surveillance du système

  • health-check : Vérification de l'état de base
  • get-health-status : État de santé complet
  • get-version : Obtenir les informations de version de Meilisearch
  • get-stats : Obtenir les statistiques de la base de données
  • get-system-info : Obtenir des informations au niveau du système

Configuration du développement

Prérequis

  1. Démarrer le serveur Meilisearch :

    # Using Docker (recommended for development)
    docker run -d -p 7700:7700 getmeili/meilisearch:v1.28
    
    # Or using brew (macOS)
    brew install meilisearch
    meilisearch
    
    # Or download from https://github.com/meilisearch/meilisearch/releases
    
  2. Installer les outils de développement :

    # Install uv for Python package management
    pip install uv
    
    # Install Node.js for MCP Inspector testing
    # Visit https://nodejs.org/ or use your package manager
    

Exécution des tests

Ce projet comprend des tests d'intégration complets qui vérifient la fonctionnalité des outils MCP :

# Run all tests
python -m pytest tests/ -v

# Run specific test file
python -m pytest tests/test_mcp_client.py -v

# Run tests with coverage report
python -m pytest --cov=src tests/

# Run tests in watch mode (requires pytest-watch)
pytest-watch tests/

Important : Les tests nécessitent une instance Meilisearch en cours d'exécution sur http://localhost:7700.

Qualité du code

# Format code with Black
black src/ tests/

# Run type checking (if mypy is configured)
mypy src/

# Lint code (if flake8 is configured)
flake8 src/ tests/

Directives de contribution

  1. Forkez et clonez le dépôt
  2. Configurez l'environnement de développement en suivant la section Configuration du développement ci-dessus
  3. Créez une branche de fonctionnalité à partir de main
  4. Écrivez d'abord les tests si vous ajoutez de nouvelles fonctionnalités (Développement piloté par les tests)
  5. Exécutez les tests localement pour vous assurer que tous les tests passent avant de commiter
  6. Formatez le code avec Black et assurez la qualité du code
  7. Commitez les modifications avec des messages de commit descriptifs
  8. Poussez vers votre fork et créez une pull request

Flux de travail de développement

# Create feature branch
git checkout -b feature/your-feature-name

# Make your changes, write tests first
# Edit files...

# Run tests to ensure everything works
python -m pytest tests/ -v

# Format code
black src/ tests/

# Commit and push
git add .
git commit -m "Add feature description"
git push origin feature/your-feature-name

Directives de test

  • Toutes les nouvelles fonctionnalités doivent inclure des tests
  • Les tests doivent passer avant de soumettre des PR
  • Utilisez des noms de test descriptifs et des assertions claires
  • Testez à la fois les cas de succès et d'erreur
  • Assurez-vous que Meilisearch est en cours d'exécution avant d'exécuter les tests

Processus de publication

Ce projet utilise le versionnage et la publication automatisés sur PyPI. Le processus de publication est conçu pour être simple et automatisé.

Comment fonctionnent les publications

  1. Publication automatisée : Lorsque le numéro de version dans pyproject.toml change sur la branche main, une GitHub Action automatiquement :

    • Construit le paquet Python
    • Le publie sur PyPI en utilisant la publication de confiance
    • Crée une nouvelle release sur GitHub
  2. Détection de version : Le workflow compare la version actuelle dans pyproject.toml avec le commit précédent pour détecter les changements

  3. Publication PyPI : Utilise l'action de publication officielle de PyPA avec la publication de confiance (aucune clé API manuelle nécessaire)

Créer une nouvelle release

Pour créer une nouvelle release, suivez ces étapes :

1. Déterminer le numéro de version

Suivez la Version sémantique (MAJEURE.MINEURE.CORRECTIF) :

  • CORRECTIF (ex : 0.4.0 → 0.4.1) : Corrections de bugs, mises à jour de la documentation, améliorations mineures
  • MINEURE (ex : 0.4.0 → 0.5.0) : Nouvelles fonctionnalités, nouveaux outils MCP, améliorations significatives
  • MAJEURE (ex : 0.5.0 → 1.0.0) : Changements cassants, changements majeurs d'API
2. Mettre à jour la version et créer une PR
# 1. Create a branch from latest main
git checkout main
git pull origin main
git checkout -b release/v0.5.0

# 2. Update version in pyproject.toml
# Edit the version = "0.4.0" line to your new version

# 3. Commit and push
git add pyproject.toml
git commit -m "Bump version to 0.5.0"
git push origin release/v0.5.0

# 4. Create PR and get it reviewed/merged
gh pr create --title "Release v0.5.0" --body "Bump version for release"
3. Fusionner dans Main

Une fois la PR approuvée et fusionnée dans main, la GitHub Action va automatiquement :

  1. Détecter le changement de version
  2. Construire le paquet
  3. Publier sur PyPI à https://pypi.org/p/meilisearch-mcp
  4. Rendre la nouvelle version disponible via pip install meilisearch-mcp
4. Vérifier la release

Après la fusion, vérifiez la release :

# Check GitHub Action status
gh run list --workflow=publish.yml

# Verify on PyPI (may take a few minutes)
pip index versions meilisearch-mcp

# Test installation of new version
pip install --upgrade meilisearch-mcp

Fichier de workflow de release

La release automatisée est gérée par .github/workflows/publish.yml, qui :

  • Se déclenche lors des poussées vers la branche main
  • Vérifie si la version de pyproject.toml a changé
  • Utilise Python 3.10 et les outils de construction officiels
  • Publie en utilisant la publication de confiance (aucune clé API requise)
  • Fournit une sortie verbeuse pour le débogage

Dépannage des releases

La release ne s'est pas déclenchée : Vérifiez que la version dans pyproject.toml a effectivement changé entre les commits

La construction a échoué : Vérifiez les journaux GitHub Actions pour les erreurs de construction du paquet Python

La publication PyPI a échoué : Vérifiez le nom du paquet et que la publication de confiance est correctement configurée Conflits de version : Assurez-vous que le nouveau numéro de version n'a pas déjà été utilisé sur PyPI

Versions de développement vs Production

  • Développement : Installez depuis la source en utilisant pip install -e .
  • Production : Installez depuis PyPI en utilisant pip install meilisearch-mcp
  • Version spécifique : Installez en utilisant pip install meilisearch-mcp==0.5.0