这是一个通过 Chroma 提供向量数据库功能的 Model Context Protocol (MCP) 服务器实现。该服务器支持语义文档搜索、元数据过滤以及具有持久存储的文档管理。
服务器通过 Chroma 的向量数据库提供文档的存储和检索功能:
src/chroma/data 目录中服务器实现了 CRUD 操作和搜索功能:
create_document: 创建新文档
document_id, contentmetadata(键值对)read_document: 根据ID检索文档
document_idupdate_document: 更新现有文档
document_id, contentmetadatadelete_document: 删除文档
document_idlist_documents: 列出所有文档
limit, offsetsearch_similar: 查找语义相似的文档
querynum_results, metadata_filter, content_filteruv venv
uv sync --dev --all-extras
将服务器配置添加到您的 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"
]
}
}
}
服务器将数据存储在:
src/chroma/datasrc/chroma/datauv run chroma
# 创建文档
create_document({
"document_id": "ml_paper1",
"content": "卷积神经网络提高了图像识别准确性。",
"metadata": {
"year": 2020,
"field": "计算机视觉",
"complexity": "高级"
}
})
# 搜索相似文档
search_similar({
"query": "机器学习模型",
"num_results": 2,
"metadata_filter": {
"year": 2020,
"field": "计算机视觉"
}
})
服务器为常见场景提供了清晰的错误消息:
文档已存在 [id=X]文档未找到 [id=X]无效输入:缺少 document_id 或 content无效过滤器操作失败:[详情]npx @modelcontextprotocol/inspector uv --directory C:/MCP/server/community/chroma run chroma
uv compile pyproject.toml
uv build
欢迎贡献!请阅读我们的 贡献指南,了解以下内容:
本项目采用 MIT 许可证 - 详情见 LICENSE 文件。