项目简介

'ChromaDB Remote MCP Server' 是一个实现 Model Context Protocol (MCP) 的服务器,旨在让大型语言模型(LLM)客户端(如 Claude、Gemini)能够远程访问和操作自托管的 ChromaDB 向量数据库。它将 ChromaDB 的功能通过标准化的 MCP 协议和 REST API 代理暴露出来,实现跨设备、跨平台的 AI 记忆和知识库共享。

主要功能点

  • 跨平台 AI 记忆共享: 允许所有兼容 MCP 的 AI 客户端(如 Claude 桌面版、移动版、代码版、Gemini 等)连接到同一个 ChromaDB 实例,实现统一的记忆和上下文。
  • 自托管与隐私: 您的数据完全由您自己控制和托管,保证数据隐私和安全性。
  • 远程访问: 支持通过 Tailscale VPN、Cloudflare Tunnel 或公共网络进行连接,实现从任何地点安全访问您的 ChromaDB。
  • 完整 ChromaDB 支持: 通过 MCP 工具集提供 ChromaDB 的所有核心 CRUD 操作,包括集合管理、文档添加、语义搜索、文档检索和更新等。
  • REST API 代理: 除了 MCP 协议,还为 Python/JavaScript 客户端提供 ChromaDB REST API 的直接代理访问。
  • 统一认证: 支持通过单个认证令牌保护 MCP 和 REST API 端点,提供多种认证方式(Bearer Token、X-Chroma-Token、URL 参数)。
  • 易于部署: 提供 Docker 一键安装脚本,简化部署流程。

安装步骤

本服务器推荐使用 Docker 进行部署,提供两种安装方式:

方式一:一键安装 (推荐)

运行以下命令即可自动下载配置、生成令牌并启动服务:

curl -fsSL https://raw.githubusercontent.com/meloncafe/chromadb-remote-mcp/release/scripts/install.sh | bash

安装完成后,脚本将显示您的认证令牌和连接 URL。

方式二:手动 Docker 安装

  1. 创建目录并下载配置文件:
    mkdir chromadb-remote-mcp && cd chromadb-remote-mcp
    curl -O https://raw.githubusercontent.com/meloncafe/chromadb-remote-mcp/release/docker-compose.yml
    curl -O https://raw.githubusercontent.com/meloncafe/chromadb-remote-mcp/release/.env.example
  2. 配置环境变量: 复制 '.env.example' 为 '.env' 文件,并编辑其中的 'MCP_AUTH_TOKEN'。出于安全考虑,强烈建议为 'MCP_AUTH_TOKEN' 生成一个强密码。
    cp .env.example .env
    # 编辑 .env 文件,设置 MCP_AUTH_TOKEN (例如: MCP_AUTH_TOKEN=你的安全令牌)
    # 可以使用以下命令生成安全令牌:
    # node -e "console.log(require('crypto').randomBytes(32).toString('base64url'))"
    # 或者 openssl rand -base64 32 | tr '+/' '-_' | tr -d '='
  3. 启动服务:
    docker compose up -d
  4. 检查服务状态:
    curl http://localhost:8080/health
    预期返回 '{"status":"ok", ...}' 表示服务器正常运行。

MCP 客户端连接配置

对于 Claude Desktop/Mobile 客户端(需通过 'mcp-remote' 包装器连接)

您需要编辑 Claude 桌面版的配置文件(例如 macOS: '~/Library/Application Support/Claude/claude_desktop_config.json'),在 'mcpServers' 部分添加如下 JSON 配置。请替换 'https://<你的服务器地址或域名>/mcp?apiKey=YOUR_TOKEN' 中的占位符。

{
  "mcpServers": {
    "chromadb": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://<你的服务器地址或域名>/mcp?apiKey=YOUR_TOKEN"
      ]
    }
  }
}
  • server name: 'chromadb' (客户端显示的服务器名称,可自定义)
  • command: 'npx' (用于执行本地 'mcp-remote' 包装器的命令)
  • args:
    • '-y': 'npx' 参数,表示自动安装缺失的包。
    • 'mcp-remote': 'mcp-remote' 包装器包的名称。
    • 'https://<你的服务器地址或域名>/mcp?apiKey=YOUR_TOKEN': 你的 ChromaDB 远程 MCP 服务器的完整连接 URL。
      • '<你的服务器地址或域名>': 替换为你的服务器的实际 IP 地址或域名。
      • 'YOUR_TOKEN': 替换为你在服务器配置中 '.env' 文件里设置的 'MCP_AUTH_TOKEN'。这是客户端用于连接服务器的认证令牌,请确保填写正确。

对于 Claude Code 客户端(使用 CLI 命令直接连接)

在命令行中运行以下命令,替换连接 URL 和认证令牌:

# 使用查询参数认证 (推荐,但会显示在 URL 中)
claude mcp add --transport http chromadb https://<你的服务器地址或域名>/mcp?apiKey=YOUR_TOKEN

# 或者使用 Header 认证 (更安全)
claude mcp add --transport http chromadb https://<你的服务器地址或域名>/mcp \
  --header "Authorization: Bearer YOUR_TOKEN"

基本使用方法

连接成功后,您的 AI 助手即可通过调用 ChromaDB 提供的工具来执行以下操作:

  • 创建/删除集合: 'chroma_create_collection', 'chroma_delete_collection'
  • 管理文档: 'chroma_add_documents', 'chroma_update_documents', 'chroma_delete_documents'
  • 语义搜索: 'chroma_query_documents'
  • 获取信息: 'chroma_list_collections', 'chroma_get_collection_info', 'chroma_get_collection_count', 'chroma_get_documents'
  • 浏览集合: 'chroma_peek_collection'

AI 助手将根据您的指令自动选择并调用这些工具来与 ChromaDB 进行交互。

信息

分类

AI与计算