Skip to main content
Glama
jedrazb

Elasticsearch Semantic Search MCP Server

MCP 서버: Elasticsearch 의미 검색 도구

데모 리포: https://j.blaszyk.me/tech-blog/mcp-server-elasticsearch-semantic-search/

목차


Related MCP server: Elasticsearch 7.x MCP Server

개요

이 저장소는 Elasticsearch 에 색인된 Search Labs 블로그 게시물을 통한 의미 검색을 위한 MCP 서버의 Python 구현을 제공합니다.

Elastic Open Crawler를 사용하여 블로그 게시물을 크롤링하고 search-labs-posts 인덱스에 저장했다고 가정합니다.


MCP 서버 실행

ES_URLES_AP_KEY .env 파일에 추가합니다. (최소 권한으로 API 키를 생성하는 방법은 여기를 참조하세요.)

MCP Inspector 에서 서버를 시작합니다.

지엑스피1

실행 후 MCP Inspector에 접속하세요: http://localhost:5173


Claude Desktop과 통합

Claude Desktop 에 MCP 서버를 추가하려면:

make install-claude-config

이렇게 하면 홈 디렉터리의 claude_desktop_config.json 이 업데이트됩니다. 다음에 다시 시작하면 Claude 앱이 서버를 감지하고 선언된 도구를 로드합니다.


크롤링 검색 랩 블로그 게시물

1. 크롤러 설정 확인

Elastic Open Crawler가 작동하는지 확인하려면 다음을 실행하세요.

docker run --rm \ --entrypoint /bin/bash \ -v "$(pwd)/crawler-config:/app/config" \ --network host \ docker.elastic.co/integrations/crawler:latest \ -c "bin/crawler crawl config/test-crawler.yml"

이렇게 하면 단일 페이지 에서 크롤링된 콘텐츠가 인쇄됩니다.


2. Elasticsearch 구성

Elasticsearch URL과 API 키를 설정합니다.

최소 크롤러 권한 으로 API 키 생성:

POST /_security/api_key { "name": "crawler-search-labs", "role_descriptors": { "crawler-search-labs-role": { "cluster": ["monitor"], "indices": [ { "names": ["search-labs-posts"], "privileges": ["all"] } ] } }, "metadata": { "application": "crawler" } }

응답에서 encoded 값을 복사하여 API_KEY 로 설정합니다.


3. 의미 검색을 위한 인덱스 매핑 업데이트

search-labs-posts 인덱스가 있는지 확인하세요. 없으면 새로 만드세요.

PUT search-labs-posts

의미 검색을 활성화하기 위해 매핑을 업데이트합니다.

PUT search-labs-posts/_mappings { "properties": { "body": { "type": "text", "copy_to": "semantic_body" }, "semantic_body": { "type": "semantic_text", "inference_id": ".elser-2-elasticsearch" } } }

body 필드는 Elasticsearch의 ELSER 모델을 사용하여 의미 텍스트 로 인덱싱됩니다.


4. 크롤링 시작

크롤러를 실행하여 인덱스를 채웁니다.

docker run --rm \ --entrypoint /bin/bash \ -v "$(pwd)/crawler-config:/app/config" \ --network host \ docker.elastic.co/integrations/crawler:latest \ -c "bin/crawler crawl config/elastic-search-labs-crawler.yml"
TIP

새로운 Elasticsearch 클러스터를 사용하는 경우 인덱싱하기 전에 ELSER 모델이 시작될 때까지 기다리세요.


5. 색인된 문서 확인

문서가 인덱싱되었는지 확인하세요.

GET search-labs-posts/_count

이렇게 하면 인덱스의 총 문서 수가 반환됩니다. Kibana 에서도 확인할 수 있습니다.


완료! 이제 Search Labs 블로그 게시물 에서 의미 검색을 수행할 수 있습니다.

-
security - not tested
F
license - not found
-
quality - not tested

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/jedrazb/elastic-semantic-search-mcp-server'

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