Servidor MCP de Meilisearch
Un servidor de Protocolo de Contexto de Modelo (MCP) para interactuar con Meilisearch a través de interfaces LLM como Claude.
Características
Gestión de índices y documentos
Configuración y gestión de ajustes
Monitoreo de tareas y gestión de claves API
Herramientas de registro y monitoreo integradas
Configuración de conexión dinámica para cambiar entre instancias de Meilisearch
Búsqueda inteligente en uno o varios índices
Esta es una implementación de Python, hay integración de Typescript si necesita trabajar con un servidor Meilisearch MCP dentro del navegador
Related MCP server: Documentation MCP Server
Instalación
# Clone repository
git clone <repository_url>
cd meilisearch-mcp
# Create virtual environment and install
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e .Requisitos
Python ≥ 3.9
Ejecución de la instancia de Meilisearch
Node.js (para pruebas con MCP Inspector)
Uso
Variables de entorno
MEILI_HTTP_ADDR=http://localhost:7700 # Default Meilisearch URL
MEILI_MASTER_KEY=your_master_key # Optional: Default Meilisearch API keyConfiguración de conexión dinámica
El servidor proporciona herramientas para ver y actualizar la configuración de conexión en tiempo de ejecución:
get-connection-settings: Ver la URL de conexión actual y el estado de la clave APIupdate-connection-settings: Actualiza la URL y/o la clave API para conectarse a una instancia de Meilisearch diferente
Ejemplo de uso a través de MCP:
// Get current settings
{
"name": "get-connection-settings"
}
// Update connection settings
{
"name": "update-connection-settings",
"arguments": {
"url": "http://new-host:7700",
"api_key": "new-api-key"
}
}Funcionalidad de búsqueda
El servidor proporciona una herramienta de búsqueda flexible que puede buscar en uno o todos los índices:
search: Busque en los índices de Meilisearch con parámetros opcionales
Ejemplo de uso a través de MCP:
// Search in a specific index
{
"name": "search",
"arguments": {
"query": "search term",
"indexUid": "movies",
"limit": 10
}
}
// Search across all indices
{
"name": "search",
"arguments": {
"query": "search term",
"limit": 5,
"sort": ["releaseDate:desc"]
}
}Parámetros de búsqueda disponibles:
query: La consulta de búsqueda (obligatoria)indexUid: Índice específico en el que buscar (opcional)limit: Número máximo de resultados por índice (opcional, predeterminado: 20)offset: Número de resultados a omitir (opcional, predeterminado: 0)filter: expresión de filtro (opcional)sort: Reglas de ordenación (opcional)
Ejecución del servidor
python -m src.meilisearch_mcpUso con Claude Desktop
Para usar esto con Claude Desktop, agregue lo siguiente a su claude_desktop_config.json :
{
"mcpServers": {
"meilisearch": {
"command": "uvx",
"args": ["-n", "meilisearch-mcp"]
}
}
}Pruebas con MCP Inspector
npx @modelcontextprotocol/inspector python -m src.meilisearch_mcpHerramientas 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: Actualiza la URL y/o la clave API para conectarse a una instancia diferente
Gestión de índices
create-index: Crea un nuevo índice con una clave principal opcionallist-indexes: Lista todos los índices disponiblesget-index-metrics: Obtenga métricas detalladas para un índice específico
Operaciones de documentos
get-documents: Recuperar documentos de un índice con paginaciónadd-documents: Agregar o actualizar documentos en un índice
Buscar
search: Búsqueda flexible en uno o varios índices con opciones de filtrado y clasificación.
Administración de configuraciones
get-settings: Ver la configuración actual de un índiceupdate-settings: Actualizar la configuración del índice (clasificación, facetado, etc.)
Gestión de claves API
get-keys: enumera todas las claves APIcreate-key: crea 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: Lista de tareas con filtros opcionales:limit: Número máximo de tareas a devolverfrom: Número de tareas a omitirreverse: Orden de clasificación de tareasbatchUids: Filtrar por UID de loteuids: Filtrar por UID de tareacanceledBy: Filtrar por origen de cancelacióntypes: Filtrar por tipos de tareasstatuses: Filtrar por estados de tareasindexUids: Filtrar por UID de índiceafterEnqueuedAt/beforeEnqueuedAt: Filtrar por tiempo de puesta en colaafterStartedAt/beforeStartedAt: Filtrar por hora de inicioafterFinishedAt/beforeFinishedAt: Filtrar por hora de finalización
cancel-tasks: Cancelar tareas pendientes o en coladelete-tasks: Eliminar tareas completadas
Monitoreo del sistema
health-check: chequeo de salud básicoget-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 del sistema
Contribuyendo
Repositorio de bifurcaciones
Crear rama de características
Confirmar cambios
Crear una solicitud de extracción
Licencia
Instituto Tecnológico de Massachusetts (MIT)