Meilisearch
officielInteragir et interroger avec Meilisearch (API de recherche plein texte et sémantique)
Que pouvez-vous faire avec Meilisearch MCP ?
- Créer et gérer des index — Demandez la création d’un index avec une clé primaire personnalisée via
create-index, listez ceux existants, ou supprimez un index et ses documents. - Ajouter et récupérer des documents — Utilisez
add-documentspour importer ou mettre à jour des enregistrements en masse, etget-documentspour les récupérer avec pagination depuis n’importe quel index. - Lancer des recherches flexibles — Recherchez sur un ou plusieurs index avec filtres, tri et facettes à l’aide de l’outil
search, y compris les options sémantiques et hybrides. - Régler les paramètres de recherche — Consultez ou mettez à jour les règles de classement, la facettisation et les attributs recherchables d’un index via
get-settingsetupdate-settings. - Surveiller les tâches et la santé — Vérifiez la progression de l’indexation avec
get-tasks, annulez les opérations en file d’attente, ou confirmez l’état de l’instance viahealth-checketget-stats.
Documentation
Serveur MCP Meilisearch
Meilisearch | Meilisearch Cloud | Documentation | Discord
⚡ 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 d'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 traiter vos données par 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 conversation avec n'importe quel LLM
- 🚀 Zéro 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 MCP natif 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 sur un ou plusieurs index avec filtrage avancé
- ⚙️ Configuration des paramètres - Affinez la pertinence et les performances de 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 la santé - Gardez un œil sur votre instance Meilisearch
- 🧱 Sortie d'outil structurée - Chaque outil renvoyant des données fournit
structuredContenten plus du texte, conformément à la dernière spécification MCP - 🔀 Pile MCP moderne - Construit sur le SDK Python officiel MCP v2 (spécification 2026-07-28), rétrocompatible avec les anciens clients MCP
- 🐍 Implémentation Python - Version TypeScript également disponible
🚀 Démarrage rapide
Mettez-vous en route 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 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.10
- Instance Meilisearch en cours d'exécution
- Client compatible MCP (Claude Desktop, agents OpenAI, etc.)
Depuis PyPI
pip install meilisearch-mcp
Depuis la source (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 .
Avec 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 la source
# 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 des connexions
- 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 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 filtres, tri et facettes
- Recherche multi-index
- Recherche sémantique avec 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 recherchables
- 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
⚠️ Note : 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 en production sans garde-fous appropriés.
📊 Surveillance et santé
- Vérifications de santé
- Statistiques système
- Suivi des tâches
- Informations de 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
Configuration de l'environnement de développement
-
Démarrez Meilisearch :
docker run -d -p 7700:7700 getmeili/meilisearch:v1.28 -
Installez les dépendances de développement :
uv pip install -r requirements-dev.txt -
Exécutez les tests :
python -m pytest tests/ -v -
Formatez le code :
black src/ tests/
Test avec MCP Inspector
npx @modelcontextprotocol/inspector python -m src.meilisearch_mcp
🤝 Communauté et support
Nous serions ravis de vous entendre ! Voici comment obtenir de l'aide et vous connecter :
- 💬 Rejoignez notre Discord - Discutez avec la communauté
- 🐛 Signalez des problèmes - Vous avez trouvé un bug ? Faites-le nous savoir !
- 💡 Demandes de fonctionnalités - Vous avez une idée ? Nous vous écoutons !
- 📖 Documentation Meilisearch - En savoir plus sur Meilisearch
🤗 Contribution
Nous accueillons les contributions ! Voici comment commencer :
- Forkez le dépôt
- Créez votre branche de fonctionnalité (
git checkout -b feature/amazing-feature) - Écrivez des tests pour vos modifications
- Effectuez vos modifications et exécutez les tests
- Formatez votre code avec
black - Validez vos modifications (
git commit -m 'Add amazing feature') - Poussez vers votre branche (
git push origin feature/amazing-feature) - Ouvrez une Pull Request
Consultez nos Directives de contribution pour plus de détails.
📦 Processus de publication
Ce projet utilise un versionnage et une 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 des connexions
get-connection-settings: Voir l'URL de connexion Meilisearch actuelle et le statut de la clé APIupdate-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 clé primaire optionnellelist-indexes: Lister tous les index disponiblesdelete-index: Supprimer un index existant et tous ses documentsget-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 paginationadd-documents: Ajouter ou mettre à jour des documents dans un index
Recherche
search: Recherche flexible sur un ou plusieurs index avec options de filtrage et de tri
Gestion des paramètres
get-settings: Voir les paramètres actuels d'un indexupdate-settings: Mettre à jour les paramètres de l'index (classement, facettisation, etc.)
Gestion des clés API
get-keys: Lister toutes les clés APIcreate-key: Créer une nouvelle clé API avec des permissions spécifiquesdelete-key: Supprimer une clé API existante
Gestion des tâches
get-task: Obtenir des informations sur une tâche spécifiqueget-tasks: Lister les tâches avec filtres optionnelscancel-tasks: Annuler les tâches en attente ou en file d'attente
Surveillance du système
health-check: Vérification de santé de baseget-health-status: Statut de santé completget-version: Obtenir les informations de version de Meilisearchget-stats: Obtenir les statistiques de la base de donnéesget-system-info: Obtenir des informations au niveau système
Configuration du développement
Prérequis
-
Démarrez 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 -
Installez 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
- Forkez et clonez le dépôt
- Configurez l'environnement de développement en suivant la section Configuration du développement ci-dessus
- Créez une branche de fonctionnalité à partir de
main - Écrivez d'abord les tests si vous ajoutez de nouvelles fonctionnalités (développement piloté par les tests)
- Exécutez les tests localement pour vous assurer que tous les tests passent avant de valider
- Formatez le code avec Black et assurez la qualité du code
- Validez les modifications avec des messages de validation descriptifs
- Poussez vers votre fork et créez une pull request
Workflow 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 tests 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 de lancer les tests
Processus de publication
Ce projet utilise un versionnage et une publication automatisés vers PyPI. Le processus de publication est conçu pour être simple et automatisé.
Comment fonctionnent les publications
-
Publication automatisée : Lorsque le numéro de version dans
pyproject.tomlchange sur la branchemain, une GitHub Action automatiquement :- Construit le paquet Python
- Le publie sur PyPI en utilisant la publication de confiance
- Crée une nouvelle version sur GitHub
-
Détection de version : Le workflow compare la version actuelle dans
pyproject.tomlavec le commit précédent pour détecter les changements -
Publication PyPI : Utilise l'action de publication officielle de PyPA avec publication de confiance (pas de clés API manuelles nécessaires)
Créer une nouvelle version
Pour créer une nouvelle version, suivez ces étapes :
1. Déterminez le numéro de version
Suivez le Versionnage sémantique (MAJEUR.MINEUR.CORRECTIF) :
- CORRECTIF (par exemple, 0.4.0 → 0.4.1) : Corrections de bugs, mises à jour de documentation, améliorations mineures
- MINEUR (par exemple, 0.4.0 → 0.5.0) : Nouvelles fonctionnalités, nouveaux outils MCP, améliorations significatives
- MAJEUR (par exemple, 0.5.0 → 1.0.0) : Changements cassants, modifications majeures de l'API
2. Mettez à jour la version et créez 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. Fusionnez dans la branche principale
Une fois la PR approuvée et fusionnée dans main, la GitHub Action automatiquement :
- Détecte le changement de version
- Construit le paquet
- Publie sur PyPI à https://pypi.org/p/meilisearch-mcp
- Rend la nouvelle version disponible via
pip install meilisearch-mcp
4. Vérifiez la version
Après la fusion, vérifiez la version :
# 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 publication
La publication automatisée est gérée par .github/workflows/publish.yml, qui :
- Se déclenche sur les push vers la branche
main - Vérifie si la version de
pyproject.tomla 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 détaillée pour le débogage
Dépannage des publications
Le déclenchement de la release n'a pas eu lieu : Vérifiez que la version dans pyproject.toml a réellement changé entre les commits
La construction a échoué : Consultez les journaux GitHub Actions pour les erreurs de construction du package Python
La publication sur PyPI a échoué : Vérifiez le nom du package et que la publication de confiance est correctement configurée
Conflits de versions : 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 à partir de 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