Skip to content

[Bug] MCP 导入扫描不到 Claude Code 用户级 MCP 服务器:扫描的是 ~/.claude/settings.json,实际配置存放在 ~/.claude.json #898

Description

@donyxu

问题类别 · Category

工具调用 / MCP · Tool use / MCP

涉及的 Agent 框架 · Agent framework

ZCode Agent(自研)——「从外部 Agent 导入 MCP」功能,导入源为 Claude Code

严重程度 · Severity

影响体验 · Major(导入功能对 Claude Code 用户形同虚设,但可手动添加绕过)

复现频率 · Reproducibility

必现 · Always

问题描述 · Description

MCP「从外部 Agent 导入」在扫描 Claude Code 时读取的是 ~/.claude/settings.json,但 Claude Code 的用户级 MCP 服务器实际存放在 ~/.claude.json(执行 claude mcp add -s user 或在 IDE 中添加的都写入该文件顶层 mcpServers 字段;~/.claude/settings.json 只存放权限、hooks 等设置,不含 MCP 服务器)。

结果是:已在 Claude Code 配置了 MCP 服务器的用户,在 ZCode 中导入时扫描结果恒为 0,提示「暂无可导入 MCP 服务器。可检查外部 Agent 的 MCP 配置文件后重新扫描。」,与实际状态矛盾。

复现步骤 · Steps to reproduce

  1. 在 Claude Code 中添加任意用户级 MCP 服务器,例如 claude mcp add -s user context7 --transport http https://mcp.context7.com/mcp(写入 ~/.claude.json 顶层 mcpServers)
  2. 打开 ZCode → 设置 → MCP → 从外部 Agent 导入,执行扫描
  3. 扫描结果为 0,提示「暂无可导入 MCP 服务器」

期望表现 · Expected behavior

能扫描到 ~/.claude.json 顶层 mcpServers 中已配置的服务器(如 context7),并出现在可导入勾选列表中。

实际表现 · Actual behavior

提示「暂无可导入 MCP 服务器。可检查外部 Agent 的 MCP 配置文件后重新扫描。」,列表为空。

实测本机 4 个扫描来源(按官方文档 https://zcode.z.ai/cn/docs/mcp-services 列出的路径)全部为空:

扫描路径 实际状态
~/.claude/settings.json 存在,但无 mcpServers 字段(Claude Code 的 MCP 服务器不存这个文件)
~/.codex/config.toml 存在,无 [mcp_servers] 段
~/.config/opencode/opencode.json 存在,未配置 MCP
~/.agents/mcp.json 不存在

而 ~/.claude.json 中实际存在 2 个已配置的 MCP 服务器:

{
  "mcpServers": {
    "context7": { "type": "http", "url": "https://mcp.context7.com/mcp", "headers": { "CONTEXT7_API_KEY": "ctx7sk-****" } },
    "idea": { "type": "http", "url": "http://127.0.0.1:64342/stream" }
  }
}

ZCode 版本 · ZCode version

3.14.4 (3.14.4.7912)

设备 / 系统 / 浏览器 · Device / OS / Browser

macOS 26.6.2 (Build 25G83) / Apple Silicon (arm64) / ZCode 桌面版

建议 · Suggested fix

导入扫描 Claude Code 时,除 ~/.claude/settings.json 外,增加读取 ~/.claude.json 顶层 mcpServers(用户级 MCP 服务器的真实存放位置)。

Activity

  1. github-actions commented on Oct 1, 2026

    @github-actions

    👋 感谢你的反馈,我们已经收到。

    • 维护者看到后会尽快回复你。
    • 状态保持为 status: 待评估,你可以随时补充信息。
    • 信息不全时我们会打上 needs: 更多信息 标签并 @ 你。

    👋 Thanks — we've received your issue.

    • A maintainer will get back to you as soon as we can.
    • Status stays at status: 待评估 (Triage); feel free to add context.
    • If we need more details, we'll add needs: 更多信息 and ping you.
  2. donyxu commented on Oct 1, 2026

    @donyxu
    Author

    已在开源仓库源码级验证该问题真实存在(main @ 29628c9,2026-09-23):

    证据 1 — 扫描源定义中缺少 ~/.claude.json

    packages/services/src/settings-sync/settingsSyncService.ts L339-L345,SUPPORTED_MCP_AGENT_SOURCES 中 claudeCode 的扫描文件列表:

    {
      agent: "claudeCode",
      projectFiles: [[".claude", "settings.json"], [".mcp.json"]],
      globalFiles: [[".claude", "settings.json"]],   // ← 用户级只扫 settings.json
      format: "mcpServersJson",
    },

    全局(用户级)只扫描 ~/.claude/settings.json,项目级只扫描 <repo>/.claude/settings.json 与 <repo>/.mcp.json。而 Claude Code 用户级 MCP 服务器的真实存放位置 ~/.claude.json(顶层 mcpServers,claude mcp add -s user 的写入目标)不在列表中。

    证据 2 — 该表确实是导入功能的扫描入口

    同文件 L697、L710 通过 SUPPORTED_MCP_AGENT_SOURCES.flatMap(...) 构建 MCP 导入的用户级/项目级扫描根路径,L1763 遍历该表。

    证据 3 — 无其他读取路径

    全仓库检索 claude.json 无任何引用(仅存在 .claude/projects、.claude/settings.json 等路径),排除存在其他导入代码路径的可能。

    相关源码:https://github.com/zai-org/ZCode/blob/29628c9/packages/services/src/settings-sync/settingsSyncService.ts#L339-L345

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions