MCP 문서 관리

메뉴

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 라이센스에 따라 라이센스가 부여됩니다.

관련 링크