Skip to main content
Glama

Elasticsearch MCP Server

Elasticsearch/OpenSearch MCP 서버

대장간 배지

개요

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

Related MCP server: OpenSearch MCP Server

데모

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

특징

일반 운영

  • general_api_request : 일반적인 HTTP API 요청을 수행합니다. 전용 도구가 없는 Elasticsearch/OpenSearch API에 이 도구를 사용하세요.

인덱스 작업

  • 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_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" } } } }

옵션 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_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" } } } }
  • 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 파일을 참조하세요.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cr7258/elasticsearch-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server