欢迎光临
我们一直在努力

oh-my-openagent 里 OpenCode 报 opencode mcp list 看不到插件注入的 MCP 服务器怎么排查?

oh-my-openagent 里 OpenCode 报 opencode mcp list 看不到插件注入的 MCP 服务器怎么排查?

【免费下载链接】oh-my-openagent OmO: Just type "mass ulw" keyword with your prompt. Now you are the master of graph engineering. 【免费下载链接】oh-my-openagent 项目地址: https://gitcode.com/gh_mirrors/oh/oh-my-openagent

在 OpenCode 里装了 oh-my-openagent 之后,很多用户的第一反应是跑 opencode mcp list 来确认插件是否把 websearch、context7、grep_app、lsp 这几个内置 MCP 服务器挂上了,结果列表是空的,或只显示 No MCP servers configured,看起来像插件没生效。这篇排查指南基于项目文档说明:这种「看不到」在大多数情况下是预期行为,并给出文档支持的验证方式,帮你区分「命令本身看不到」和「MCP 真的没注入」两种情况。

先弄清这个现象:opencode mcp list 天生看不到插件注入的 MCP

功能文档对这一点有明确解释:oh-my-openagent 通过 OpenCode 的插件 API 在运行时注入 MCP 服务器,而 opencode mcp list 只读取 OpenCode 的静态配置(即 opencode.json 里直接写的 mcp 配置项)。两者来源不同,所以插件注入的服务器不会出现在该命令的输出里。文档原文给出的示例输出如下(这是文档示例,不是你必须得到的固定日志):

# These are plugin-injected — they will NOT appear here
$ opencode mcp list
No MCP servers configured

也就是说,看到「No MCP servers configured」并不代表 MCP 服务器没注入,只是这个命令的可见性边界到不了运行时注入的服务器。文档明确定性:这是 expected behavior, not a bug。

用三层结构判断你要找的 MCP 属于哪一层

功能文档把 oh-my-openagent 的 MCP 来源分成三层,加上 OpenCode 原生配置一共四类。判断你要找的服务器在哪一层,决定了用什么命令验证:

层级来源在 opencode mcp list 中可见?
1 — Built-in 由 oh-my-openagent 在运行时注入(websearch、context7、grep_app、lsp)
2 — Claude Code .mcp.json 从 .mcp.json 文件加载,由 oh-my-openagent 在运行时合并
3 — Skill-embedded 在 SKILL.md frontmatter 中声明,按会话按需启动
— Native OpenCode 直接在 opencode.json 的 mcp 键下配置,不经过插件

结论:只要你找的是前三层中的任意一个,opencode mcp list 看不到就是正常的;只有直接写在 opencode.json 里的原生 MCP 才会出现在该命令的输出中。

实际验证:用 doctor 查看插件真正提供了哪些 MCP

opencode mcp list 不行时,文档给出的替代验证入口是 doctor 命令:

bunx oh-my-openagent doctor –verbose

CLI 文档对 doctor 的说明:

  • 它诊断你的环境和配置,OpenCode 侧的检查项按 System、Configuration、TUI Plugin、Deprecated Reasoning Keys、Tools、Models、Telemetry 和 Team Mode 分组;
  • 常用选项:–status(紧凑状态面板)、–verbose(详细诊断信息)、–json(JSON 输出,便于脚本处理)、–platform <opencode|codex>(选择诊断目标平台,本文场景用 opencode);
  • 当前 OpenCode 最低版本检查为 >= 1.4.0,如果你连插件加载都不正常,先确认这一项;
  • doctor 还会在 opencode.json 中仍然残留旧插件名 oh-my-opencode 时给出警告,看到这个警告说明插件注册用的是旧名,建议按提示换成 oh-my-openagent。

doctor 属于有明确退出码的子命令(成功 0,失败 1),可以直接用退出码判断本次诊断整体是否通过。

如果怀疑内置 MCP 被自己关掉了

确认插件本身加载正常后,若你确实发现某个内置 MCP 的工具在会话里不可用,再检查两处配置,二者都会在文档中明确影响可见/可用范围:

  • disabled_mcps(配置文档):内置 MCP 默认全部启用(websearch(Exa AI)、context7(库文档)、grep_app(GitHub 代码搜索)、lsp(本地 language-server 工具))。如果你(或某个 profile)写过类似下面的配置,对应服务器就是被主动禁用的,属正常效果而非故障:
  • {
    "disabled_mcps": ["websearch", "grep_app"]
    }

  • claude_code.mcp 开关(功能文档):若设为 false,第二层的 .mcp.json 文件不再被加载(注意:内置 MCP 不受此开关影响,仍保留):
  • {
    "claude_code": {
    "mcp": false
    }
    }

    OAuth 类 MCP 的附加检查

    如果你排查的是 skill 里声明的、需要 OAuth 的远程 MCP 服务器,它的认证状态另有专门入口,token 状态不体现在 opencode mcp list 里:

    bunx oh-my-openagent mcp oauth status [server-name]

    不带 server-name 可查看全部服务器;需要重新认证时用 mcp oauth login <server-name> –server-url <url>,移除已存 token 用 mcp oauth logout(见 CLI 文档)。token 文件存放在 ~/.config/opencode/mcp-oauth/<hash>.json(权限 0600)。

    边界与结论

    • opencode mcp list 看不到插件注入的 MCP(前三层全部)是设计行为,不要在这个命令上继续排错;
    • 判断插件实际提供了哪些 MCP 服务器,以 bunx oh-my-openagent doctor –verbose(或 –json)的诊断输出为准;
    • 如果 doctor 报 OpenCode 版本不满足 >= 1.4.0,或提示 opencode.json 中残留旧插件注册名 oh-my-opencode,按提示先处理这两项,再回到 MCP 层面复查;
    • 想要某个 MCP 出现在 opencode mcp list 里,唯一途径是把它作为原生配置直接写在 opencode.json 的 mcp 键下,而不是依赖插件注入。

    【免费下载链接】oh-my-openagent OmO: Just type "mass ulw" keyword with your prompt. Now you are the master of graph engineering. 【免费下载链接】oh-my-openagent 项目地址: https://gitcode.com/gh_mirrors/oh/oh-my-openagent

    创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

    赞(0)
    未经允许不得转载:171主机测评 » oh-my-openagent 里 OpenCode 报 opencode mcp list 看不到插件注入的 MCP 服务器怎么排查?
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址