Elastic MCP

Interactúa con un clúster de Elasticsearch a través del Model Context Protocol (MCP), permitiendo a los clientes consultar, gestionar y analizar datos.

Documentación

Demo

https://github.com/user-attachments/assets/907c3f6f-807c-4805-879a-649c74804c29

Elastic MCP

Conéctate a tu clúster de Elasticsearch desde cualquier cliente compatible con MCP (como Claude Desktop) utilizando el Protocolo de Contexto de Modelo (MCP). Este servidor expone tus datos y operaciones de Elasticsearch a través de la interfaz MCP, permitiendo que agentes y aplicaciones consulten, gestionen y analicen tus datos mediante interacciones en lenguaje natural.


1. Configuración

Requisitos previos

  • Python 3.8+
  • Elasticsearch en ejecución y accesible
  • uv o pip para la gestión de dependencias

Instalar dependencias

Usando el gestor de paquetes uv:

uv pip install -r requirements.txt

2. Ejecutar el servidor MCP

Prueba usando MCP Inspector

ELASTIC_URL="http://localhost:9200" ELASTIC_USERNAME="your_username" ELASTIC_PASSWORD="your_password" fastmcp dev tools/elastic_tool.py

o

Ejecuta el servidor mcp mediante

ELASTIC_URL="http://localhost:9200" ELASTIC_USERNAME="elastic" ELASTIC_PASSWORD="hKsXqDsd" python3 tools/elastic_tool.py

y ejecuta el cliente mcp en otra terminal mediante

python3 mcp_client.py

o

Agrégalo a Claude Desktop editando el archivo claude_desktop_config.json y añadiendo el siguiente fragmento de código


{
  "mcpServers": {
    "Elastic MCP Server": {
      "command": "uv",
      "args": [
        "run",
        "--with-requirements",
        "<absolute path to requirements.txt>",
        "fastmcp",
        "run",
        "<absolute path to elastic_tool.py>"
      ],
      "env": {
        "ELASTIC_URL": "http://localhost:9200",
        "ELASTIC_USERNAME": "your_username",
        "ELASTIC_PASSWORD": "your_password"
      }
    }
  }
}


3. Herramientas proporcionadas

  • search_index: Busca en un índice con una cadena de consulta.
  • list_indices: Lista todos los índices (excluyendo los índices del sistema).
  • get_index_mappings: Obtiene los mapeos de un índice específico.

4. Licencia

Licencia MIT


5. Notas

  • Para producción, no codifiques credenciales de forma fija.
  • Para más información sobre MCP, consulta la documentación de FastMCP.