模型上下文协议(MCP)是一个开放协议,旨在轻松集成LLM应用程序与外部数据源或工具,提供一个标准化框架,无缝地为LLM提供所需的上下文。
此服务器由Chroma提供数据检索能力,使AI模型能够创建生成数据和用户输入的集合,并使用向量搜索、全文搜索、元数据过滤等方法检索这些数据。
这是一个用于自托管访问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 - 添加文档,可选元数据和自定义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_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"
]
}
这将创建一个使用指定数据目录的持久化客户端。
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密钥添加到参数中是安全的,但为了安全起见,您也可以使用--dotenv-path参数在args列表中指定环境配置文件的自定义路径,例如:"args": ["chroma-mcp", "--dotenv-path", "/custom/path/.env"]。
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文档
您还可以使用环境变量来配置客户端。服务器会自动从指定路径的.env文件(默认为工作目录下的.chroma_env)或系统环境变量加载变量。命令行参数优先于环境变量。
# 常用变量
export CHROMA_CLIENT_TYPE="http" # 或 "cloud", "persistent", "ephemeral"
# 对于持久化客户端
export CHROMA_DATA_DIR="/full/path/to/your/data/directory"
# 对于云客户端(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=""。我们建议将其添加到某个位置的.env文件中,并使用CHROMA_DOTENV_PATH环境变量或--dotenv-path标志来设置该位置以确保安全。