关于 Chroma MCP Server
Chroma MCP Server 是 Chroma 开源嵌入数据库的 MCP 服务,允许 AI 模型创建集合、写入文档并通过向量搜索、全文搜索和元数据过滤检索数据。它适合需要为 LLM 应用提供记忆或知识库的开发者,并支持自托管和 Chroma Cloud 连接。
主要功能
- 01支持内存、持久化、HTTP 和 Cloud 客户端
- 02集合的创建、修改、查询与删除
- 03文档的添加、更新、删除和语义查询
- 04基于元数据和文档内容的过滤
- 05支持多种嵌入函数
适用场景
- 01为 LLM 应用建立可检索的共享知识库
- 02在上下文中加入长期记忆
- 03连接自托管或 Chroma Cloud 实例进行向量搜索
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 chroma_ 系列工具,用于管理 Chroma 集合和文档。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Chroma —— 开源嵌入数据库。
使用记忆功能构建 Python 或 JavaScript 大模型应用的最快方式!
Chroma MCP 服务
模型上下文协议(MCP)是一种开放协议,旨在轻松集成大模型应用与外部数据源或工具,并提供标准化框架,无缝地为大模型提供所需的上下文。
此服务提供由 Chroma 驱动的数据检索功能,让 AI 模型能够基于生成的数据和用户输入创建集合,并使用向量搜索、全文搜索、元数据筛选等方式检索数据。
这是一个可供自托管并访问 Chroma 的 MCP 服务。如果你要查找软件包搜索,可以在此处找到对应仓库。
功能
-
灵活的客户端类型
- 临时客户端(内存中),用于测试和开发
- 持久化客户端,用于基于文件的存储
- 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- 添加文档,可选附带元数据和自定义 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"
]
}
这将创建一个连接到你的自托管 Chroma 实例的 HTTP 客户端。
演示
如需查看参考用法,例如共享知识库和向上下文窗口添加记忆,请参阅 Chroma MCP 文档
使用环境变量
你也可以使用环境变量配置客户端。服务会自动从 --dotenv-path 指定路径下的 .env 文件(默认为工作目录中的 .chroma_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 标志指定该文件的位置,以妥善保管密钥。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
