关于 Chroma MCP Server
Chroma MCP Server 是一个基于 Chroma 的 MCP 服务,提供向量数据库能力,支持文档的增删改查、语义相似度搜索以及元数据和内容过滤。数据保存在本地目录中,适合需要持久化语义检索的用户。
主要功能
- 01文档的增删改查操作
- 02基于语义相似度的搜索
- 03元数据与内容过滤
- 04本地目录持久化存储
- 05失败请求的自动重试
适用场景
- 01在本地文档集合中进行语义检索
- 02为 Claude Desktop 添加可持久化的文档库
- 03通过 MCP Inspector 测试向量数据库操作
MCP 相关
Chroma MCP Server 是一个 MCP 服务,向 MCP 客户端提供文档管理与相似度搜索等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Chroma MCP 服务
一个 Model Context Protocol(MCP)服务实现,通过 Chroma 提供向量数据库功能。此服务支持语义文档搜索、元数据筛选和文档管理,并提供持久化存储。
要求
- Python 3.8+
- Chroma 0.4.0+
- MCP SDK 0.1.0+
组件
资源
此服务通过 Chroma 向量数据库提供文档存储和检索功能:
- 存储包含内容和元数据的文档
- 将数据持久化到
src/chroma/data目录 - 支持语义相似度搜索
工具
此服务实现了 CRUD 操作和搜索功能:
文档管理
-
create_document:创建新文档- 必需:
document_id、content - 可选:
metadata(键值对) - 返回:成功确认
- 错误:已存在、输入无效
- 必需:
-
read_document:按 ID 检索文档- 必需:
document_id - 返回:文档内容和元数据
- 错误:未找到
- 必需:
-
update_document:更新现有文档- 必需:
document_id、content - 可选:
metadata - 返回:成功确认
- 错误:未找到、输入无效
- 必需:
-
delete_document:删除文档- 必需:
document_id - 返回:成功确认
- 错误:未找到
- 必需:
-
list_documents:列出所有文档- 可选:
limit、offset - 返回:包含内容和元数据的文档列表
- 可选:
搜索操作
search_similar:查找语义相似的文档- 必需:
query - 可选:
num_results、metadata_filter、content_filter - 返回:按相似度排序的文档列表及距离分数
- 错误:筛选条件无效
- 必需:
功能
- 语义搜索:使用 Chroma 的嵌入表示,根据含义查找文档
- 元数据筛选:按元数据字段筛选搜索结果
- 内容筛选:根据文档内容进行额外筛选
- 持久化存储:服务器重启后,本地目录中的数据仍会保留
- 错误处理:全面处理错误并提供清晰提示
- 重试逻辑:对暂时性故障自动重试
安装
- 安装依赖项:
uv venv
uv sync --dev --all-extras
配置
Claude Desktop
将服务配置添加到 Claude Desktop 配置文件中:
Windows:C:\Users\<username>\AppData\Roaming\Claude\claude_desktop_config.json
MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"chroma": {
"command": "uv",
"args": [
"--directory",
"C:/MCP/server/community/chroma",
"run",
"chroma"
]
}
}
}
数据存储
此服务将数据存储在:
- Windows:
src/chroma/data - MacOS/Linux:
src/chroma/data
使用方法
- 启动服务:
uv run chroma
- 使用 MCP 工具与服务交互:
# Create a document
create_document({
"document_id": "ml_paper1",
"content": "Convolutional neural networks improve image recognition accuracy.",
"metadata": {
"year": 2020,
"field": "computer vision",
"complexity": "advanced"
}
})
# Search similar documents
search_similar({
"query": "machine learning models",
"num_results": 2,
"metadata_filter": {
"year": 2020,
"field": "computer vision"
}
})
错误处理
此服务会针对常见情况提供清晰的错误提示:
Document already exists [id=X]Document not found [id=X]Invalid input: Missing document_id or contentInvalid filterOperation failed: [details]
开发
测试
- 运行 MCP Inspector 进行交互式测试:
npx @modelcontextprotocol/inspector uv --directory C:/MCP/server/community/chroma run chroma
- 使用 Inspector 的 Web 界面来:
- 测试 CRUD 操作
- 验证搜索功能
- 检查错误处理
- 监控服务日志
构建
- 更新依赖项:
uv compile pyproject.toml
- 构建软件包:
uv build
贡献
欢迎贡献!请阅读我们的贡献指南,了解以下详情:
- 代码风格
- 测试要求
- Pull Request 流程
许可证
本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。