-
-
Notifications
You must be signed in to change notification settings - Fork 2k
Open
Description
CC-Mem Windows 环境下 chroma-mcp 集成问题
环境信息
- 操作系统: Windows 11
- Shell: Git Bash / PowerShell
- Python: 3.13 (uvx)
- CC-Mem 版本: 10.3.1
问题描述
在 Windows 环境下配置 CC-Mem 的 chroma-mcp 语义搜索功能时遇到困难,chroma-mcp 连接一直失败。
具体情况
1. 错误日志
[ERROR] [CHROMA_MCP] Connection failed, killing subprocess to prevent zombie {error=MCP error -32000: Connection closed}
[ERROR] [CHROMA] SDK chroma sync failed, continuing without vector search
2. 配置尝试
settings.json 配置:
{
"CLAUDE_MEM_CHROMA_MODE": "http",
"CLAUDE_MEM_CHROMA_HOST": "127.0.0.1",
"CLAUDE_MEM_CHROMA_PORT": "8000",
...
}mcp.json 配置:
{
"chroma-mcp": {
"type": "stdio",
"command": "uvx",
"args": ["chroma-mcp", "--client-type", "persistent", "--data-dir", "C:\\Users\\...\\.claude-mem\\chroma"],
"env": {
"OPENAI_API_KEY": "...",
"OPENAI_BASE_URL": "https://api.siliconflow.cn/v1"
}
}
}3. 问题分析
问题 A: chroma-mcp 启动方式混淆
chroma-mcp --client-type http用于连接到已运行的 Chroma 服务器,不是启动服务器chroma-mcp --client-type persistent需要通过 MCP stdio 与客户端通信,无法作为独立后台进程运行- 在 Windows 后台启动 chroma-mcp 时,它立即退出(没有输入流)
问题 B: CC-Mem worker 连接方式
从日志看,CC-Mem worker 尝试通过 MCP stdio 连接:
[INFO] [CHROMA_MCP] Connecting to chroma-mcp via MCP stdio {command=uvx.cmd, args=chroma-mcp --client-type persistent ...}
但连接一直失败,进入 backoff 状态。
问题 C: 配置不一致
settings.json中配置的是 HTTP 模式- 但 worker 实际使用的是 MCP stdio 模式
- 两者不匹配导致混乱
4. 测试结果
| 功能 | 状态 | 说明 |
|---|---|---|
| 记忆保存 | ✅ 正常 | 实时保存到 SQLite |
| 基础搜索 | ✅ 正常 | SQL 查询 |
| 语义搜索 | ❌ 失败 | chroma-mcp 无法连接 |
建议改进
-
提供 Windows 环境的清晰配置文档
- 说明 chroma-mcp 的正确启动方式
- 区分 MCP stdio 模式和 HTTP 模式的使用场景
-
简化配置流程
- 提供一键启动脚本
- 或让 CC-Mem 自动管理 chroma-mcp 进程
-
改进错误提示
- 明确指出是配置问题还是连接问题
- 提供修复建议
-
考虑替代方案
- 支持其他向量数据库(如 SQLite 扩展)
- 或提供独立的 HTTP 服务器模式
临时解决方案
暂时禁用了语义搜索功能,使用基础 SQL 搜索:
{
"CLAUDE_MEM_CHROMA_MODE": "disabled"
}参考
- chroma-mcp 文档: https://docs.trychroma.com
- chroma-mcp PyPI: https://pypi.org/project/chroma-mcp-server/
补充说明:
- 硅基流动 embedding API 测试正常(能正常返回 1024 维向量)
- 问题在于 chroma-mcp 的集成和配置,不是 API 本身
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels