Chroma-MCP数据平台
一个由Chroma嵌入式数据库驱动的服务器,提供数据检索功能,使AI模型能够对生成的数据和用户输入创建集合,并通过向量搜索、全文搜索和元数据过滤来检索数据。
服务介绍
Chroma MCP 服务器
模型上下文协议 (MCP) 是一种开放协议,旨在让 LLM 应用程序与外部数据源或工具之间的集成变得轻松简单,提供了一个标准化框架,以无缝地为 LLM 提供所需上下文。
此服务器提供了由 Chroma 支持的数据检索能力,使 AI 模型能够基于生成的数据和用户输入创建集合,并通过向量搜索、全文搜索、元数据过滤等方式检索这些数据。
特性
-
灵活的客户端类型
- 临时(内存中)用于测试和开发
- 持久化用于基于文件的存储
- HTTP 客户端用于自托管的 Chroma 实例
- 云客户端用于 Chroma Cloud 集成(自动连接到 api.trychroma.com)
-
集合管理
- 创建、修改和删除集合
- 列出所有集合并支持分页
- 获取集合信息和统计
- 配置 HNSW 参数以优化向量搜索
- 在创建集合时选择嵌入函数
-
文档操作
- 添加带有可选元数据和自定义 ID 的文档
- 使用语义搜索查询文档
- 通过元数据和文档内容进行高级过滤
- 通过 ID 或过滤器检索文档
- 全文搜索功能
支持的工具
chroma_list_collections- 列出所有集合,支持分页chroma_create_collection- 创建一个新的集合,可选配置HNSWchroma_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实例,请向你的
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 标志来设置该位置以确保安全。