OpenCode 通过本机 stdio MCP 连接 mdreviewer;它负责出稿 / 改稿 / 提交候选, mdreviewer 负责校验、留痕和版本。接受和放行永远由人完成,OpenCode 不能直接写目标文件。
先读下面的帮助再装:第 1 节是一次性准备(约 3 分钟),装完要让智能体能连上,才算真正可用。查看与下载会计入本站统计(时间、IP 与地区),仅用于了解使用情况与排查问题。
mdreviewer.exe、mdreviewer-mcp.exe、
amckit.dll 必须在同一目录;OpenCode 拉起的是其中的
mdreviewer-mcp.exe。安装包里的 skill\opencode\ 也留着,下一步要用。OpenCode。<项目目录>\opencode.json(推荐,只在该项目生效);
全局写入 ~/.config/opencode/opencode.json。把 mdreviewer 这一项
合并到已有的 mcp.servers 对象中,不要整份覆盖。
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"mdreviewer": {
"type": "local",
"command": ["D:/Apps/mdreviewer/mdreviewer-mcp.exe"],
"environment": {
"MDREVIEWER_TOKEN_FILE": "C:/Users/you/.mdreviewer/agents/agt_xxx.token"
}
}
}
}
}
mcp.servers 下,V2 不再直接放在 mcp 下;
type 必须是 local;command 是数组,不是字符串;
环境变量键名是 environment,不是 env;
要临时停用写 disabled: true,不要再写 enabled。
弹层里生成的配置已经按 V2 格式写好,直接复制最稳。opencode.json 后 OpenCode 会自动重载 MCP
配置;如果工具列表还没更新,执行 /reload,或打开 /mcps 确认
mdreviewer 是 connected。然后在 OpenCode 里说:
请调用 md_ping 确认 mdreviewer 连接正常,再调用 md_me 告诉我我是谁。
返回 ok 且有档案名,就接上了。也可以先在「MCP 配置」弹层点
测试连接,确认 15 个工具可用。
mdreviewer_md_ping;在 Code Mode 下是 tools.mdreviewer.md_ping。
按工具列表里实际显示的名字调用即可,语义与本文的 md_* 相同。agent.json 里的新端口。MCP 工具是能力,skill 是“什么时候该做什么”的流程约束。建议一起装上:
skill\opencode\SKILL.md 和
skill\opencode\proposal.schema.json 到:
<项目目录>\.opencode\skills\mdreviewer-review\
也可以放到全局:~/.config/opencode/skills/mdreviewer-review/。
目录名就是技能 ID,文件名必须是 SKILL.md。
Claude 兼容路径 <项目目录>\.claude\skills\mdreviewer-review\ 也能识别。mdreviewer.exe agent-skill --format=opencode --out %TEMP%\mdreviewer-skill
然后把 %TEMP%\mdreviewer-skill\opencode\ 下的两个文件复制到上面的目录。/reload 再检查技能列表。适合“我已经看出一批问题,让 OpenCode 去改”的场景。
请按 mdreviewer 的批注工单改这篇文档:
1) md_batches 找到进行中的批次
2) md_claim 领取
3) md_get_ticket / md_get_source 读工单与正文
4) md_propose 提交逐块提案(quote 逐字复制)
5) md_wait 等我裁决,不要直接改文件
适合“从零起稿、大改一版、没有现成批注”的场景。新文档要先由人建一个空文件:
OpenCode 不能创建文件,也不能直接写盘。在 mdreviewer 里「新建草稿」保存成目标 .md,
再在「交给智能体」里勾选 OpenCode 并授权。
你先写一版 / 先改这篇文档,交 mdreviewer 给我评审:
- 用 md_submit_revision:path=<文档绝对路径>,summary=<这轮改了什么>
- 小改用 changes(逐块补丁);大改或新稿用 content(整篇新正文)
- 提交后用 md_wait 等我的裁决,不要直接写文件
revision_id 并进入等待;候选只落在 mdreviewer 的候选区,目标文件没变。X.Y(如 0.1);点顶栏
放行 才生成 X+1.0 正式版。| 你要做的事 | 位置 | 结果 |
|---|---|---|
| 看所有文档里等着你处理的修订 | 顶栏「待我评审」 | 点一行直接打开该文档并进入裁决 |
| 接受某些块 | 裁决面板勾选 → 「接受选中的块」 | 生成 X.Y,状态 修订 |
| 否决某些块 | 勾选 → 「否决(填原因)」 | 块标 已否决,原因回传给 OpenCode,不产生版本 |
| 把本轮修订定版 | 顶栏「放行」→ 确认 | 生成 X+1.0,状态 定版,本轮关闭 |
| 看历史 | 「版本」Tab | 按 X.Y 展示修订 / 定版 / 已被取代 / 已否决 |
| 看 OpenCode 的回传 / 文件通道结果 | 顶栏「消息」 | 保留最近 200 条动态;点条目打开对应文档 |
0.1,第一次放行是 1.0;
定版后每接受一次修订 Y+1(1.1、1.2…),再放行就是 2.0。
被新修订取代的候选标“已被取代”,被否决的块留档不删。OpenCode 不应该猜。它会把某条批注标成 clarify 并附上具体问题:
md_opinions(或再次领取工单)读回你的回答,继续改稿。| 现象 | 原因 / 处理 |
|---|---|
OpenCode 里没有 md_ping / md_me | 先确认
opencode.json 的 JSON 合法、mdreviewer 确实在
mcp.servers 下;保存后等 OpenCode 自动重载,仍没有就执行 /reload,
并在 /mcps 里确认 mdreviewer 为 connected。
也可以先在 mdreviewer 的「MCP 配置 → 测试连接」确认 15 个工具可用。 |
| 配置看起来对,但工具列表为空 | 检查四件事:服务器是否挂在
mcp.servers 下;command 是不是数组;
type 是不是 local;环境变量键名是不是 environment。
写成 V1 的 mcp.mdreviewer、command 字符串或 env
都会导致配置不生效;停用应写 disabled: true,不要写 enabled。 |
401 / 凭据无效 | 配置里的
MDREVIEWER_TOKEN_FILE 路径不对,或档案被轮换了凭据。回设置页重新
「复制配置」并更新 opencode.json。 |
403 doc_not_granted | 这篇文档没授权给该档案。打开文档 → 「交给智能体」里勾选 OpenCode 并授权。 |
403 智能体凭据不能调用人工评审接口 | 正常:接受/放行只允许人。
OpenCode 只能调 /api/agent/v1/*。 |
| 工具能连上,但 OpenCode 不按流程走 | skill 没装或没重新加载。确认
.opencode\skills\mdreviewer-review\SKILL.md 存在且文件名正确,
再重新打开 OpenCode 会话。 |
409 原文已变化 / quote_mismatch | OpenCode 的基准过期或
quote 不是逐字复制。让它重新 md_get_source 再提交。 |
| 顶栏没有「放行」 | 当前没有「修订中」的候选:先接受一份修订,或它已经被放行/取代。 |
| 收件箱里没有 OpenCode 的修订 | 检查文档是否已授权、mdreviewer 是否在运行;
文件通道看 outbox 里是否留下 *.error.json。 |
| OpenCode 在另一台机器 / 云端 | MCP 是本机 stdio:它拉起的
mdreviewer-mcp.exe 必须和 mdreviewer 在同一台机器上。跨机器请改用文件通道
或 REST(需要网络可达与凭据)。 |
读已授权文档与工单、提交提案 / 修订、回传批注处理状态、追问澄清。
它永远不写目标文件,也不产生正式版。
新增/编辑批注、逐块接受或否决、回答澄清、关闭批次、放行 X+1.0。
带智能体凭据调这些接口会被服务端 403。
| 项目 | OpenCode | Hermes | WorkBuddy |
|---|---|---|---|
| MCP 配置 | opencode.json 的 mcp.servers(JSON;command 数组 + environment) |
config.yaml 的 mcp_servers(YAML) |
%USERPROFILE%\.workbuddy\mcp.json 的 mcpServers(JSON) |
| 配置写入 | 复制粘贴,合并到已有 mcp.servers |
可在应用里一键写入(自动备份) | 复制粘贴,合并到已有 mcpServers |
| 配置文件位置 | <项目>/opencode.json 或 ~/.config/opencode/opencode.json |
%LOCALAPPDATA%\hermes\config.yaml |
%USERPROFILE%\.workbuddy\mcp.json |
| skill 目录 | <项目>/.opencode/skills/mdreviewer-review/SKILL.md |
%LOCALAPPDATA%\hermes\skills\mdreviewer-review\SKILL.md |
%USERPROFILE%\.workbuddy\skills\mdreviewer-review\SKILL.md |
| 工具与协议 | 同一套 md_* 工具、同一份 REST 契约和权限边界 | ||
需要其它宿主的版本?Hermes 示例 · WorkBuddy 接入。
docs/agent-protocol.md(REST / MCP / 文件通道契约)·
README.md(接口与变更记录)· 安装目录 skill\opencode\(本页提到的 skill 文件)。