克罗玛数据库
一个通过Chroma提供向量数据库功能的Model Context Protocol服务器,支持语义文档搜索、元数据过滤和具有持久存储的文档管理。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"chroma": {
"args": [
"--directory",
"C:/MCP/server/community/chroma",
"run",
"chroma"
],
"command": "uv"
}
}
}
服务介绍
Chroma MCP 服务器
这是一个通过 Chroma 提供向量数据库功能的模型上下文协议 (MCP) 服务器实现。该服务器支持语义文档搜索、元数据过滤以及具有持久存储功能的文档管理。
要求
- 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
- 使用检查器的 Web 界面来:
- 测试 CRUD 操作
- 验证搜索功能
- 检查错误处理
- 监控服务器日志
构建
- 更新依赖项:
uv compile pyproject.toml
- 构建包:
uv build
贡献
欢迎贡献!请阅读我们的贡献指南以了解有关以下内容的详细信息:
- 代码风格
- 测试要求
- 拉取请求流程
许可证
本项目根据 MIT 许可证授权 - 详情请参阅 LICENSE 文件。