Chroma

官方

嵌入、向量搜索、文档存储以及全文搜索,基于开源AI应用数据库

你可以用 Chroma MCP 做什么?

  • 列出和浏览集合 — 使用 chroma_list_collections 分页查看可用集合,并使用 chroma_peek_collection 预览其中的示例文档。
  • 使用选定的嵌入模型创建集合 — 运行 chroma_create_collection 以使用 defaultopenaicoherejinavoyageairoboflow 嵌入设置新集合。
  • 添加带元数据的文档 — 通过 chroma_add_documents 插入文本,可选择附加元数据和自定义ID以便后续过滤。
  • 按语义或关键词搜索 — 使用 chroma_query_documents 进行语义向量搜索,或使用全文搜索查找相关文档。
  • 过滤和检索特定文档 — 使用 chroma_get_documents 按ID或元数据过滤器获取文档,支持分页。
  • 更新或删除文档 — 使用 chroma_update_documents 修改文档内容、元数据或嵌入,或通过 chroma_delete_documents 删除它们。

文档

Chroma logo

Chroma - 开源嵌入数据库
构建具有记忆功能的 Python 或 JavaScript LLM 应用的最快方式!

Discord | License | 文档 | 主页

Chroma MCP 服务器

smithery badge

模型上下文协议 (MCP) 是一个开放协议,旨在实现 LLM 应用与外部数据源或工具之间的无缝集成,为 LLM 提供所需上下文提供了一个标准化的框架。

此服务器提供由 Chroma 驱动的数据检索功能,使 AI 模型能够基于生成的数据和用户输入创建集合,并通过向量搜索、全文搜索、元数据过滤等方式检索这些数据。

这是一个用于自托管访问 Chroma 的 MCP 服务器。如果您正在寻找 包搜索,可以在 此处 找到相关仓库。

功能特性

  • 灵活的客户端类型

    • 临时(内存)客户端,用于测试和开发
    • 持久化客户端,用于基于文件的存储
    • HTTP 客户端,用于自托管的 Chroma 实例
    • 云客户端,用于 Chroma Cloud 集成(自动连接到 api.trychroma.com)
  • 集合管理

    • 创建、修改和删除集合
    • 列出所有集合,支持分页
    • 获取集合信息和统计信息
    • 配置 HNSW 参数以优化向量搜索
    • 创建集合时选择嵌入函数
  • 文档操作

    • 添加文档,支持可选的元数据和自定义 ID
    • 使用语义搜索查询文档
    • 使用元数据和文档内容进行高级过滤
    • 通过 ID 或过滤器检索文档
    • 全文搜索功能

支持的工具

  • chroma_list_collections - 列出所有集合,支持分页
  • chroma_create_collection - 创建新集合,支持可选的 HNSW 配置
  • chroma_peek_collection - 查看集合中的文档样本
  • chroma_get_collection_info - 获取集合的详细信息
  • chroma_get_collection_count - 获取集合中的文档数量
  • chroma_modify_collection - 更新集合的名称或元数据
  • chroma_delete_collection - 删除集合
  • chroma_add_documents - 添加文档,支持可选的元数据和自定义 ID
  • chroma_query_documents - 使用语义搜索查询文档,支持高级过滤
  • chroma_get_documents - 通过 ID 或过滤器检索文档,支持分页
  • chroma_update_documents - 更新现有文档的内容、元数据或嵌入
  • chroma_delete_documents - 从集合中删除特定文档

嵌入函数

Chroma MCP 支持多种嵌入函数:defaultcohereopenaijinavoyageairoboflow

嵌入函数利用 Chroma 的集合配置,该配置会持久化集合所选的嵌入函数以供检索。一旦使用集合配置创建了集合,在后续的查询和插入操作中,将使用相同的嵌入函数,无需再次指定。嵌入函数持久化功能在 Chroma v1.0.0 中添加,因此如果您使用版本 <=0.6.3 创建的集合,则不支持此功能。

当访问使用外部 API 的嵌入函数时,请确保以正确的格式添加 API 密钥的环境变量,具体请参阅 嵌入函数环境变量

与 Claude Desktop 配合使用

  1. 要添加临时客户端,请将以下内容添加到您的 claude_desktop_config.json 文件中:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp"
    ]
}
  1. 要添加持久化客户端,请将以下内容添加到您的 claude_desktop_config.json 文件中:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp",
        "--client-type",
        "persistent",
        "--data-dir",
        "/full/path/to/your/data/directory"
    ]
}

这将创建一个持久化客户端,并使用指定的数据目录。

  1. 要连接到 Chroma Cloud,请将以下内容添加到您的 claude_desktop_config.json 文件中:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp",
        "--client-type",
        "cloud",
        "--tenant",
        "your-tenant-id",
        "--database",
        "your-database-name",
        "--api-key",
        "your-api-key"
    ]
}

这将创建一个云客户端,通过 SSL 自动连接到 api.trychroma.com。

注意: 在本地设备上通过参数添加 API 密钥是可以的,但为了安全起见,您也可以使用 args 列表中的 --dotenv-path 参数为环境配置文件指定自定义路径,例如:"args": ["chroma-mcp", "--dotenv-path", "/custom/path/.env"]

  1. 要连接到 [您自己云提供商上的自托管 Chroma 实例](https://docs.trychroma.com/ production/deployment),请将以下内容添加到您的 claude_desktop_config.json 文件中:
"chroma": {
    "command": "uvx",
    "args": [
      "chroma-mcp", 
      "--client-type", 
      "http", 
      "--host", 
      "your-host", 
      "--port", 
      "your-port", 
      "--custom-auth-credentials",
      "your-custom-auth-credentials",
      "--ssl",
      "true"
    ]
}

这将创建一个 HTTP 客户端,连接到您的自托管 Chroma 实例。

演示

Chroma MCP 文档 中查找参考用法,例如共享知识库和向上下文窗口添加记忆。

使用环境变量

您也可以使用环境变量来配置客户端。服务器将自动从位于 --dotenv-path 指定路径的 .env 文件(默认为工作目录中的 .chroma_env)或系统环境变量中加载变量。命令行参数的优先级高于环境变量。

# Common variables
export CHROMA_CLIENT_TYPE="http"  # or "cloud", "persistent", "ephemeral"

# For persistent client
export CHROMA_DATA_DIR="/full/path/to/your/data/directory"

# For cloud client (Chroma Cloud)
export CHROMA_TENANT="your-tenant-id"
export CHROMA_DATABASE="your-database-name"
export CHROMA_API_KEY="your-api-key"

# For HTTP client (self-hosted)
export CHROMA_HOST="your-host"
export CHROMA_PORT="your-port"
export CHROMA_CUSTOM_AUTH_CREDENTIALS="your-custom-auth-credentials"
export CHROMA_SSL="true"

# Optional: Specify path to .env file (defaults to .chroma_env)
export CHROMA_DOTENV_PATH="/path/to/your/.env" 

嵌入函数环境变量

当使用需要 API 密钥的外部嵌入函数时,请遵循命名约定 CHROMA_<>_API_KEY="<key>"。 因此,要设置 Cohere API 密钥,请设置环境变量 CHROMA_COHERE_API_KEY=""。我们建议将其添加到某个 .env 文件中,并使用 CHROMA_DOTENV_PATH 环境变量或 --dotenv-path 标志来设置该位置以便安全保管。