Elasticsearch MCP Server

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Provides Elasticsearch interaction allowing users to search documents, analyze indices, and manage clusters through natural language queries

  • Mentions that Kibana is accessible as part of the Elasticsearch cluster setup, though interaction is primarily through the Elasticsearch API

Servidor MCP de Elasticsearch/OpenSearch

Descripción general

Una implementación de servidor del Protocolo de Contexto de Modelo (MCP) que facilita la interacción entre Elasticsearch y OpenSearch. Este servidor permite la búsqueda de documentos, el análisis de índices y la gestión de clústeres mediante un conjunto de herramientas.

Manifestación

https://github.com/user-attachments/assets/f7409e31-fac4-4321-9c94-b0ff2ea7ff15

Características

Operaciones de índice

  • list_indices : enumera todos los índices.
  • get_index : devuelve información (asignaciones, configuraciones, alias) sobre uno o más índices.
  • create_index : Crea un nuevo índice.
  • delete_index : eliminar un índice.

Operaciones de documentos

  • search_documents : Buscar documentos.
  • index_document : Crea o actualiza un documento en el índice.
  • get_document : Obtener un documento por ID.
  • delete_document : Eliminar un documento por ID.
  • delete_by_query : elimina los documentos que coinciden con la consulta proporcionada.

Operaciones de clúster

  • get_cluster_health : devuelve información básica sobre el estado del clúster.
  • get_cluster_stats : devuelve una descripción general de alto nivel de las estadísticas del clúster.

Operaciones de alias

  • list_aliases : enumera todos los alias.
  • get_alias : obtiene información de alias para un índice específico.
  • put_alias : crea o actualiza un alias para un índice específico.
  • delete_alias : elimina un alias para un índice específico.

Configurar variables de entorno

Copie el archivo .env.example a .env y actualice los valores según corresponda.

Iniciar el clúster Elasticsearch/OpenSearch

Inicie el clúster Elasticsearch/OpenSearch usando Docker Compose:

# For Elasticsearch docker-compose -f docker-compose-elasticsearch.yml up -d # For OpenSearch docker-compose -f docker-compose-opensearch.yml up -d

El nombre de usuario predeterminado de Elasticsearch es elastic y la contraseña es test123 . El nombre de usuario predeterminado de OpenSearch es admin y la contraseña es admin .

Puede acceder a los paneles de control de Kibana/OpenSearch desde http://localhost:5601 .

Uso con Claude Desktop

Opción 1: Instalación mediante herrería

Para instalar Elasticsearch Server para Claude Desktop automáticamente a través de Smithery :

npx -y @smithery/cli install elasticsearch-mcp-server --client claude

Opción 2: Uso de uvx

Usar uvx instalará automáticamente el paquete desde PyPI, sin necesidad de clonar el repositorio localmente. Agregue la siguiente configuración al archivo de configuración de Claude Desktop: claude_desktop_config.json .

// For Elasticsearch { "mcpServers": { "elasticsearch-mcp-server": { "command": "uvx", "args": [ "elasticsearch-mcp-server" ], "env": { "ELASTICSEARCH_HOST": "https://localhost:9200", "ELASTICSEARCH_USERNAME": "elastic", "ELASTICSEARCH_PASSWORD": "test123" } } } } // For OpenSearch { "mcpServers": { "opensearch-mcp-server": { "command": "uvx", "args": [ "opensearch-mcp-server" ], "env": { "OPENSEARCH_HOST": "https://localhost:9200", "OPENSEARCH_USERNAME": "admin", "OPENSEARCH_PASSWORD": "admin" } } } }

Opción 3: Uso de uv con desarrollo local

Usar uv requiere clonar el repositorio localmente y especificar la ruta al código fuente. Agregue la siguiente configuración al archivo de configuración de Claude Desktop: claude_desktop_config.json .

// For Elasticsearch { "mcpServers": { "elasticsearch-mcp-server": { "command": "uv", "args": [ "--directory", "path/to/src/elasticsearch_mcp_server", "run", "elasticsearch-mcp-server" ], "env": { "ELASTICSEARCH_HOST": "https://localhost:9200", "ELASTICSEARCH_USERNAME": "elastic", "ELASTICSEARCH_PASSWORD": "test123" } } } } // For OpenSearch { "mcpServers": { "opensearch-mcp-server": { "command": "uv", "args": [ "--directory", "path/to/src/elasticsearch_mcp_server", "run", "opensearch-mcp-server" ], "env": { "OPENSEARCH_HOST": "https://localhost:9200", "OPENSEARCH_USERNAME": "admin", "OPENSEARCH_PASSWORD": "admin" } } } }
  • En macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • En Windows: %APPDATA%/Claude/claude_desktop_config.json

Reinicie Claude Desktop para cargar el nuevo servidor MCP.

Ahora puedes interactuar con tu clúster Elasticsearch/OpenSearch a través de Claude usando comandos de lenguaje natural como:

  • "Enumerar todos los índices del clúster"
  • "¿Qué edad tiene el estudiante Bob?"
  • "Muéstrame el estado de salud del clúster"

Uso con el cliente Anthropic MCP

uv run mcp_client/client.py src/server.py

Licencia

Este proyecto está licenciado bajo la licencia Apache versión 2.0: consulte el archivo de LICENCIA para obtener más detalles.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Facilita la interacción con los clústeres de Elasticsearch al permitir a los usuarios realizar operaciones de índice, búsquedas de documentos y gestión de clústeres a través de un servidor de protocolo de contexto de modelo y comandos de lenguaje natural.

  1. Overview
    1. Demo
      1. Features
        1. Index Operations
        2. Document Operations
        3. Cluster Operations
        4. Alias Operations
      2. Configure Environment Variables
        1. Start Elasticsearch/OpenSearch Cluster
          1. Usage with Claude Desktop
            1. Option 1: Installing via Smithery
            2. Option 2: Using uvx
            3. Option 3: Using uv with local development
          2. Usage with Anthropic MCP Client
            1. License
              ID: b3po3delex