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

Elasticsearch/OpenSearch MCP 서버

개요

Elasticsearch와 OpenSearch 간의 상호작용을 제공하는 모델 컨텍스트 프로토콜(MCP) 서버 구현입니다. 이 서버는 다양한 도구를 통해 문서 검색, 인덱스 분석, 클러스터 관리를 지원합니다.

데모

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

특징

인덱스 작업

  • list_indices : 모든 인덱스를 나열합니다.
  • get_index : 하나 이상의 인덱스에 대한 정보(매핑, 설정, 별칭)를 반환합니다.
  • create_index : 새로운 인덱스를 생성합니다.
  • delete_index : 인덱스를 삭제합니다.

문서 작업

  • search_documents : 문서를 검색합니다.
  • index_document : 인덱스에 문서를 생성하거나 업데이트합니다.
  • get_document : ID로 문서를 가져옵니다.
  • delete_document : ID로 문서를 삭제합니다.
  • delete_by_query : 제공된 쿼리와 일치하는 문서를 삭제합니다.

클러스터 작업

  • get_cluster_health : 클러스터 상태에 대한 기본 정보를 반환합니다.
  • get_cluster_stats : 클러스터 통계의 개요를 반환합니다.

별칭 작업

  • list_aliases : 모든 별칭을 나열합니다.
  • get_alias : 특정 인덱스에 대한 별칭 정보를 가져옵니다.
  • put_alias : 특정 인덱스에 대한 별칭을 만들거나 업데이트합니다.
  • delete_alias : 특정 인덱스의 별칭을 삭제합니다.

환경 변수 구성

.env.example 파일을 .env 로 복사하고 값을 적절히 업데이트합니다.

Elasticsearch/OpenSearch 클러스터 시작

Docker Compose를 사용하여 Elasticsearch/OpenSearch 클러스터를 시작합니다.

지엑스피1

Elasticsearch의 기본 사용자 이름은 elastic 이고 비밀번호는 test123 입니다. OpenSearch의 기본 사용자 이름은 admin 이고 비밀번호는 admin 입니다.

http://localhost:5601 에서 Kibana/OpenSearch 대시보드에 액세스할 수 있습니다.

Claude Desktop과 함께 사용

옵션 1: Smithery를 통해 설치

Smithery를 통해 Claude Desktop에 Elasticsearch Server를 자동으로 설치하려면:

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

옵션 2: uvx 사용

uvx 사용하면 PyPI에서 패키지가 자동으로 설치되므로 로컬 저장소를 복제할 필요가 없습니다. 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" } } } }

옵션 3: 로컬 개발에 uv 사용

uv 사용하려면 로컬 저장소를 복제하고 소스 코드 경로를 지정해야 합니다. 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" } } } }
  • macOS의 경우: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows의 경우: %APPDATA%/Claude/claude_desktop_config.json

새로운 MCP 서버를 로드하려면 Claude Desktop을 다시 시작하세요.

이제 Claude를 통해 다음과 같은 자연어 명령을 사용하여 Elasticsearch/OpenSearch 클러스터와 상호 작용할 수 있습니다.

  • "클러스터의 모든 인덱스를 나열합니다"
  • "학생 밥은 몇 살이에요?"
  • "클러스터 상태 보여주세요"

Anthropic MCP 클라이언트와 함께 사용

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

특허

이 프로젝트는 Apache 라이선스 버전 2.0에 따라 라이선스가 부여되었습니다. 자세한 내용은 LICENSE 파일을 참조하세요.

You must be authenticated.

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

사용자가 모델 컨텍스트 프로토콜 서버와 자연어 명령을 통해 인덱스 작업, 문서 검색 및 클러스터 관리를 수행할 수 있도록 하여 Elasticsearch 클러스터와의 상호 작용을 용이하게 합니다.

  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