Meilisearch MCP Server
oficialInteractúa y consulta con Meilisearch (API de búsqueda de texto completo y semántica)
Documentación
Servidor MCP de Meilisearch
Meilisearch | Meilisearch Cloud | Documentación | Discord
⚡ ¡Conecta cualquier LLM a Meilisearch y potencia tu IA con capacidades de búsqueda ultrarrápidas! 🔍
🤔 ¿Qué es esto?
El Servidor MCP de Meilisearch es un servidor del Protocolo de Contexto de Modelo que permite a cualquier cliente compatible con MCP (incluyendo Claude, agentes de OpenAI y otros LLMs) interactuar con Meilisearch. Este servidor basado en stdio permite a los asistentes de IA gestionar índices de búsqueda, realizar búsquedas y manejar tus datos mediante conversación natural.
¿Por qué usar esto?
- 🤖 Compatibilidad Universal - Funciona con cualquier cliente MCP, no solo Claude
- 🗣️ Control en Lenguaje Natural - Gestiona Meilisearch conversando con cualquier LLM
- 🚀 Sin Curva de Aprendizaje - No necesitas aprender la API de Meilisearch
- 🔧 Acceso Completo a Funcionalidades - Todas las capacidades de Meilisearch a tu alcance
- 🔄 Conexiones Dinámicas - Cambia entre instancias de Meilisearch sobre la marcha
- 📡 Transporte stdio - Actualmente usa stdio; ¡próximamente soporte nativo MCP para Meilisearch!
✨ Características Principales
- 📊 Gestión de Índices y Documentos - Crea, actualiza y gestiona índices de búsqueda
- 🔍 Búsqueda Inteligente - Busca en uno o varios índices con filtrado avanzado
- ⚙️ Configuración de Ajustes - Ajusta la relevancia de búsqueda y el rendimiento
- 📈 Monitorización de Tareas - Sigue el progreso de indexación y las operaciones del sistema
- 🔐 Gestión de Claves API - Control de acceso seguro
- 🏥 Monitorización de Salud - Vigila tu instancia de Meilisearch
- 🐍 Implementación en Python - Versión TypeScript también disponible
🚀 Inicio Rápido
¡Ponte en marcha en solo 3 pasos!
1️⃣ Instala el paquete
# Using pip
pip install meilisearch-mcp
# Or using uvx (recommended)
uvx -n meilisearch-mcp
2️⃣ Configura Claude Desktop
Añade esto a tu claude_desktop_config.json:
{
"mcpServers": {
"meilisearch": {
"command": "uvx",
"args": ["-n", "meilisearch-mcp"]
}
}
}
3️⃣ Inicia Meilisearch
# Using Docker (recommended)
docker run -d -p 7700:7700 getmeili/meilisearch:v1.28
# Or using Homebrew
brew install meilisearch
meilisearch
¡Eso es todo! ¡Ahora puedes pedirle a tu asistente de IA que busque y gestione tus datos de Meilisearch! 🎉
📚 Ejemplos
💬 Habla con tu asistente de IA de forma natural:
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!
🔍 Ejemplo de Búsqueda Avanzada:
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
🔧 Instalación
Requisitos Previos
- Python ≥ 3.9
- Instancia de Meilisearch en ejecución
- Cliente compatible con MCP (Claude Desktop, agentes de OpenAI, etc.)
Desde PyPI
pip install meilisearch-mcp
Desde el Código Fuente (para desarrollo)
# 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 .
Usando Docker
¡Perfecto para entornos contenedorizados como flujos de trabajo de n8n!
Desde 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
Construir desde el Código Fuente
# 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
Integración con n8n
Para flujos de trabajo de n8n, puedes usar la imagen Docker directamente en tu configuración:
meilisearch-mcp:
image: getmeili/meilisearch-mcp:latest
environment:
- MEILI_HTTP_ADDR=http://meilisearch:7700
- MEILI_MASTER_KEY=masterKey
🛠️ ¿Qué Puedes Hacer?
🔗 Gestión de Conexiones
- Ver la configuración de conexión actual
- Cambiar entre instancias de Meilisearch dinámicamente
- Actualizar claves API sobre la marcha
📁 Operaciones con Índices
- Crear nuevos índices con claves primarias personalizadas
- Listar todos los índices con estadísticas
- Eliminar índices y sus datos
- Obtener métricas detalladas del índice
📄 Gestión de Documentos
- Añadir o actualizar documentos
- Recuperar documentos con paginación
- Importar datos en lote
🔍 Capacidades de Búsqueda
- Buscar con filtros, ordenación y facetas
- Búsqueda en múltiples índices
- Búsqueda semántica con vectores
- Búsqueda híbrida (palabras clave + semántica)
⚙️ Ajustes y Configuración
- Configurar reglas de clasificación
- Configurar facetado y filtrado
- Gestionar atributos buscables
- Personalizar la tolerancia a errores tipográficos
🔐 Seguridad
- Crear y gestionar claves API
- Establecer permisos granulares
- Monitorizar el uso de claves
⚠️ Nota: Aunque puedes añadir y actualizar hosts y claves API directamente en el chat por conveniencia, este enfoque está diseñado principalmente para casos de uso de desarrollo (como conectarse a múltiples instancias sobre la marcha). No sigue las mejores prácticas de seguridad de MCP y no debe usarse en entornos de producción sin las salvaguardas adecuadas.
📊 Monitorización y Salud
- Verificaciones de salud
- Estadísticas del sistema
- Monitorización de tareas
- Información de versión
🌍 Variables de Entorno
Configura los ajustes de conexión predeterminados:
MEILI_HTTP_ADDR=http://localhost:7700 # Default Meilisearch URL
MEILI_MASTER_KEY=your_master_key # Optional: Default API key
💻 Desarrollo
Configuración del Entorno de Desarrollo
-
Inicia Meilisearch:
docker run -d -p 7700:7700 getmeili/meilisearch:v1.28 -
Instala Dependencias de Desarrollo:
uv pip install -r requirements-dev.txt -
Ejecuta Pruebas:
python -m pytest tests/ -v -
Formatea el Código:
black src/ tests/
Pruebas con MCP Inspector
npx @modelcontextprotocol/inspector python -m src.meilisearch_mcp
🤝 Comunidad y Soporte
¡Nos encantaría saber de ti! Aquí te mostramos cómo obtener ayuda y conectarte:
- 💬 Únete a nuestro Discord - Chatea con la comunidad
- 🐛 Reporta Problemas - ¿Encontraste un error? ¡Avísanos!
- 💡 Solicitudes de Funcionalidades - ¿Tienes una idea? ¡Te escuchamos!
- 📖 Documentación de Meilisearch - Aprende más sobre Meilisearch
🤗 Contribuciones
¡Agradecemos las contribuciones! Aquí te mostramos cómo empezar:
- Haz un fork del repositorio
- Crea tu rama de funcionalidad (
git checkout -b feature/amazing-feature) - Escribe pruebas para tus cambios
- Realiza tus cambios y ejecuta las pruebas
- Formatea tu código con
black - Confirma tus cambios (
git commit -m 'Add amazing feature') - Sube a tu rama (
git push origin feature/amazing-feature) - Abre una Pull Request
Consulta nuestras Guías de Contribución para más detalles.
📦 Proceso de Publicación
Este proyecto utiliza versionado y publicación automatizados. Cuando la versión en pyproject.toml cambia en la rama main, el paquete se publica automáticamente en PyPI.
Consulta la sección Proceso de Publicación para instrucciones detalladas.
📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.
Meilisearch es un motor de búsqueda de código abierto que ofrece una experiencia de búsqueda encantadora.
Aprende más sobre Meilisearch en meilisearch.com
📖 Documentación Completa
Herramientas Disponibles
Gestión de Conexiones
get-connection-settings: Ver la URL de conexión actual de Meilisearch y el estado de la clave APIupdate-connection-settings: Actualizar la URL y/o clave API para conectarse a una instancia diferente
Gestión de Índices
create-index: Crear un nuevo índice con clave primaria opcionallist-indexes: Listar todos los índices disponiblesdelete-index: Eliminar un índice existente y todos sus documentosget-index-metrics: Obtener métricas detalladas para un índice específico
Operaciones con Documentos
get-documents: Recuperar documentos de un índice con paginaciónadd-documents: Añadir o actualizar documentos en un índice
Búsqueda
search: Búsqueda flexible en uno o varios índices con opciones de filtrado y ordenación
Gestión de Ajustes
get-settings: Ver los ajustes actuales de un índiceupdate-settings: Actualizar los ajustes del índice (clasificación, facetado, etc.)
Gestión de Claves API
get-keys: Listar todas las claves APIcreate-key: Crear una nueva clave API con permisos específicosdelete-key: Eliminar una clave API existente
Gestión de Tareas
get-task: Obtener información sobre una tarea específicaget-tasks: Listar tareas con filtros opcionalescancel-tasks: Cancelar tareas pendientes o en coladelete-tasks: Eliminar tareas completadas
Monitorización del Sistema
health-check: Verificación básica de saludget-health-status: Estado de salud completoget-version: Obtener información de la versión de Meilisearchget-stats: Obtener estadísticas de la base de datosget-system-info: Obtener información a nivel de sistema
Configuración de Desarrollo
Requisitos Previos
-
Inicia el servidor 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 -
Instala herramientas de desarrollo:
# 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
Ejecución de Pruebas
Este proyecto incluye pruebas de integración exhaustivas que verifican la funcionalidad de las herramientas 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/
Importante: Las pruebas requieren una instancia de Meilisearch en ejecución en http://localhost:7700.
Calidad del Código
# 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/
Guías de Contribución
- Haz un fork y clona el repositorio
- Configura el entorno de desarrollo siguiendo la sección de Configuración de Desarrollo anterior
- Crea una rama de funcionalidad desde
main - Escribe las pruebas primero si añades nueva funcionalidad (Desarrollo Guiado por Pruebas)
- Ejecuta las pruebas localmente para asegurar que todas pasan antes de confirmar
- Formatea el código con Black y asegura la calidad del código
- Confirma los cambios con mensajes descriptivos
- Sube a tu fork y crea una pull request
Flujo de Trabajo de Desarrollo
# 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
Directrices de Pruebas
- Todas las nuevas funcionalidades deben incluir pruebas
- Las pruebas deben pasar antes de enviar PRs
- Usa nombres de prueba descriptivos y afirmaciones claras
- Prueba tanto casos de éxito como de error
- Asegúrate de que Meilisearch esté en ejecución antes de lanzar las pruebas
Proceso de Publicación
Este proyecto utiliza versionado y publicación automatizados en PyPI. El proceso de publicación está diseñado para ser simple y automatizado.
Cómo Funcionan las Publicaciones
-
Publicación Automatizada: Cuando el número de versión en
pyproject.tomlcambia en la ramamain, una GitHub Action automáticamente:- Construye el paquete Python
- Lo publica en PyPI usando publicación confiable
- Crea una nueva publicación en GitHub
-
Detección de Versión: El flujo de trabajo compara la versión actual en
pyproject.tomlcon el commit anterior para detectar cambios -
Publicación en PyPI: Usa la acción oficial de publicación de PyPA con publicación confiable (no se necesitan claves API manuales)
Crear una Nueva Publicación
Para crear una nueva publicación, sigue estos pasos:
1. Determinar el Número de Versión
Sigue el Versionado Semántico (MAYOR.MENOR.PARCHE):
- PARCHE (ej., 0.4.0 → 0.4.1): Corrección de errores, actualizaciones de documentación, mejoras menores
- MENOR (ej., 0.4.0 → 0.5.0): Nuevas funcionalidades, nuevas herramientas MCP, mejoras significativas
- MAYOR (ej., 0.5.0 → 1.0.0): Cambios disruptivos, cambios importantes en la API
2. Actualizar Versión y Crear 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. Fusionar a Principal
Una vez que la PR sea aprobada y fusionada a main, la GitHub Action automáticamente:
- Detectará el cambio de versión
- Construirá el paquete
- Publicará en PyPI en https://pypi.org/p/meilisearch-mcp
- Hará disponible la nueva versión mediante
pip install meilisearch-mcp
4. Verificar la Publicación
Después de fusionar, verifica la publicación:
# 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
Archivo de Flujo de Trabajo de Publicación
La publicación automatizada es manejada por .github/workflows/publish.yml, que:
- Se activa en pushes a la rama
main - Verifica si la versión en
pyproject.tomlcambió - Usa Python 3.10 y herramientas de construcción oficiales
- Publica usando publicación confiable (no se requieren claves API)
- Proporciona salida detallada para depuración
Solución de Problemas de Publicación
La publicación no se activó: Verifica que la versión en pyproject.toml realmente cambiara entre commits
La construcción falló: Revisa los registros de GitHub Actions para errores de construcción del paquete Python
La publicación en PyPI falló: Verifica el nombre del paquete y que la publicación confiable esté configurada correctamente
Conflictos de versión: Asegúrate de que el nuevo número de versión no se haya usado antes en PyPI
Versiones de Desarrollo vs Producción
- Desarrollo: Instalar desde el código fuente usando
pip install -e . - Producción: Instalar desde PyPI usando
pip install meilisearch-mcp - Versión específica: Instalar usando
pip install meilisearch-mcp==0.5.0