Skip to main content
Glama

Chroma MCP 服务器

模型上下文协议 (MCP) 服务器实现,通过 Chroma 提供矢量数据库功能。该服务器支持语义文档搜索、元数据过滤以及具有持久存储的文档管理。

要求

  • Python 3.8+

  • Chroma 0.4.0+

  • MCP SDK 0.1.0+

Related MCP server: doc-lib-mcp

成分

资源

服务器通过Chroma的矢量数据库提供文档存储和检索:

  • 存储包含内容和元数据的文档

  • 将数据保存在src/chroma/data目录中

  • 支持语义相似性搜索

工具

服务器实现 CRUD 操作和搜索功能:

文档管理

  • create_document :创建新文档

    • 必需: document_idcontent

    • 可选: metadata (键值对)

    • 返回:成功确认

    • 错误:已存在,输入无效

  • read_document :通过 ID 检索文档

    • 必填: document_id

    • 返回:文档内容和元数据

    • 错误:未找到

  • update_document :更新现有文档

    • 必需: document_idcontent

    • 可选: metadata

    • 返回:成功确认

    • 错误:未找到,输入无效

  • delete_document :删除文档

    • 必填: document_id

    • 返回:成功确认

    • 错误:未找到

  • list_documents :列出所有文档

    • 可选: limitoffset

    • 返回:包含内容和元数据的文档列表

搜索行动

  • search_similar :查找语义相似的文档

    • 必填: query

    • 可选: num_resultsmetadata_filtercontent_filter

    • 返回:具有距离分数的相似文档的排序列表

    • 错误:过滤器无效

特征

  • 语义搜索:使用 Chroma 的嵌入查找基于含义的文档

  • 元数据过滤:按元数据字段过滤搜索结果

  • 内容过滤:基于文档内容的附加过滤

  • 持久存储:服务器重启后数据仍保留在本地目录中

  • 错误处理:全面的错误处理,清晰的消息

  • 重试逻辑:瞬时故障自动重试

安装

  1. 安装依赖项:

uv 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" ] } } }

数据存储

服务器将数据存储在:

  • Windows: src/chroma/data

  • MacOS/Linux: src/chroma/data

用法

  1. 启动服务器:

uv run chroma
  1. 使用 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 content

  • Invalid filter

  • Operation failed: [details]

发展

测试

  1. 运行 MCP Inspector 进行交互式测试:

npx @modelcontextprotocol/inspector uv --directory C:/MCP/server/community/chroma run chroma
  1. 使用检查器的 Web 界面可以执行以下操作:

    • 测试 CRUD 操作

    • 验证搜索功能

    • 检查错误处理

    • 监控服务器日志

建筑

  1. 更新依赖项:

uv compile pyproject.toml
  1. 构建包:

uv build

贡献

欢迎贡献!请阅读我们的贡献指南,了解详情:

  • 代码风格

  • 测试要求

  • 拉取请求流程

执照

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/privetin/chroma'

If you have feedback or need assistance with the MCP directory API, please join our Discord server