Token导航 LogoToken导航

MCP Server · 数据服务

Chromadb Remote MCP

一个可流式传输的HTTP MCP服务器,为AI助手如Claude提供远程访问ChromaDB的能力,支持语义搜索和向量数据库操作。

stdio官方级别未说明来源级核验工具 30
向量数据库TypeScriptClaude搜索Claude DesktopCursorWindsurfCline

快速开始

作者 / 组织
meloncafe
提供方
meloncafe
运行时
Docker

工具数量

30

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

12

仓库热度

收录来源

1 个

MCP World

选型结论

Chromadb Remote MCP 属于数据服务类 MCP Server,公开资料标注 30 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude、Cursor,有可以直接复制的安装命令;接入前要先准备 OAuth 授权。

分类

数据服务

传输方式

stdio

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

安装命令

docker run -d -p 8000:8000 chromadb/chroma:latest

客户端配置示例

{
  "mcpServers": {
    "chromadb-remote-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-d",
        "-p",
        "8000:8000",
        "chromadb/chroma:latest"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Docker,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 30 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

ChromaDB远程MCP服务器

A. 流式HTTP MCP(模型上下文协议)服务器,为克劳德等人工智能助手提供对ChromaDB的远程访问。支持从移动设备和远程位置进行语义搜索和矢量数据库操作。

备注:本项目使用MCP流式HTTP(2025-03-26规范)。SSE传输已弃用。

韩语文档

______________________________________________________________________

跨平台AI内存服务器

与所有主要AI平台兼容:

  • Claude(桌面、移动、代码)
  • Gemini(命令行界面、代码辅助)
  • Cursor、Cline、Windsurf、VS代码复制品
  • 并将远程MCP与任何其他兼容MCP的客户端一起使用

特性

远程MCP服务器,使所有Claude客户端(桌面、代码、移动)能够访问相同的自托管ChromaDB实例。

  • 跨设备共享内存 -所有Claude客户端都使用相同的ChromaDB实例
  • 自托管和私人 -您的数据保留在您的基础设施上
  • 远程访问 -通过Tailscale或公共互联网随时随地连接
  • 完整的ChromaDB支持 -通过MCP工具执行所有CRUD操作
  • REST API代理 -Python/JavaScript的直接ChromaDB访问
  • 统一认证 -单个令牌保护MCP和REST API端点
  • 轻松部署 -使用Docker进行一次命令安装

______________________________________________________________________

建筑

概述

┌──────────────────────────────┐      ┌──────────────┐
│   Claude Desktop + Mobile    │      │  Claude Code │
│  (Custom Connector - synced) │      │  (CLI setup) │
└──────────────┬───────────────┘      └──────┬───────┘
               │                             │
               │     MCP Remote Connector    │
               └─────────────┬───────────────┘
                             │ HTTPS
                   ┌─────────▼──────────┐
                   │   Remote MCP       │
                   │   Server (Node.js) │
                   │                    │
                   │ • Auth Gateway     │
                   │ • MCP Protocol     │
                   │ • REST API Proxy   │
                   └─────────┬──────────┘
                             │
                   ┌─────────▼──────────┐
                   │     ChromaDB       │
                   │ (Vector Database)  │
                   │                    │
                   │ • Embeddings       │
                   │ • Collections      │
                   │ • Semantic Search  │
                   └────────────────────┘

客户如何连接:

  • 克劳德桌面+移动:使用Claude Desktop中的自定义连接器设置一次,它就会自动同步到移动应用程序。两者自动共享相同的连接。
  • 克劳德代码:需要使用单独的设置 claude mcp add CLI命令。

所有客户端通过此远程MCP服务器访问相同的自托管ChromaDB。向量嵌入和语义搜索结果在所有平台上都是持久的。

API终点

路径目的客户端身份验证
/mcpMCP协议克劳德桌面/代码/移动✅
/api/v2/*ChromaDB REST APIPython✅
/docsSwagger UI浏览器(API文档)✅
/openapi.jsonOpenAPI规范API工具✅
/health健康检查监测❌

运作原理

  1. 克劳德台式机/手机:通过自定义连接器添加MCP服务器(设备之间自动同步)
  2. 克劳德代码:使用添加MCP服务器 claude mcp add CLI命令
  3. 远程MCP服务器 验证请求并将MCP协议转换为ChromaDB操作
  4. 色度数据库 存储和检索用于语义搜索的向量嵌入
  5. python 还可以通过代理REST API直接访问ChromaDB

优点:

  • 所有客户端的矢量数据库相同
  • 桌面和移动设备自动共享连接
  • 自托管和私人
  • 跨应用程序重启的持久内存
  • 嵌入的单一真实来源

______________________________________________________________________

快速开始

一个命令安装

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

这将:

  1. 下载 docker-compose.yml 和 .env.example
  2. 自动检测Docker Compose命令(docker-compose 或 docker compose)
  3. 自动生成安全身份验证令牌(可选)
  4. 配置ChromaDB数据存储位置(Docker卷、本地目录或自定义路径)
  5. 拉取Docker镜像
  6. 显示您的身份验证令牌和连接URL

手动安装

选项1:Docker(推荐-预构建映像)
# Download configuration files
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

# Configure environment
cp .env.example .env
# Edit .env and set:
#   - MCP_AUTH_TOKEN (see token generation below)
#   - PORT (default: 8080)
#   - CHROMA_DATA_PATH (default: chroma-data)

# Start services
docker compose up -d
# or: docker-compose up -d (for older versions)

# Check health
curl http://localhost:8080/health

# View logs
docker compose logs -f
选项2:从源代码构建
# Clone repository
git clone https://github.com/meloncafe/chromadb-remote-mcp.git
cd chromadb-remote-mcp

# Configure environment
cp .env.example .env
# Edit .env with your configuration

# Start with docker-compose (builds image from source)
docker compose -f docker-compose.dev.yml up -d
# or: docker-compose -f docker-compose.dev.yml up -d (for older versions)
方案3:地方发展
# Clone and install
git clone https://github.com/meloncafe/chromadb-remote-mcp.git
cd chromadb-remote-mcp
yarn install

# Configure environment
cp .env.example .env
# Edit .env file

# Build and run
yarn build
yarn start

生成安全令牌

对于生产使用,生成一个安全令牌 MCP_AUTH_TOKEN 在 .env:

# Method 1: Node.js (Recommended)
node -e "console.log(require('crypto').randomBytes(32).toString('base64url'))"

# Method 2: OpenSSL
openssl rand -base64 32 | tr '+/' '-_' | tr -d '='

复制生成的令牌并将其粘贴到您的 .env 文件:

MCP_AUTH_TOKEN=your-generated-token-here

服务器端点

  • MCP: http://localhost:8080/mcp (通过Caddy代理)
  • 健康: http://localhost:8080/health
  • ChromaDB API: http://localhost:8080/api/v2/*
  • Swagger用户界面: http://localhost:8080/docs

______________________________________________________________________

配置

环境变量(.env文件)

所有配置都是通过 .env 文件。复制 .env.example 到 .env 并自定义:

cp .env.example .env
变量描述默认值必填
PORT外部端口(Caddy反向代理)8080没有
CHROMA_DATA_PATHChromaDB数据存储路径(卷名, ./data,或绝对路径)chroma-data没有
CHROMA_HOSTChromaDB主机(内部)chromadb没有
CHROMA_PORTChromaDB端口(内部)8000没有
CHROMA_TENANTChromaDB租户default_tenant没有
CHROMA_DATABASEChromaDB数据库default_database没有
MCP_AUTH_TOKENMCP和REST API的身份验证令牌-是 (供公众访问)
CHROMA_AUTH_TOKENChromaDB身份验证令牌(如果ChromaDB需要身份验证)-否
RATE_LIMIT_MAX每15分钟每个IP的最大请求数100没有
ALLOWED_ORIGINS允许的源列表(DNS重新绑定保护)-否

认证

重要: 对于公共互联网接入(Tailscale漏斗、Cloudflare隧道等),您 必须 集 MCP_AUTH_TOKEN 在你的 .env 文件。

生成安全令牌:

# Method 1: Node.js (Recommended - from .env.example)
node -e "console.log(require('crypto').randomBytes(32).toString('base64url'))"

# Method 2: OpenSSL
openssl rand -base64 32 | tr '+/' '-_' | tr -d '='

编辑您的 .env 文件:

MCP_AUTH_TOKEN=your-generated-token-here

然后重新启动服务:

docker compose restart
# or: docker-compose restart

支持的身份验证方法(v2.0.0):

  1. Authorization: Bearer TOKEN --唯一支持的发送方式 MCP_AUTH_TOKEN.

- 建议用于服务到服务调用方(API客户端、脚本、MCP中继)。 - 符合MCP规范。 - 例子: curl -H "Authorization: Bearer YOUR_TOKEN" https://your-server.com/mcp

  1. OAuth 2.1/OpenID连接 --推荐给人类用户。

- 集 OIDC_ISSUERS (以逗号分隔的发行者URL)或 OIDC_PRESET=google,github,microsoft. - 集 OIDC_AUDIENCE 资源标识符(通常是MCP服务器的公共URL)。 - 服务器在以下位置发布RFC 9728受保护资源元数据 /.well-known/oauth-protected-resource. - 401条回复包括 WWW-Authenticate: Bearer error="...", resource_metadata="..." 根据 RFC 6750。

在v2.0.0中删除: X-Chroma-Token 页眉和 ?apiKey= / ?token= / ?api_key= 不再接受查询参数身份验证。以前使用这些路径的客户端必须迁移到 Authorization: BearerThe ALLOW_QUERY_AUTH env-var被忽略。

源标头验证(DNS重新绑定保护)

服务器验证 Origin 浏览器请求的标头,以防止DNS重新绑定攻击。默认情况下,此安全功能已启用,可保护您的本地MCP服务器免受恶意网站的攻击。

默认允许的来源(始终允许):

  • 本地宿主变体: localhost, 127.0.0.1, [::1]
  • Claude.ai域名: https://claude.ai, https://api.anthropic.com

配置其他允许的来源:

如果需要允许其他web应用程序或自定义域,请将它们添加到 ALLOWED_ORIGINS 在你的 .env 文件:

# Add additional custom domains (Claude.ai is already allowed by default)
ALLOWED_ORIGINS=https://myapp.com,https://yourdomain.com

何时配置ALLOWED_ORIGINS:

  • ✅ 使用Claude桌面自定义连接器→ 无需配置 (默认情况下允许)
  • ✅ 从自定义web应用程序访问→ 添加应用程序的域
  • ✅ 远程使用Swagger UI→ 添加服务器的域
  • ❌ 使用克劳德代码CLI→ 不需要(无Origin标头)
  • ❌ 使用Python/JavaScript客户端→ 不需要(无Origin标头)
  • ❌ 仅限于本地开发→ 不需要(默认情况下允许使用localhost)

示例配置:

# For custom web application
ALLOWED_ORIGINS=https://myapp.com,https://app.mycompany.com

# Multiple custom domains (comma-separated, spaces are trimmed)
ALLOWED_ORIGINS=https://myapp.com, https://api.example.com, https://dashboard.mycompany.com

# Leave empty if you only need Claude.ai and localhost
ALLOWED_ORIGINS=

注: Claude.ai域名(https://claude.ai, https://api.anthropic.com)始终允许使用localhost,即使 ALLOWED_ORIGINS 是空的。始终允许服务器到服务器的请求(不带Origin标头)。

数据存储配置

ChromaDB数据可以通过三种方式存储:

  1. Docker卷(默认): CHROMA_DATA_PATH=chroma-data

- 由Docker管理 - 容器重启后幸存 - 使用 docker volume ls 和 docker volume inspect chroma-data 定位

  1. 本地目录: CHROMA_DATA_PATH=./data

- 易于备份和访问 - 存储在安装目录中

  1. 自定义路径: CHROMA_DATA_PATH=/path/to/data

- 必须是绝对路径 - 适用于安装外部存储

更换后 CHROMA_DATA_PATH,重新启动服务:

docker compose restart

______________________________________________________________________

连接克劳德

克劳德桌面+移动

方法1:自定义连接器(推荐-专业版/团队版/企业版)

  1. 打开克劳德桌面→ 设置→ 集成→ 自定义连接器
  2. 点击“添加自定义服务器”
  3. 输入:

- 名称: ChromaDB - 统一资源定位符: https://your-server.com/mcp (套 Authorization: Bearer YOUR_TOKEN 在连接器的头部配置中)

备注:自定义连接器会自动同步到移动应用程序。远程访问必须进行身份验证。

方法2:mcp远程包装器(免费/专业用户)

如果您无法访问自定义连接器,请使用 mcp-remote 打包作为解决方法:

配置文件位置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json

添加到配置文件:

{
  "mcpServers": {
    "chromadb": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://your-server.com/mcp", "--header", "Authorization: Bearer YOUR_TOKEN"]
    }
  }
}

编辑文件后重新启动Claude Desktop。

重要:无法直接在中配置远程MCP服务器 claude_desktop_config.json 使用 streamableHttp 运输。您必须使用自定义连接器或 mcp-remote 包装。

克劳德代码

CLI命令:

# Without authentication
claude mcp add --transport http chromadb https://your-server.com/mcp

# With authentication (Query Parameter - Recommended)
claude mcp add --transport http chromadb https://your-server.com/mcp \
  --header "Authorization: Bearer YOUR_TOKEN"

# With authentication (Header)
claude mcp add --transport http chromadb https://your-server.com/mcp \
  --header "Authorization: Bearer YOUR_TOKEN"

# Verify
claude mcp list

______________________________________________________________________

可用工具(v2.2.0)

MCP服务器为Claude提供了这些工具。v2.2.0将覆盖范围扩展到收集/文档/搜索/分叉/客户端信息/管理/破坏性组的30个工具。

收集管理

  • chroma_list_collections -列出所有收藏(包括 limit / offset)
  • chroma_create_collection -创建新收藏(configuration / schema 可选)
  • chroma_get_or_create_collection -概念创建或获取(v2.2.0)
  • chroma_modify_collection -重命名/更改元数据或配置(v2.2.0)
  • chroma_delete_collection -删除收藏
  • chroma_get_collection_info -获取集合元数据
  • chroma_get_collection_count -获取文档计数(read_level 可选)
  • chroma_count_collections -总收集计数(v2.2.0)
  • chroma_peek_collection -预览收藏内容

文档操作

  • chroma_add_documents -添加文档(带 uris 多模式)
  • chroma_upsert_documents -临时插入或更新(v2.2.0)
  • chroma_query_documents -语义搜索(带 query_uris / ids 预过滤器)
  • chroma_get_documents -检索文档(read_level 可选)
  • chroma_update_documents -更新现有文档( embeddings / uris)
  • chroma_delete_documents -删除方式 ids 和 where / where_document 过滤器

服务器信息(v2.2.0)

  • chroma_heartbeat -服务器心跳(纳秒时间戳)
  • chroma_get_server_version -服务器版本字符串
  • chroma_get_max_batch_size -最大批处理大小(用于客户端拆分)
  • chroma_get_user_identity -当前租户+数据库

分布式/仅限云——选择加入(CHROMA_DISTRIBUTED_TOOLS_ENABLED=true)

默认情况下隐藏,因此单节点部署不会在始终返回的工具上浪费LLM上下文 "not implemented for local executor" / "unsupported for local chroma".

  • chroma_search -混合密集+稀疏搜索(RRF)。该算法本身在单个节点上工作;chromadb开源软件根本没有实现 search() 本地执行器中的端点。
  • chroma_fork_collection -零拷贝分叉(对象存储上的段级操作——在架构上需要分布式压缩器/存储堆栈)。
  • chroma_get_fork_count -分叉元数据查找(取决于分布式元数据存储)。
  • chroma_get_indexing_status -WAL偏移+压实机索引进度(需要分布式WAL/压实机服务)。

管理员--选择加入(CHROMA_ADMIN_TOOLS_ENABLED=true)

  • chroma_admin_create_database / chroma_admin_get_database / chroma_admin_list_databases
  • chroma_admin_create_tenant / chroma_admin_get_tenant

破坏性-选择加入(CHROMA_ALLOW_DESTRUCTIVE_OPS=true)

呼叫发出a [DESTRUCTIVE] 审计线。

  • chroma_reset_database -重置整个数据库(不可逆)
  • chroma_admin_delete_database -删除数据库(需要两个标志)

______________________________________________________________________

从Python中使用ChromaDB

MCP服务器代理所有ChromaDB REST API端点,允许从Python客户端直接访问。

Python示例

import chromadb

# HTTPS (Tailscale Funnel, public deployment)
client = chromadb.HttpClient(
    host="your-server.com",
    port=443,
    ssl=True,
    headers={
        "Authorization": "Bearer YOUR_TOKEN"
    }
)

# Local development (HTTP)
client = chromadb.HttpClient(
    host="localhost",
    port=8080,
    ssl=False,
    headers={
        "Authorization": "Bearer YOUR_TOKEN"
    }
)

# Usage
collection = client.create_collection("my_collection")
collection.add(
    documents=["Document 1", "Document 2"],
    ids=["id1", "id2"]
)
results = collection.query(query_texts=["query"], n_results=2)

替代身份验证:

from chromadb.config import Settings

client = chromadb.HttpClient(
    host="your-server.com",
    port=443,
    ssl=True,
    settings=Settings(
        chroma_client_auth_provider="chromadb.auth.token_authn.TokenAuthClientProvider",
        chroma_client_auth_credentials="YOUR_TOKEN"
    )
)

API文档

访问 https://your-server.com/docs 用于所有ChromaDB REST API端点的Swagger UI文档。

______________________________________________________________________

部署

选项1:Tailscale VPN(推荐)

在您的Tailscale网络中实现安全访问:

# Start services
docker compose up -d

# Enable Tailscale Serve (HTTPS with automatic certificates)
tailscale serve https / http://127.0.0.1:8080

# Check status
tailscale serve status

您的服务器现在可以在以下位置访问 https://your-machine.tailXXXXX.ts.net 您Tailnet中的所有设备。

优势:

  • 自动HTTPS证书
  • 没有公开的互联网曝光
  • 加密VPN隧道
  • 身份验证可选(VPN提供安全层)

选项2:尾部漏斗(公共互联网)

要使用Claude Desktop UI自定义连接器或公开共享:

# Enable Funnel (allows public internet access)
tailscale funnel 8080 on
tailscale serve https / http://127.0.0.1:8080

# Verify Funnel is active
tailscale serve status  # Should show "Funnel on"
警告:这会将您的服务器暴露在公共互联网上。 身份验证是强制性的! 集 MCP_AUTH_TOKEN 在您的环境中。

禁用漏斗:

tailscale funnel 8080 off

选项3:Cloudflare隧道

# Install cloudflared
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o cloudflared
chmod +x cloudflared

# Authenticate
./cloudflared tunnel login

# Create tunnel
./cloudflared tunnel create chroma-mcp

# Run tunnel
./cloudflared tunnel --url http://localhost:3000

选项4:Nginx反向代理

server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

______________________________________________________________________

安全

代码质量与安全分析

该项目遵循严格的安全实践,并解决了静态分析发现的所有安全问题:

  • ✅ 零活跃问题:所有OWASP和CWE安全发现均已解决
  • 🔒 静态分析:持续监测 DeepSource
  • 🛡️ 安全标准:符合OWASP Top 10和Node.js安全最佳实践
  • 📊 自动扫描:Dependabot、CodeQL和容器漏洞扫描

有关详细的安全信息,请参阅 安全策略.

安全建议

  1. 启用公共访问身份验证

- 集 MCP_AUTH_TOKEN 使用Tailscale漏斗或公共互联网时 - 生成强令牌: openssl rand -base64 32 | tr '+/' '-_' | tr -d '=' - 定期旋转令牌

  1. 使用HTTPS

- Tailscale提供自动HTTPS证书 - 将反向代理(Nginx/Caddy)与Let's Encrypt一起用于其他部署

  1. 比公共互联网更喜欢VPN

- Tailscale Serve(仅限VPN)比Funnel(公共)更安全 - 身份验证在VPN中是可选的,但对于公共访问是强制性的

  1. 监控访问
   # Check for unauthorized access attempts
   docker compose logs mcp-server | grep "Unauthorized"
  1. 网络隔离

- 将ChromaDB保持在专用网络上 - 仅将MCP服务器暴露于公共互联网

______________________________________________________________________

测试

本地测试

# Health check
curl http://localhost:3000/health

# MCP tools list
curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

# ChromaDB heartbeat
curl http://localhost:3000/api/v2/heartbeat

远程测试(带身份验证)

# MCP endpoint (Bearer token)
curl -X POST https://your-server.com/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

# MCP endpoint (Bearer token)
curl -X POST "https://your-server.com/mcp" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

# ChromaDB REST API
curl https://your-server.com/api/v2/heartbeat \
  -H "Authorization: Bearer YOUR_TOKEN"

# Swagger UI (browser)
https://your-server.com/docs  # send Authorization: Bearer YOUR_TOKEN header

______________________________________________________________________

故障排除

ChromaDB连接失败

# Check if ChromaDB is running
curl http://localhost:8000/api/v2/heartbeat

# Start ChromaDB with Docker
docker run -d -p 8000:8000 chromadb/chroma:latest

# Check MCP server logs
docker compose logs mcp-server

MCP服务器没有响应

# Check logs
docker compose logs mcp-server

# Check port conflicts
lsof -i :3000

# Restart services
docker compose restart

Claude桌面连接问题

  1. 重新启动克劳德桌面
  2. 验证URL是否包含 /mcp 路径
  3. 确认运输类型为 streamableHttp (不是 sse)
  4. 检查身份验证令牌(如果已启用)
  5. 对于自定义连接器:确保尾秤漏斗处于活动状态

本地网络上的TLS握手超时

如果您从与服务器相同的本地网络连接并使用Tailscale漏斗HTTPS:

问题:访问时TLS握手失败并超时 https://your-server.ts.net 来自同一网络。

根本原因:当同一局域网上的客户端尝试通过公共漏斗域连接时,Tailscale漏斗会出现TLS终止问题。

解决方案:使用直接本地网络连接而不是Tailscale HTTPS:

# Remove existing configuration
claude mcp remove chromadb

# Add with local IP address
claude mcp add chromadb --transport http \
  http://192.168.x.x:8080/mcp \
  --header "Authorization: Bearer YOUR_TOKEN"

# Or use hostname if DNS resolves
claude mcp add chromadb --transport http \
  http://server-hostname:8080/mcp \
  --header "Authorization: Bearer YOUR_TOKEN"

验证:

# Test local network connection
curl http://192.168.x.x:8080/health

# Should return: {"status":"ok","service":"chroma-remote-mcp",...}

备注:外部客户端应继续使用Tailscale漏斗HTTPS。此问题仅影响与服务器位于同一局域网上的客户端。

身份验证错误(401)

# Verify MCP_AUTH_TOKEN is set
docker compose exec mcp-server env | grep MCP_AUTH_TOKEN

# Test without token (should fail with 401)
curl -X POST https://your-server.com/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

# Test with correct token (should succeed)
curl -X POST https://your-server.com/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

______________________________________________________________________

发展

从源代码构建

# Clone repository
git clone https://github.com/meloncafe/chromadb-remote-mcp.git
cd chromadb-remote-mcp

# Install dependencies
yarn install

# Development mode (auto-reload)
yarn dev

# Build TypeScript
yarn build

# Type check
yarn type-check

测试

该项目包括基于Docker的E2E验证的集成测试:

# Run all tests (starts services, runs tests, cleans up)
yarn test

# Run tests and keep containers running for debugging
yarn test:keep

# Manual test script with options
./scripts/test.sh --help

集成测试覆盖率:

  • ✅ 健康检查端点
  • ✅ 身份验证(Authorization: Bearer MCP_AUTH_TOKEN;OAuth 2.1/OIDC多提供商)
  • ✅ MCP协议(工具/列表、工具/调用)
  • ✅ ChromaDB REST API代理
  • ✅ 收集CRUD操作
  • ✅ 速率限制
  • ✅ 未经授权的访问处理

单元测试:

# Run unit tests
yarn test:unit

# Run with watch mode
yarn test:unit:watch

# Run with coverage
yarn test:unit:coverage

# Run all tests (unit + integration)
yarn test:all

单元测试覆盖率:

  • ✅ 身份验证实用程序(定时安全比较、缓冲区操作)
  • ✅ 输入验证(集合名称、文档ID、元数据)
  • ✅ 数据处理(响应格式化、JSON序列化)
  • ✅ 错误消息格式

看 __tests__/README.md 详细的测试策略。

代码质量和覆盖率

此项目使用 Codecov 用于代码覆盖率跟踪和测试分析。

Docker开发

本地构建和测试
# Build for local testing (single platform, loads to Docker)
yarn docker:build:local

# Or with script directly
./scripts/build.sh --platform linux/amd64 --load

# Test the built image
docker run -p 3000:3000 \
  -e MCP_AUTH_TOKEN=test123 \
  devsaurus/chromadb-remote-mcp:latest
多平台构建
# Build for all platforms (amd64, arm64)
yarn docker:build

# Build with custom version
./scripts/build.sh --version 1.2.3

# Build with custom repository
./scripts/build.sh --repo myuser/my-mcp --version dev
推送到Docker Hub
# Push latest tag
yarn docker:push

# Push specific version
VERSION=1.2.3 yarn docker:push

# Or with script directly
./scripts/build.sh --version 1.2.3 --push

# With custom repository
DOCKER_REPO=myuser/my-mcp ./scripts/build.sh --version 1.2.3 --push

Docker脚本的环境变量:

export DOCKER_REPO=myuser/my-mcp       # Docker repository
export VERSION=1.2.3                    # Image version tag
export DOCKER_USERNAME=myuser           # For push authentication
export DOCKER_PASSWORD=mytoken          # Docker Hub token

开发脚本

所有开发脚本都位于 scripts/:

脚本目的用法
build.sh构建和推送Docker镜像./scripts/build.sh --help
test.sh运行集成测试./scripts/test.sh --help
install.sh一个命令安装`curl ... \bash`

快速开发工作流程:

# 1. Make code changes
vim src/index.ts

# 2. Test locally
yarn dev

# 3. Run integration tests
yarn test

# 4. Build Docker image
yarn docker:build:local

# 5. Test Docker image
docker-compose up

# 6. If all good, build multi-platform and push
./scripts/build.sh --version 1.2.3 --push

项目结构

chromadb-remote-mcp/
├── .github/
│   ├── ISSUE_TEMPLATE/       # GitHub issue templates
│   └── workflows/            # GitHub Actions (publish-release, security-scan, chromadb-version-check)
├── scripts/
│   ├── build.sh             # Docker build and push script (multi-platform)
│   ├── test.sh              # Integration test runner
│   └── install.sh           # One-command installation
├── src/
│   ├── index.ts             # Main server entry point
│   ├── chroma-tools.ts      # MCP tool definitions and handlers
│   └── types.ts             # TypeScript type definitions
├── docker-compose.yml       # Production (prebuilt image)
├── docker-compose.dev.yml   # Development (builds from source)
├── Dockerfile               # MCP server Docker image
├── .env.example             # Environment variables template
├── package.json             # Node.js dependencies
├── tsconfig.json            # TypeScript configuration
├── SECURITY.md              # Security policy
├── CONTRIBUTING.md          # Contribution guidelines
├── CODE_OF_CONDUCT.md       # Code of conduct
├── CHANGELOG.md             # Version history
└── LICENSE                  # MIT license

______________________________________________________________________

贡献

欢迎投稿!请随时提交问题和拉取请求。

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

______________________________________________________________________

许可证

MIT许可证

______________________________________________________________________

资源

______________________________________________________________________

支持

如果您遇到任何问题或有疑问,请 打开一个问题.

______________________________________________________________________

v2.0.0配置

v2.0引入了集合元数据模式v2、OAuth 2.1 OIDC、可配置的嵌入提供程序和可选的重新登录器。看 MIGRATION.md 获取升级指南。

环境变量

变量目的
EMBEDDING_PROVIDERchromadb-default (仅英文,默认)/ external / openai_compatible / gemini / voyage
EMBEDDING_MODEL提供程序特定的模型id。存储在集合元数据中。
EMBEDDING_DIMENSIONS矢量维度。外部模式需要;双子座接受768/1536/3072。
EMBEDDING_API_BASEOpenAI兼容的端点基础URL(Ollama/TEI/Voyage/TTogether/vLLM)。
EMBEDDING_API_KEY承载密钥 openai_compatible 或 voyage 供应商。
GEMINI_API_KEYGoogle AI Studio API密钥 gemini 供应商。
CONFIDENCE_THRESHOLD默认值 min_score (0-1).工具参数具有优先权。
RERANKER_API_BASEOpenAI兼容 /rerank 终点。Reranker是失败的软。
RERANKER_API_KEY重新登录器的可选承载密钥。
RERANKER_MODEL重新排序器模型id(默认 bge-reranker-v2-m3).
OIDC_ISSUERS逗号分隔的OIDC发行者URL
OIDC_PRESET便利预设名称: google,github,microsoft.
OIDC_AUDIENCE预期 aud 索赔。
OIDC_SCOPES受保护资源元数据的逗号分隔范围。
OIDC_LOG_SUB_MODEfull 为生 sub,否则SHA-256的前12个字符(默认)。
MCP_AUTH_TOKEN仅限服务到服务/CI/内部脚本。 为人类用户使用OAuth。与OIDC共存——任何一种方法都可以接受。
LEGACY_COLLECTION_COMPATtrue 允许对遗留v1集合进行只读访问。写入仍然被拒绝。

推荐嵌入+重新链接组合

在韩国RAG工作负载上进行本地验证(2026-05)。按优先级选择:

优先级嵌入重新排序为什么
精度优先(推荐)gemini / gemini-embedding-001 /1536dcohere / rerank-multilingual-v3.0Gemini发出非对称查询↔文档向量(RETRIEVAL_QUERY/RETRIEVAL_DOCUMENT在我们的测试中,自距离≈0.21);Cohere重新排序简短的KR问题↔答案对得干净利落。
成本平衡voyage / voyage-3 /1024dcohere / rerank-multilingual-v3.0航行嵌入的成本约为双子座的1/2.5,但仍然不对称(input_type 查询/文档,自距离≈0.56)。
最低嵌入成本openai_compatible / text-embedding-3-small /1536dcohere / rerank-multilingual-v3.0最便宜的托管嵌入;对称向量在短KR查询中较弱,因此重新排序器是必不可少的。
自托管/离线openai_compatible (Ollama/TEI/vLLM)TEI bge-reranker-v2-m3 或类似无外部API;延迟取决于本地硬件。

验证运行注意事项:

  • 航行 rerank-2 未对简短的KR问题进行重新排序↔本测试中使用的答案对——将Cohere作为KR的重新排序默认值,直到您自己的语料库显示其他情况。
  • 再粘合剂层失效柔软:离开 RERANKER_API_BASE 未设置此选项可在不更改代码的情况下禁用重新分级。
  • 集 CONFIDENCE_THRESHOLD (或每次通话 min_score)删除低相似性点击;服务器发出 confidence_gate: "no_confident_match" 当每个结果都被过滤时。

Docker编写代码片段(Gemini+谷歌OAuth)

services:
  mcp-server:
    image: devsaurus/chromadb-remote-mcp:2.0.0
    environment:
      EMBEDDING_PROVIDER: gemini
      EMBEDDING_MODEL: gemini-embedding-001
      EMBEDDING_DIMENSIONS: "1536"
      GEMINI_API_KEY: ${GEMINI_API_KEY}
      OIDC_PRESET: google
      OIDC_AUDIENCE: ${OIDC_AUDIENCE}  # e.g. your client_id
      CONFIDENCE_THRESHOLD: "0.55"
      RERANKER_API_BASE: "http://desktop-gpu.tail-xxxx.ts.net:8001"
      RERANKER_MODEL: bge-reranker-v2-m3

OAuth流程

  1. 配置您的IdP(Google/GitHub/Microsoft),为匹配的受众发放代币 OIDC_AUDIENCE.
  2. 集 OIDC_PRESET=google (或 OIDC_ISSUERS=... 用于自定义IdP)以及 OIDC_AUDIENCE=....
  3. 客户端发送 Authorization: Bearer 到 /mcp.
  4. 401条回复包括 WWW-Authenticate: Bearer error="...", resource_metadata="/.well-known/oauth-protected-resource" 根据 RFC 9728。
  5. MCP_AUTH_TOKEN 与OAuth一起仍然有效——建议用于非交互式工作负载。

阅读旧版v1收藏

集 LEGACY_COLLECTION_COMPAT=true 以允许只读访问。写作(chroma_add_documents / update / delete)v1上的收藏仍然返回 Error: Cannot write to legacy v1 collection。参见 MIGRATION.md.

工具与能力

工具数量

30

资源数量

0

提示词数量

0

能力标签

向量数据库TypeScript本地部署语义搜索AI内存服务跨平台同步自托管

支持客户端

Claude DesktopClaudeCursorWindsurfCline

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 工具数量 30 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude、Cursor,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Docker,换机器要重新装一遍。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到OAuth 授权的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Chromadb Remote MCP

MCP World · 本页

30stdio有1 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Chromadb Remote MCP 怎么安装?

公开资料给出的安装命令是 docker run -d -p 8000:8000 chromadb/chroma:latest,运行环境为 Docker。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Chromadb Remote MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Docker;保存后完全退出客户端再打开,配置才会生效。

Chromadb Remote MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Chromadb Remote MCP 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Chromadb Remote MCP 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude、Cursor、Windsurf、Cline;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP