Chroma MCP服务器
一种模型上下文协议(MCP)服务器实现,通过Chroma提供矢量数据库功能。此服务器支持语义文档搜索、元数据过滤和具有持久存储的文档管理。
需求
- Python 3.8+
- 色度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配置中:
窗户: C:\Users\\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"
]
}
}
}数据存储
服务器将数据存储在:
- 窗户:
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检查器进行交互式测试:
npx @modelcontextprotocol/inspector uv --directory C:/MCP/server/community/chroma run chroma- 使用检查员的web界面:
- 测试CRUD操作 - 验证搜索功能 - 检查错误处理 - 监控服务器日志
建筑
- 更新依赖关系:
uv compile pyproject.toml- 构建包:
uv build贡献
欢迎投稿!请阅读我们的 贡献指南 有关以下内容的详细信息:
- 代码风格
- 测试要求
- 拉取请求流程
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
