Skip to content

Windows 环境下 chroma-mcp 集成配置困难,语义搜索无法启用 #1209

@XCZ-XieJunHao

Description

@XCZ-XieJunHao

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 无法连接

建议改进

  1. 提供 Windows 环境的清晰配置文档

    • 说明 chroma-mcp 的正确启动方式
    • 区分 MCP stdio 模式和 HTTP 模式的使用场景
  2. 简化配置流程

    • 提供一键启动脚本
    • 或让 CC-Mem 自动管理 chroma-mcp 进程
  3. 改进错误提示

    • 明确指出是配置问题还是连接问题
    • 提供修复建议
  4. 考虑替代方案

    • 支持其他向量数据库(如 SQLite 扩展)
    • 或提供独立的 HTTP 服务器模式

临时解决方案

暂时禁用了语义搜索功能,使用基础 SQL 搜索:

{
  "CLAUDE_MEM_CHROMA_MODE": "disabled"
}

参考


补充说明:

  • 硅基流动 embedding API 测试正常(能正常返回 1024 维向量)
  • 问题在于 chroma-mcp 的集成和配置,不是 API 本身

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions