Chroma
官方使用開源 AI 應用資料庫進行嵌入、向量搜尋、文件儲存與全文搜尋
你可以用 Chroma MCP 做什麼?
- 列出和瀏覽集合 — 使用
chroma_list_collections分頁瀏覽可用集合,並使用chroma_peek_collection預覽其中一個集合內的範例文件。 - 使用選定的嵌入模型建立集合 — 執行
chroma_create_collection以使用default、openai、cohere、jina、voyageai或roboflow嵌入來建立新集合。 - 新增帶有元數據的文件 — 透過
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 伺服器。如果您正在尋找 套件搜尋,可以在此處找到其儲存庫。
功能特色
-
靈活的客戶端類型
- 暫存式(記憶體內)用於測試和開發
- 持久性用於基於檔案的儲存
- HTTP 客戶端用於自行託管的 Chroma 執行個體
- 雲端客戶端用於 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- 新增文件,可選擇性加入中繼資料和自訂 IDchroma_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"
]
}
這將建立一個 HTTP 客戶端,連線至您自行託管的 Chroma 執行個體。
示範
在 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 旗標來設定該位置,以妥善保管。
