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.
Related MCP server: OpenSearch MCP Server
Manifestación
https://github.com/user-attachments/assets/f7409e31-fac4-4321-9c94-b0ff2ea7ff15
Características
Operaciones generales
general_api_request: Realiza una solicitud general a la API HTTP. Use esta herramienta para cualquier API de Elasticsearch/OpenSearch que no tenga una herramienta dedicada.
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 -dEl 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 claudeOpció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_HOSTS": "https://localhost:9200",
"ELASTICSEARCH_USERNAME": "elastic",
"ELASTICSEARCH_PASSWORD": "test123"
}
}
}
}
// For OpenSearch
{
"mcpServers": {
"opensearch-mcp-server": {
"command": "uvx",
"args": [
"opensearch-mcp-server"
],
"env": {
"OPENSEARCH_HOSTS": "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_HOSTS": "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_HOSTS": "https://localhost:9200",
"OPENSEARCH_USERNAME": "admin",
"OPENSEARCH_PASSWORD": "admin"
}
}
}
}En macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonEn 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.pyLicencia
Este proyecto está licenciado bajo la licencia Apache versión 2.0: consulte el archivo de LICENCIA para obtener más detalles.