Chroma
공식오픈소스 AI 애플리케이션 데이터베이스를 사용한 임베딩, 벡터 검색, 문서 저장 및 전체 텍스트 검색
Chroma MCP(으)로 무엇을 할 수 있나요?
- 컬렉션 목록 보기 및 탐색 — 사용 가능한 컬렉션을 페이지 단위로 탐색하려면
chroma_list_collections를 사용하고, 컬렉션 내 샘플 문서를 미리 보려면chroma_peek_collection을 사용하세요. - 선택한 임베딩 모델로 컬렉션 생성 —
default,openai,cohere,jina,voyageai또는roboflow임베딩을 사용하여 새 컬렉션을 설정하려면chroma_create_collection을 실행하세요. - 메타데이터가 포함된 문서 추가 —
chroma_add_documents를 통해 텍스트를 삽입하고, 선택적으로 메타데이터와 사용자 정의 ID를 첨부하여 나중에 필터링할 수 있습니다. - 의미 또는 키워드로 검색 — 의미론적 벡터 검색을 위해
chroma_query_documents로 쿼리하거나 전체 텍스트 검색을 사용하여 관련 문서를 찾으세요. - 특정 문서 필터링 및 검색 —
chroma_get_documents를 사용하여 ID 또는 메타데이터 필터로 문서를 가져오고, 페이지네이션을 지원합니다. - 문서 업데이트 또는 삭제 —
chroma_update_documents로 문서 내용, 메타데이터 또는 임베딩을 수정하거나chroma_delete_documents로 제거하세요.
문서
Chroma - 오픈소스 임베딩 데이터베이스.
Python 또는 JavaScript LLM 앱에 메모리를 추가하는 가장 빠른 방법!
Chroma MCP 서버
모델 컨텍스트 프로토콜(MCP)은 LLM 애플리케이션과 외부 데이터 소스 또는 도구 간의 손쉬운 통합을 위해 설계된 개방형 프로토콜로, LLM에 필요한 컨텍스트를 원활하게 제공하기 위한 표준화된 프레임워크를 제공합니다.
이 서버는 Chroma 기반의 데이터 검색 기능을 제공하여, AI 모델이 생성된 데이터와 사용자 입력에 대한 컬렉션을 만들고 벡터 검색, 전체 텍스트 검색, 메타데이터 필터링 등을 통해 해당 데이터를 검색할 수 있도록 합니다.
이것은 Chroma에 대한 접근을 자체 호스팅하기 위한 MCP 서버입니다. 패키지 검색을 찾고 계신다면 해당 저장소를 여기에서 찾으실 수 있습니다.
기능
-
유연한 클라이언트 유형
- 테스트 및 개발용 임시(인메모리) 클라이언트
- 파일 기반 저장용 영구 클라이언트
- 자체 호스팅 Chroma 인스턴스용 HTTP 클라이언트
- Chroma Cloud 통합용 클라우드 클라이언트 (자동으로 api.trychroma.com에 연결)
-
컬렉션 관리
- 컬렉션 생성, 수정, 삭제
- 페이지네이션을 지원하는 모든 컬렉션 목록 조회
- 컬렉션 정보 및 통계 조회
- 최적화된 벡터 검색을 위한 HNSW 매개변수 구성
- 컬렉션 생성 시 임베딩 함수 선택
-
문서 작업
- 선택적 메타데이터 및 사용자 지정 ID로 문서 추가
- 시맨틱 검색을 사용한 문서 쿼리
- 메타데이터 및 문서 내용을 사용한 고급 필터링
- ID 또는 필터로 문서 검색
- 전체 텍스트 검색 기능
지원 도구
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의 컬렉션 구성을 활용하여, 검색을 위해 선택된 컬렉션의 임베딩 함수를 유지합니다. 컬렉션 구성으로 컬렉션이 생성되면, 이후 쿼리 및 삽입 시 동일한 임베딩 함수가 사용되므로 임베딩 함수를 다시 지정할 필요가 없습니다. 임베딩 함수 유지 기능은 Chroma v1.0.0에 추가되었으므로, 버전 <=0.6.3을 사용하여 컬렉션을 생성한 경우 이 기능이 지원되지 않습니다.
외부 API를 사용하는 임베딩 함수에 접근할 때는 임베딩 함수 환경 변수에서 확인할 수 있는 올바른 형식의 API 키 환경 변수를 반드시 추가하시기 바랍니다.
Claude Desktop과 함께 사용하기
- 임시 클라이언트를 추가하려면
claude_desktop_config.json파일에 다음을 추가하세요:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp"
]
}
- 영구 클라이언트를 추가하려면
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"
]
}
이렇게 하면 SSL을 사용하여 api.trychroma.com에 자동으로 연결되는 클라우드 클라이언트가 생성됩니다.
참고: 로컬 기기에서 인수에 API 키를 추가하는 것은 괜찮지만, 안전을 위해 args 목록 내에서 --dotenv-path 인수를 사용하여 환경 구성 파일의 사용자 지정 경로를 지정할 수도 있습니다. 예: "args": ["chroma-mcp", "--dotenv-path", "/custom/path/.env"].
- [자체 클라우드 제공업체의 자체 호스팅 Chroma 인스턴스](https://docs.trychroma.com/
production/deployment)에 연결하려면
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"
]
}
이렇게 하면 자체 호스팅 Chroma 인스턴스에 연결되는 HTTP 클라이언트가 생성됩니다.
데모
공유 지식 베이스 및 컨텍스트 윈도우에 메모리 추가와 같은 참조 사용법은 Chroma MCP 문서에서 확인하세요.
환경 변수 사용하기
환경 변수를 사용하여 클라이언트를 구성할 수도 있습니다. 서버는 --dotenv-path에 지정된 경로(작업 디렉터리의 .chroma_env이 기본값)에 있는 .env 파일 또는 시스템 환경 변수에서 변수를 자동으로 로드합니다. 명령줄 인수가 환경 변수보다 우선합니다.
# Common variables
export CHROMA_CLIENT_TYPE="http" # or "cloud", "persistent", "ephemeral"
# For persistent client
export CHROMA_DATA_DIR="/full/path/to/your/data/directory"
# For cloud client (Chroma Cloud)
export CHROMA_TENANT="your-tenant-id"
export CHROMA_DATABASE="your-database-name"
export CHROMA_API_KEY="your-api-key"
# For HTTP client (self-hosted)
export CHROMA_HOST="your-host"
export CHROMA_PORT="your-port"
export CHROMA_CUSTOM_AUTH_CREDENTIALS="your-custom-auth-credentials"
export CHROMA_SSL="true"
# Optional: Specify path to .env file (defaults to .chroma_env)
export CHROMA_DOTENV_PATH="/path/to/your/.env"
임베딩 함수 환경 변수
API 키에 접근하는 외부 임베딩 함수를 사용할 때는 명명 규칙
CHROMA_<>_API_KEY="<key>"을 따르세요.
따라서 Cohere API 키를 설정하려면 환경 변수 CHROMA_COHERE_API_KEY=""를 설정하세요. 안전한 보관을 위해 이 값을 어딘가의 .env 파일에 추가하고 CHROMA_DOTENV_PATH 환경 변수 또는 --dotenv-path 플래그를 사용하여 해당 위치를 설정하는 것이 좋습니다.
