概述
安裝
工具列表
內容詳情
替代品
什麼是ChromaDB Remote MCP Server?
這是一個遠程MCP(模型上下文協議)服務器,為AI助手提供訪問ChromaDB向量數據庫的能力。它允許Claude等AI助手存儲、檢索和搜索文檔內容,實現持久的記憶和知識庫功能。服務器支持所有Claude客戶端(桌面版、移動版、代碼編輯器),確保跨設備的數據同步。如何使用ChromaDB Remote MCP Server?
使用非常簡單:1) 通過Docker一鍵部署服務器,2) 在Claude客戶端中添加MCP服務器連接,3) 開始使用語義搜索和文檔管理功能。服務器提供完整的ChromaDB功能,包括創建集合、添加文檔、語義搜索等。適用場景
1) 個人知識管理:存儲和搜索個人筆記、文章、代碼片段;2) 團隊協作:共享文檔庫和知識庫;3) 研究助手:管理研究論文和技術文檔;4) 代碼助手:存儲和檢索代碼示例和API文檔;5) 跨設備AI助手:在手機、電腦、編輯器中使用相同的記憶庫。主要功能
如何使用
使用案例
常見問題
相關資源
安裝
{
"mcpServers": {
"chromadb": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://your-server.com/mcp?apiKey=YOUR_TOKEN"]
}
}
}🚀 ChromaDB遠程MCP服務器
ChromaDB遠程MCP服務器是一個支持流式HTTP的MCP(模型上下文協議)服務器,它為Claude等AI助手提供對ChromaDB的遠程訪問能力,能夠讓用戶在移動設備和遠程位置進行語義搜索和向量數據庫操作。
注意:本項目採用MCP流式HTTP(2025 - 03 - 26規範),SSE傳輸方式已棄用。
韓語文檔
🚀 快速開始
一鍵安裝
curl -fsSL https://raw.githubusercontent.com/meloncafe/chromadb-remote-mcp/release/scripts/install.sh | bash
此命令將完成以下操作:
- 下載
docker-compose.yml和.env.example文件。 - 自動檢測Docker Compose命令(
docker-compose或docker compose)。 - 自動生成安全的認證令牌(可選)。
- 配置ChromaDB數據存儲位置(Docker卷、本地目錄或自定義路徑)。
- 拉取Docker鏡像。
- 顯示認證令牌和連接URL。
手動安裝
選項1:Docker(推薦 - 預構建鏡像)
# 下載配置文件
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
# 配置環境
cp .env.example .env
# 編輯.env文件並設置:
# - MCP_AUTH_TOKEN(見下面的令牌生成方法)
# - PORT(默認值:8080)
# - CHROMA_DATA_PATH(默認值:chroma-data)
# 啟動服務
docker compose up -d
# 或者:docker-compose up -d(適用於舊版本)
# 檢查健康狀態
curl http://localhost:8080/health
# 查看日誌
docker compose logs -f
選項2:從源代碼構建
# 克隆倉庫
git clone https://github.com/meloncafe/chromadb-remote-mcp.git
cd chromadb-remote-mcp
# 配置環境
cp .env.example .env
# 編輯.env文件進行配置
# 使用docker-compose啟動(從源代碼構建鏡像)
docker compose -f docker-compose.dev.yml up -d
# 或者:docker-compose -f docker-compose.dev.yml up -d(適用於舊版本)
選項3:本地開發
# 克隆並安裝
git clone https://github.com/meloncafe/chromadb-remote-mcp.git
cd chromadb-remote-mcp
yarn install
# 配置環境
cp .env.example .env
# 編輯.env文件
# 構建並運行
yarn build
yarn start
生成安全令牌
對於生產環境,需要為.env文件中的MCP_AUTH_TOKEN生成安全令牌:
# 方法1:Node.js(推薦)
node -e "console.log(require('crypto').randomBytes(32).toString('base64url'))"
# 方法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 UI:
http://localhost:8080/docs
✨ 主要特性
- 跨設備共享內存:所有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桌面版和移動版:在Claude桌面版中使用自定義連接器進行一次性設置,設置會自動同步到移動應用,兩者自動共享同一連接。
- Claude代碼版:需要使用
claude mcp addCLI命令單獨設置。
所有客戶端通過此遠程MCP服務器訪問同一個自託管的ChromaDB,向量嵌入和語義搜索結果在所有平臺上保持持久化。
API端點
| 路徑 | 用途 | 客戶端 | 認證 |
|---|---|---|---|
/mcp |
MCP協議 | Claude桌面版/代碼版/移動版 | ✅ |
/api/v2/* |
ChromaDB REST API | Python | ✅ |
/docs |
Swagger UI | 瀏覽器(API文檔) | ✅ |
/openapi.json |
OpenAPI規範 | API工具 | ✅ |
/health |
健康檢查 | 監控 | ❌ |
工作原理
- Claude桌面版/移動版:通過自定義連接器添加MCP服務器(設備間自動同步)。
- Claude代碼版:使用
claude mcp addCLI命令添加MCP服務器。 - 遠程MCP服務器對請求進行認證,並將MCP協議轉換為ChromaDB操作。
- ChromaDB存儲和檢索向量嵌入以進行語義搜索。
- Python也可以通過代理的REST API直接訪問ChromaDB。
優點:
- 所有客戶端使用同一個向量數據庫。
- 桌面版和移動版自動共享連接。
- 自託管且私密。
- 應用重啟後內存持久化。
- 嵌入數據有單一事實來源。
📦 安裝指南
環境變量(.env文件)
所有配置都通過.env文件完成。將.env.example複製到.env並進行自定義:
cp .env.example .env
| 變量 | 描述 | 默認值 | 是否必需 |
|---|---|---|---|
PORT |
外部端口(Caddy反向代理) | 8080 |
否 |
CHROMA_DATA_PATH |
ChromaDB數據存儲路徑(卷名、./data或絕對路徑) |
chroma-data |
否 |
CHROMA_HOST |
ChromaDB主機(內部) | chromadb |
否 |
CHROMA_PORT |
ChromaDB端口(內部) | 8000 |
否 |
CHROMA_TENANT |
ChromaDB租戶 | default_tenant |
否 |
CHROMA_DATABASE |
ChromaDB數據庫 | default_database |
否 |
MCP_AUTH_TOKEN |
MCP和REST API的認證令牌 | - | 是(公共訪問時) |
CHROMA_AUTH_TOKEN |
ChromaDB認證令牌(如果ChromaDB需要認證) | - | 否 |
RATE_LIMIT_MAX |
每個IP每15分鐘的最大請求數 | 100 |
否 |
ALLOWED_ORIGINS |
允許的來源列表(逗號分隔,用於防止DNS重綁定攻擊) | - | 否 |
ALLOW_QUERY_AUTH |
啟用通過查詢參數進行認證(?apiKey=TOKEN) |
true |
否 |
認證
重要提示:對於公共互聯網訪問(如Tailscale Funnel、Cloudflare Tunnel等),必須在.env文件中設置MCP_AUTH_TOKEN。
生成安全令牌:
# 方法1:Node.js(推薦 - 來自.env.example)
node -e "console.log(require('crypto').randomBytes(32).toString('base64url'))"
# 方法2:OpenSSL
openssl rand -base64 32 | tr '+/' '-_' | tr -d '='
編輯.env文件:
MCP_AUTH_TOKEN=your-generated-token-here
然後重啟服務:
docker compose restart
# 或者:docker-compose restart
支持的認證方法:
- 授權頭(最安全):
Authorization: Bearer TOKEN- 推薦用於API客戶端和自動化工具。
- 符合MCP規範。
- 示例:
curl -H "Authorization: Bearer YOUR_TOKEN"
- X - Chroma - Token頭:
X-Chroma-Token: TOKEN- 用於ChromaDB Python/JavaScript庫。
- 與ChromaDB客戶端SDK兼容。
- 示例:
client = chromadb.HttpClient(headers={"X-Chroma-Token": "TOKEN"})
- 查詢參數(默認啟用):
?apiKey=TOKEN- Claude桌面版自定義連接器必需。
- 支持基於瀏覽器的集成。
- 默認啟用(
ALLOW_QUERY_AUTH=true)。 - 若不需要,可設置
ALLOW_QUERY_AUTH=false禁用。
來源頭驗證(DNS重綁定保護)
服務器會驗證瀏覽器請求的Origin頭,以防止DNS重綁定攻擊。此安全功能默認啟用,可保護本地MCP服務器免受惡意網站的攻擊。
默認允許的來源(始終允許):
- 本地主機變體:
localhost、127.0.0.1、[::1] - Claude.ai域名:
https://claude.ai、https://api.anthropic.com
配置其他允許的來源:
如果需要允許其他Web應用程序或自定義域名,可在.env文件的ALLOWED_ORIGINS中添加它們:
# 添加其他自定義域名(Claude.ai默認已允許)
ALLOWED_ORIGINS=https://myapp.com,https://yourdomain.com
何時配置ALLOWED_ORIGINS:
- ✅ 使用Claude桌面版自定義連接器 → 無需配置(默認允許)
- ✅ 從自定義Web應用程序訪問 → 添加應用程序的域名
- ✅ 遠程使用Swagger UI → 添加服務器的域名
- ❌ 使用Claude代碼版CLI → 不需要(無Origin頭)
- ❌ 使用Python/JavaScript客戶端 → 不需要(無Origin頭)
- ❌ 僅進行本地開發 → 不需要(本地主機默認允許)
示例配置:
# 對於自定義Web應用程序
ALLOWED_ORIGINS=https://myapp.com,https://app.mycompany.com
# 多個自定義域名(逗號分隔,空格會被去除)
ALLOWED_ORIGINS=https://myapp.com, https://api.example.com, https://dashboard.mycompany.com
# 如果只需要Claude.ai和本地主機,留空即可
ALLOWED_ORIGINS=
注意:Claude.ai域名(https://claude.ai、https://api.anthropic.com)和本地主機始終允許,即使ALLOWED_ORIGINS為空。服務器到服務器的請求(無Origin頭)始終允許。
數據存儲配置
ChromaDB數據可以通過以下三種方式存儲:
- Docker卷(默認):
CHROMA_DATA_PATH=chroma-data- 由Docker管理。
- 容器重啟後數據仍然保留。
- 可使用
docker volume ls和docker volume inspect chroma-data定位。
- 本地目錄:
CHROMA_DATA_PATH=./data- 易於備份和訪問。
- 存儲在安裝目錄中。
- 自定義路徑:
CHROMA_DATA_PATH=/path/to/data- 必須是絕對路徑。
- 適用於掛載外部存儲。
更改CHROMA_DATA_PATH後,重啟服務:
docker compose restart
💻 使用示例
連接Claude
Claude桌面版和移動版
方法1:自定義連接器(推薦 - 專業版/團隊版/企業版)
- 打開Claude桌面版 → 設置 → 集成 → 自定義連接器。
- 點擊“添加自定義服務器”。
- 輸入:
- 名稱:
ChromaDB - URL:
https://your-server.com/mcp?apiKey=YOUR_TOKEN
- 名稱:
注意:自定義連接器會自動同步到移動應用。遠程訪問時認證是必需的。
方法2:mcp - remote包裝器(免費版/專業版用戶)
如果沒有自定義連接器的訪問權限,可以使用mcp-remote包作為解決方法:
配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
添加到配置文件:
{
"mcpServers": {
"chromadb": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://your-server.com/mcp?apiKey=YOUR_TOKEN"]
}
}
}
編輯文件後重啟Claude桌面版。
重要提示:不能在
claude_desktop_config.json中使用streamableHttp傳輸方式直接配置遠程MCP服務器。必須使用自定義連接器或mcp-remote包裝器。
Claude代碼版
CLI命令:
# 無認證
claude mcp add --transport http chromadb https://your-server.com/mcp
# 有認證(查詢參數 - 推薦)
claude mcp add --transport http chromadb https://your-server.com/mcp?apiKey=YOUR_TOKEN
# 有認證(頭信息)
claude mcp add --transport http chromadb https://your-server.com/mcp \
--header "Authorization: Bearer YOUR_TOKEN"
# 驗證
claude mcp list
可用工具
MCP服務器為Claude提供以下工具:
集合管理
chroma_list_collections- 列出所有集合chroma_create_collection- 創建新集合chroma_delete_collection- 刪除集合chroma_get_collection_info- 獲取集合元數據chroma_get_collection_count- 獲取文檔數量chroma_peek_collection- 預覽集合內容
文檔操作
chroma_add_documents- 添加帶有嵌入的文檔chroma_query_documents- 語義搜索(向量相似度)chroma_get_documents- 按ID或過濾器檢索文檔chroma_update_documents- 更新現有文檔chroma_delete_documents- 刪除文檔
使用Python訪問ChromaDB
MCP服務器代理所有ChromaDB REST API端點,允許Python客戶端直接訪問。
Python示例
import chromadb
# HTTPS(Tailscale Funnel,公共部署)
client = chromadb.HttpClient(
host="your-server.com",
port=443,
ssl=True,
headers={
"X-Chroma-Token": "YOUR_TOKEN"
}
)
# 本地開發(HTTP)
client = chromadb.HttpClient(
host="localhost",
port=8080,
ssl=False,
headers={
"X-Chroma-Token": "YOUR_TOKEN"
}
)
# 使用示例
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網絡內進行安全訪問:
# 啟動服務
docker compose up -d
# 啟用Tailscale Serve(自動生成HTTPS證書)
tailscale serve https / http://127.0.0.1:8080
# 檢查狀態
tailscale serve status
現在,Tailnet中的所有設備都可以通過https://your-machine.tailXXXXX.ts.net訪問服務器。
優點:
- 自動生成HTTPS證書。
- 不暴露到公共互聯網。
- 加密的VPN隧道。
- 認證可選(VPN提供安全層)。
選項2:Tailscale Funnel(公共互聯網)
要使用Claude桌面版UI自定義連接器或公開共享:
# 啟用Funnel(允許公共互聯網訪問)
tailscale funnel 8080 on
tailscale serve https / http://127.0.0.1:8080
# 驗證Funnel是否啟用
tailscale serve status # 應顯示 "Funnel on"
警告:這會將服務器暴露到公共互聯網。必須進行認證! 在環境中設置
MCP_AUTH_TOKEN。
禁用Funnel:
tailscale funnel 8080 off
選項3:Cloudflare Tunnel
# 安裝cloudflared
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o cloudflared
chmod +x cloudflared
# 認證
./cloudflared tunnel login
# 創建隧道
./cloudflared tunnel create chroma-mcp
# 運行隧道
./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和容器漏洞掃描。
如需詳細的安全信息,請參閱安全策略。
安全建議
- 為公共訪問啟用認證
- 使用Tailscale Funnel或公共互聯網時設置
MCP_AUTH_TOKEN。 - 生成強令牌:
openssl rand -base64 32 | tr '+/' '-_' | tr -d '='。 - 定期輪換令牌。
- 使用Tailscale Funnel或公共互聯網時設置
- 使用HTTPS
- Tailscale提供自動HTTPS證書。
- 對於其他部署,使用反向代理(Nginx/Caddy)和Let's Encrypt。
- 優先使用VPN而非公共互聯網
- Tailscale Serve(僅VPN)比Funnel(公共)更安全。
- VPN內認證可選,但公共訪問時必需。
- 監控訪問
# 檢查未經授權的訪問嘗試
docker compose logs mcp-server | grep "Unauthorized"
- 網絡隔離
- 將ChromaDB保留在專用網絡中。
- 僅將MCP服務器暴露到公共互聯網。
測試
本地測試
# 健康檢查
curl http://localhost:3000/health
# MCP工具列表
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
# ChromaDB心跳檢查
curl http://localhost:3000/api/v2/heartbeat
遠程測試(帶認證)
# MCP端點(Bearer令牌)
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端點(查詢參數)
curl -X POST "https://your-server.com/mcp?apiKey=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 "X-Chroma-Token: YOUR_TOKEN"
# Swagger UI(瀏覽器)
https://your-server.com/docs?apiKey=YOUR_TOKEN
故障排除
ChromaDB連接失敗
# 檢查ChromaDB是否運行
curl http://localhost:8000/api/v2/heartbeat
# 使用Docker啟動ChromaDB
docker run -d -p 8000:8000 chromadb/chroma:latest
# 檢查MCP服務器日誌
docker compose logs mcp-server
MCP服務器無響應
# 檢查日誌
docker compose logs mcp-server
# 檢查端口衝突
lsof -i :3000
# 重啟服務
docker compose restart
Claude桌面版連接問題
- 重啟Claude桌面版。
- 驗證URL是否包含
/mcp路徑。 - 確認傳輸類型為
streamableHttp(不是sse)。 - 若啟用認證,檢查認證令牌。
- 對於自定義連接器:確保Tailscale Funnel已啟用。
本地網絡上的TLS握手超時
如果從與服務器相同的本地網絡連接並使用Tailscale Funnel HTTPS:
問題:從同一網絡訪問https://your-server.ts.net時,TLS握手超時失敗。
根本原因:當同一局域網中的客戶端嘗試通過公共Funnel域名連接時,Tailscale Funnel在TLS終止方面存在問題。
解決方案:使用直接的本地網絡連接,而不是Tailscale HTTPS:
# 移除現有配置
claude mcp remove chromadb
# 使用本地IP地址添加
claude mcp add chromadb --transport http \
http://192.168.x.x:8080/mcp \
--header "Authorization: Bearer YOUR_TOKEN"
# 或者如果DNS解析正常,使用主機名
claude mcp add chromadb --transport http \
http://server-hostname:8080/mcp \
--header "Authorization: Bearer YOUR_TOKEN"
驗證:
# 測試本地網絡連接
curl http://192.168.x.x:8080/health
# 應返回:{"status":"ok","service":"chroma-remote-mcp",...}
注意:外部客戶端應繼續使用Tailscale Funnel HTTPS。此問題僅影響與服務器在同一局域網中的客戶端。
認證錯誤(401)
# 驗證MCP_AUTH_TOKEN是否設置
docker compose exec mcp-server env | grep MCP_AUTH_TOKEN
# 無令牌測試(應返回401錯誤)
curl -X POST https://your-server.com/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
# 正確令牌測試(應成功)
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}'
開發
從源代碼構建
# 克隆倉庫
git clone https://github.com/meloncafe/chromadb-remote-mcp.git
cd chromadb-remote-mcp
# 安裝依賴
yarn install
# 開發模式(自動重新加載)
yarn dev
# 構建TypeScript
yarn build
# 類型檢查
yarn type-check
測試
項目包含基於Docker的端到端集成測試:
# 運行所有測試(啟動服務、運行測試、清理)
yarn test
# 運行測試並保持容器運行以進行調試
yarn test:keep
# 手動測試腳本,帶有選項
./scripts/test.sh --help
集成測試覆蓋範圍:
- ✅ 健康檢查端點
- ✅ 認證(Bearer令牌、X - Chroma - Token、查詢參數)
- ✅ MCP協議(tools/list、tools/call)
- ✅ ChromaDB REST API代理
- ✅ 集合CRUD操作
- ✅ 速率限制
- ✅ 未經授權的訪問處理
單元測試:
# 運行單元測試
yarn test:unit
# 以監視模式運行
yarn test:unit:watch
# 運行並生成覆蓋率報告
yarn test:unit:coverage
# 運行所有測試(單元 + 集成)
yarn test:all
單元測試覆蓋範圍:
- ✅ 認證實用程序(定時安全比較、緩衝區操作)
- ✅ 輸入驗證(集合名稱、文檔ID、元數據)
- ✅ 數據處理(響應格式化、JSON序列化)
- ✅ 錯誤消息格式化
詳細的測試策略請參閱__tests__/README.md。
代碼質量與覆蓋率
本項目使用Codecov進行代碼覆蓋率跟蹤和測試分析。
Docker開發
本地構建和測試
# 為本地測試構建(單平臺,加載到Docker)
yarn docker:build:local
# 或者直接使用腳本
./scripts/build.sh --platform linux/amd64 --load
# 測試構建的鏡像
docker run -p 3000:3000 \
-e MCP_AUTH_TOKEN=test123 \
devsaurus/chromadb-remote-mcp:latest
多平臺構建
# 為所有平臺構建(amd64、arm64)
yarn docker:build
# 自定義版本構建
./scripts/build.sh --version 1.2.3
# 自定義倉庫構建
./scripts/build.sh --repo myuser/my-mcp --version dev
推送到Docker Hub
# 推送最新標籤
yarn docker:push
# 推送特定版本
VERSION=1.2.3 yarn docker:push
# 或者直接使用腳本
./scripts/build.sh --version 1.2.3 --push
# 使用自定義倉庫
DOCKER_REPO=myuser/my-mcp ./scripts/build.sh --version 1.2.3 --push
Docker腳本的環境變量:
export DOCKER_REPO=myuser/my-mcp # Docker倉庫
export VERSION=1.2.3 # 鏡像版本標籤
export DOCKER_USERNAME=myuser # 推送認證用戶名
export DOCKER_PASSWORD=mytoken # Docker Hub令牌
開發腳本
所有開發腳本都位於scripts/目錄下:
| 腳本 | 用途 | 使用方法 |
|---|---|---|
build.sh |
構建並推送Docker鏡像 | ./scripts/build.sh --help |
test.sh |
運行集成測試 | ./scripts/test.sh --help |
install.sh |
一鍵安裝 | curl ... | bash |
快速開發工作流:
# 1. 進行代碼更改
vim src/index.ts
# 2. 本地測試
yarn dev
# 3. 運行集成測試
yarn test
# 4. 構建Docker鏡像
yarn docker:build:local
# 5. 測試Docker鏡像
docker-compose up
# 6. 如果一切正常,進行多平臺構建並推送
./scripts/build.sh --version 1.2.3 --push
項目結構
chromadb-remote-mcp/
├── .github/
│ ├── ISSUE_TEMPLATE/ # GitHub問題模板
│ └── workflows/ # GitHub Actions(發佈版本、安全掃描、ChromaDB版本檢查)
├── scripts/
│ ├── build.sh # Docker構建和推送腳本(多平臺)
│ ├── test.sh # 集成測試運行器
│ └── install.sh # 一鍵安裝
├── src/
│ ├── index.ts # 主服務器入口點
│ ├── chroma-tools.ts # MCP工具定義和處理程序
│ └── types.ts # TypeScript類型定義
├── docker-compose.yml # 生產環境(預構建鏡像)
├── docker-compose.dev.yml # 開發環境(從源代碼構建)
├── Dockerfile # MCP服務器Docker鏡像
├── .env.example # 環境變量模板
├── package.json # Node.js依賴
├── tsconfig.json # TypeScript配置
├── SECURITY.md # 安全策略
├── CONTRIBUTING.md # 貢獻指南
├── CODE_OF_CONDUCT.md # 行為準則
├── CHANGELOG.md # 版本歷史
└── LICENSE # MIT許可證
🤝 貢獻
歡迎貢獻代碼!請隨時提交問題和拉取請求。
- 分叉倉庫。
- 創建功能分支(
git checkout -b feature/amazing-feature)。 - 提交更改(
git commit -m 'Add amazing feature')。 - 推送到分支(
git push origin feature/amazing-feature)。 - 打開拉取請求。
📄 許可證
MIT許可證
📚 資源
💬 支持
如果遇到任何問題或有疑問,請打開一個問題。
替代品








