MCP 루씬 서버
설명
MCP 루씬 서버는 아파치 루씬을 사용하여 효율적인 검색 기능을 제공하도록 설계된 모델 컨텍스트 프로토콜(MCP)의 Java 기반 구현입니다. 이 서버를 사용하면 루씬의 강력한 인덱싱 및 검색 기능을 활용하여 문서를 관리하고 쿼리할 수 있습니다. Spring Boot를 사용하여 구축되어 간편한 설정 및 배포가 가능합니다.
특징
- MCP 준수: 핵심 모델 컨텍스트 프로토콜을 구현합니다.
- Lucene 기반: Apache Lucene을 활용하여 전체 텍스트 검색 및 인덱싱을 수행합니다.
- RESTful API: 서버와 상호작용하기 위한 RESTful API를 제공합니다.
- 문서 관리:
- Upsert: Lucene 인덱스에 문서를 추가하거나 업데이트합니다.
- 삭제: Lucene 인덱스에서 문서를 삭제합니다.
- 목록: 인덱스에서 문서 목록을 검색합니다.
- 질의:
- Lucene 쿼리 구문을 사용하여 복잡한 쿼리를 지원합니다.
- 필터링: 문서 메타데이터를 기준으로 쿼리를 필터링합니다.
- 상태: 서버 상태를 확인하세요.
- Spring Boot: Spring Boot로 구축되어 설치와 배포가 간편합니다.
- Docker화: Docker를 사용하여 애플리케이션을 컨테이너화하는 방법에 대한 지침이 포함되어 있습니다.
목차
시작하기
필수 조건
- Java: Java 11 이상.
- Maven: Maven 3.6.0 이상.
- Docker: Docker 이미지를 사용하려면 Docker를 설치하세요 .
설치
- 저장소를 복제합니다.지엑스피1(
your-username
GitHub 사용자 이름으로 바꾸세요) - Maven을 사용하여 프로젝트를 빌드합니다.
서버 실행
도커 없이
- Spring Boot 애플리케이션을 실행합니다.(
.jar
파일의 정확한 이름은 프로젝트 버전에 따라 약간 다를 수 있습니다.) - 서버는 기본적으로
8080
포트에서 시작됩니다.
도커를 사용하여
- Docker가 설치되어 있는지 확인하세요. 공식 Docker 웹사이트( https://docs.docker.com/get-docker/ )의 지침을 따르세요.
- Docker 이미지를 빌드합니다. 터미널에서 프로젝트의 루트 디렉토리로 이동하여 다음을 실행합니다.
- Docker 컨테이너를 실행합니다.이렇게 하면 호스트 머신의 포트
8080
컨테이너 내부의 포트8080
에 매핑됩니다.
용법
API 엔드포인트
서버는 다음과 같은 API 엔드포인트를 제공합니다.
GET /mcp/v1/status
- 서버의 상태를 반환합니다.
POST /mcp/v1/upsert
- 하나 이상의 문서를 업서트(삽입 또는 업데이트)합니다.
- 요청 본문:
POST /mcp/v1/query
- Lucene 인덱스를 쿼리합니다.
- 요청 본문:
query
: Lucene 쿼리 문자열.top_k
: (선택 사항) 반환할 결과의 최대 개수(기본값: 10).filter
: (선택 사항) 필터링 기준이 되는 메타데이터 필드와 값의 맵입니다.
POST /mcp/v1/delete
- Lucene 인덱스에서 문서를 삭제합니다.
- 요청 본문:
GET /mcp/v1/list
- Lucene 인덱스의 문서를 나열합니다.
- 요청 본문:
예시
서버 상태 가져오기:
문서 업데이트:
쿼리 문서:
문서 삭제:
문서 목록:
구성
서버는 Spring Boot의 애플리케이션 속성을 사용하여 구성할 수 있습니다. 주요 속성은 다음과 같습니다.
server.port
: 서버가 수신하는 포트(기본값: 8080).lucene.index.path
: Lucene 인덱스 디렉터리 경로입니다. 인덱싱된 데이터가 저장되는 위치입니다. 설정하지 않으면 기본 위치가 사용됩니다. 영구 저장 위치로 설정하는 것이 좋습니다.
src/main/resources
디렉토리의 application.properties
또는 application.yml
파일에서 이러한 속성을 설정하거나 환경 변수를 사용하여 설정할 수 있습니다.
예제 application.properties
:
server.port=8080 lucene.index.path=/루씬/인덱스 경로
특허
이 프로젝트는 Apache 2.0 라이선스 에 따라 라이선스가 부여되었습니다.
Related MCP Servers
- AsecurityAlicenseAqualityAn MCP server that provides LLMs access to other LLMsLast updated -467359JavaScriptMIT License
- JavaScript
- TypeScriptMIT License
- GoAGPL 3.0