링크된 문서
Chroma MCP 서버
Chroma MCP 서버
Chroma MCP 서버는 Chroma 벡터 데이터베이스를 LLM(대규모 언어 모델)과 통합하기 위한 Model Context Protocol(MCP) 서버 구현체입니다. 이 서버는 LLM 애플리케이션에 벡터 검색 및 저장 기능을 제공하여 AI 모델이 외부 데이터와 효과적으로 상호작용할 수 있게 해줍니다.
주요 기능
- 다양한 클라이언트 유형 지원:
- Ephemeral(인메모리): 테스트 및 개발용
- Persistent: 파일 기반 스토리지용
- HTTP: 자체 호스팅된 Chroma 인스턴스용
-
Cloud: Chroma Cloud 통합용(자동으로 api.trychroma.com에 연결)
-
컬렉션 관리:
- 컬렉션 생성, 수정, 삭제
- 페이지네이션을 지원하는 모든 컬렉션 목록 조회
- 컬렉션 정보 및 통계 조회
- 최적화된 벡터 검색을 위한 HNSW 파라미터 구성
-
컬렉션 생성 시 임베딩 함수 선택
-
문서 작업:
- 선택적 메타데이터 및 사용자 정의 ID로 문서 추가
- 시맨틱 검색을 사용한 문서 쿼리
- 메타데이터 및 문서 내용을 사용한 고급 필터링
- ID 또는 필터로 문서 검색
- 전체 텍스트 검색 기능
제공 도구
Chroma MCP 서버는 다음과 같은 도구를 제공합니다:
컬렉션 관리 도구
- chroma_list_collections: 페이지네이션을 지원하는 모든 컬렉션 목록 조회
- chroma_create_collection: 선택적 HNSW 구성으로 새 컬렉션 생성
- chroma_peek_collection: 컬렉션의 문서 샘플 보기
- chroma_get_collection_info: 컬렉션에 대한 상세 정보 조회
- chroma_get_collection_count: 컬렉션 내 문서 수 조회
- chroma_modify_collection: 컬렉션 이름 또는 메타데이터 업데이트
- chroma_delete_collection: 컬렉션 삭제
문서 작업 도구
- chroma_add_documents: 선택적 메타데이터 및 사용자 정의 ID로 문서 추가
- chroma_query_documents: 고급 필터링을 사용한 시맨틱 검색으로 문서 쿼리
- chroma_get_documents: 페이지네이션을 통해 ID 또는 필터로 문서 검색
- chroma_update_documents: 기존 문서의 내용, 메타데이터 또는 임베딩 업데이트
- chroma_delete_documents: 컬렉션에서 특정 문서 삭제
임베딩 함수
Chroma MCP는 다음과 같은 여러 임베딩 함수를 지원합니다: - default - cohere - openai - jina - voyageai - roboflow
임베딩 함수는 Chroma의 컬렉션 구성을 활용하여 컬렉션의 선택된 임베딩 함수를 검색을 위해 유지합니다. 컬렉션이 생성되면 향후 쿼리 및 삽입에 대해 같은 임베딩 함수가 자동으로 사용됩니다.
설정 방법
Claude Desktop에 추가하기
Ephemeral 클라이언트 추가
claude_desktop_config.json 파일에 다음을 추가합니다:
"chroma": {
"command": "uvx",
"args": ["chroma-mcp"]
}
Persistent 클라이언트 추가
claude_desktop_config.json 파일에 다음을 추가합니다:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type",
"persistent",
"--data-dir",
"/full/path/to/your/data/directory"
]
}
Chroma Cloud 연결
claude_desktop_config.json 파일에 다음을 추가합니다:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type",
"cloud",
"--tenant",
"your-tenant-id",
"--database",
"your-database-name",
"--api-key",
"your-api-key"
]
}
자체 호스팅된 Chroma 인스턴스 연결
claude_desktop_config.json 파일에 다음을 추가합니다:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type",
"http",
"--host",
"your-host",
"--port",
"your-port",
"--custom-auth-credentials",
"your-custom-auth-credentials",
"--ssl",
"true"
]
}
환경 변수 사용
환경 변수를 통해 클라이언트를 구성할 수도 있습니다. 서버는 자동으로 .env 파일 또는 시스템 환경 변수에서 변수를 로드합니다. 명령줄 인수는 환경 변수보다 우선합니다.
# 일반 변수
export CHROMA_CLIENT_TYPE="http" # 또는 "cloud", "persistent", "ephemeral"
# Persistent 클라이언트용
export CHROMA_DATA_DIR="/full/path/to/your/data/directory"
# Cloud 클라이언트용 (Chroma Cloud)
export CHROMA_TENANT="your-tenant-id"
export CHROMA_DATABASE="your-database-name"
export CHROMA_API_KEY="your-api-key"
# HTTP 클라이언트용 (자체 호스팅)
export CHROMA_HOST="your-host"
export CHROMA_PORT="your-port"
export CHROMA_CUSTOM_AUTH_CREDENTIALS="your-custom-auth-credentials"
export CHROMA_SSL="true"
# 선택 사항: .env 파일 경로 지정 (기본값: .chroma_env)
export CHROMA_DOTENV_PATH="/path/to/your/.env"
임베딩 함수 환경 변수
외부 API에 액세스하는 임베딩 함수를 사용할 때는 CHROMA_<>_API_KEY="<key>" 형식의 네이밍 규칙을 따릅니다. 예를 들어, Cohere API 키를 설정하려면 CHROMA_COHERE_API_KEY="" 환경 변수를 설정합니다.
사용 사례
- 지식 기반 구축: 기업용 문서 및 데이터의 검색 가능한 저장소 생성
- RAG(Retrieval-Augmented Generation): 벡터 검색을 통한 LLM 응답 향상
- 콘텐츠 추천: 유사성 기반 콘텐츠 추천 시스템
- 시맨틱 검색: 키워드가 아닌 의미 기반 검색 구현
- 멀티모달 데이터 분석: 다양한 데이터 형식(텍스트, 이미지 등)의 벡터 표현 저장 및 분석
라이센스
이 서버는 Apache 2.0 라이센스에 따라 라이센스가 부여됩니다.