mcpField
R
review-assist-mcp

review-assist-mcp

本地服务
reviewassist.dev版本控制01 天前更新

关于 review-assist-mcp

review-assist-mcp 将编码 Agent 会话整理为可审阅的意图文档,并在写入前依据差异进行验证,适用于需要说明代码变更动机的团队。它不调用模型,而是提供会话与差异事实并执行分角色校验。

主要功能

  1. 01读取会话记录与代码差异
  2. 02按页读取完整记录和差异
  3. 03区分作者与审阅者工具权限
  4. 04校验覆盖率、过期状态与引用
  5. 05获得同意后写入 .intent/ 文件

适用场景

  1. 01为拉取请求说明变更意图
  2. 02检查每个实质差异块是否有解释
  3. 03在提交文档前审阅会话依据

MCP 相关

作为 MCP 服务,它向编码 Agent 提供读取会话、检查差异、记录问答及提交意图文档的工具。作者与审阅者角色可用工具由服务强制区分。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"uditk2-review-assist": {
"command": "npx",
"args": [
"-y",
"review-assist-mcp"
]
}
}
}
启动命令npx -y review-assist-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmreview-assist-mcp1.1.0

工具

23

收录的工具列表 · 更新于 6 天前

此工具无需参数。

详细介绍

review-assist-mcp

将 AI 编码 Agent 的会话转化为可供评审的 意图文档——它实际要解决的问题、做出的假设、拒绝的方案,以及对每项更改进行锚定式逐步说明——并在写入前根据差异进行验证。

六个编号步骤。编码 Agent 启动两个角色锁定的子 Agent。作者持有会话记录,并提供差异无法展现的信息,但没有提交工具。意图评审者从未看到会话记录;它在不了解背景的情况下阅读差异,其问题来自其基准问题集、差异,以及通过 get_reviewer_instructions 提供的仓库自有 .reviewer/ 规则。每个问题和答案都经过服务端,该服务会为不同角色注册不同的工具接口;get_role_definitions、import_session 和 manage_consent 不属于任何一方,由编码 Agent 自行调用。record_interview_round 会将评审者的问题连同各自的 q_id 一并交回;作者按 ID 作答,评审者逐字阅读答案。submit_document 会在写入 .intent/<branch>.json 前,检查仓库同意、访谈证明和五项本地检查。评审者还会向会话反馈文档无法确定的内容。

此服务不会调用大模型。生成内容是调用方 Agent 的工作;服务端提供真实依据(差异和会话记录)、强制执行角色分离,并把关最终结果。

0.3.0 版的重大变更——compute_diff 不再返回差异文本,而是返回运行句柄、带编号的代码块索引和 SHA;现在需要通过 read_diff 分页获取变更内容。以前这两者会一并返回,而在 205,826 字节的变更中,响应长度达到 234,337 个字符——超过客户端的工具结果上限,因此整个响应被溢写到文件中,连同 run_id 的十二个字符也一并溢写,导致按设计无法访问文件的评审者既无法记录访谈轮次,也无法提交任何内容。现在响应大小不再随变更规模增长。升级服务端并重新安装角色定义;意图文档本身没有任何变化。

Review Assist 需要安装两部分

此软件包只是其中一部分。单独安装后,它只能在本地编写和验证 Intent Documents,仅此而已。

1. 此 MCP 服务——让你的 Agent 能够编写文档。

claude mcp add -s user review-assist -- npx -y review-assist-mcp   # Claude Code
codex mcp add review-assist -- npx -y review-assist-mcp            # Codex

Claude 桌面应用: 下载 .mcpb 并打开。无需终端。

使用 VS Code 扩展或通过 GUI 启动的编辑器? 无需使用 npx 即可注册。在 macOS 上,GUI 应用只能获取 /usr/bin:/bin:/usr/sbin:/sbin,因此 Homebrew/nvm 的 npx 不在路径中;在 Windows 上,npx 是一个 .cmd 包装程序, 没有 TTY 时会静默失败。无论哪种情况,服务都会显示为未连接,且没有错误提示。 直接调用 node 可以避开这两个问题:

npm install -g review-assist-mcp
claude mcp add -s user review-assist -- "$(which node)" "$(npm root -g)/review-assist-mcp/dist/index.js"

两个 $(...) 都会在你的机器上展开,因此此方法适用于 Homebrew、nvm、fnm、 Volta 和 Linux。如果你使用 nvm,之后切换 Node 版本时,请重新运行此命令。

若要避免全局安装,请从终端运行 code . 启动 VS Code,使其继承 shell 的 PATH;这样就能使用 npx。这是一种使用习惯,而不是设置项——从 Dock 打开编辑器, 连接就会悄无声息地中断。

这是客户端问题,并非此服务独有——所有基于 npx 的 MCP 服务都会受到同样影响 (claude-code#25044)。

2. GitHub App——让文档 在拉取请求上成为引导式评审。

只需点击一次,即可应用到你选择的仓库。它会添加覆盖率检查、摘要评论和“Open guided review”链接。无需添加工作流文件,也不消耗运行器分钟数——它是 GitHub App,不是 Action。

如果没有它,文档仍会提交到 .intent/<branch>.json;只是没有人能在 PR 上看到它。

两种角色的划分

文档由两个无法访问对方工具的 Agent 编写:

  • Author 持有会话记录,无法提交。
  • Intent Reviewer 从未见过会话记录,是唯一可以提交的角色。

Reviewer 对意图的所有了解,都必须通过询问获得。这是强制执行的,而非建议:REVIEW_ASSIST_ROLE 会让服务拒绝注册另一角色的工具,因此 Author 实例没有 submit_document,Reviewer 实例没有 read_transcript。调用 get_role_definitions,即可为你的客户端安装这两个子 Agent——与 manage_consent 和 import_session 一样,该工具不属于任何一种角色;它属于协调 Agent,而非 Author 或 Reviewer。

工具

作者角色:

工具用途
get_generation_guide获取架构和编写协议。首先调用。
list_transcripts查找本次会话的记录,并按涉及已更改文件的程度排序。
get_spine获取会话的完整对话,分多页返回。跟随 next_cursor 直到末尾;不会为了适应页面而省略内容。
read_transcript获取完整记录中指定 spine 索引附近的窗口,查看支撑某项说法的工具输出。
compute_diff开始一次运行:返回句柄、带编号的差异块索引和解析后的 SHA。不包含差异文本。
read_diff分页读取差异本身。跟随 next_cursor,或请求 hunks/paths。
get_questions直接从运行记录中读取评审者的问题及其 q_id。
answer_questions作者对各个 q_id 的回答。这是对访谈内容的唯一写入操作,也是服务器可以核实的部分。
set_consent当会话工具请求同意时,记录开发者的回答,因为作者是读取会话的角色。

评审者角色:

工具用途
get_generation_guide获取架构和编写协议。
compute_diff开始一次运行:返回句柄、带编号的差异块索引和解析后的 SHA。不包含差异文本。
read_diff分页读取变更内容,这是评审者首次看到变更时的呈现方式。
record_interview_round记录评审者的问题,再转交给作者。每个问题都会返回一个 q_id,作者按该 ID 回答,因此服务器能听到双方的陈述,而不是只听评审者代述双方。
get_answers直接从运行记录中读取作者本人的回答。
submit_document最终关卡。进行验证,然后写入 .intent/<branch>.json。
set_consent按仓库选择加入或退出。

同意与验证

每个仓库在读取任何相关内容之前都会被询问一次:所有读取编码会话的工具都会改为返回 consent_required,并提示用户选择 always、once 或 never。该选择同时适用于读取仓库会话和写入文档;在用户选择之前,不会读取或写入任何内容。submit_document 会在写入前再次检查同意状态。

用户允许后,系统会在本地运行五项确定性检查——架构、覆盖范围(解释每个实质性差异块)、过时检查、交叉引用和机密信息脱敏——以及访谈证明。只有通过后才会写入文档,响应中还会附带一份可直接使用的 PR 描述。

说明

除写入 .intent/ 外,不会对 git 进行写入操作。记录不会离开本机;只有提炼后的文档会被传出。如果服务器连接多个仓库,请设置 REVIEW_ASSIST_REPO,或在每次调用时传入 repo。

评审者等待回答时,get_answers 会在服务器上保持每次调用最多 50s,并在收到回答后立即返回,因此评审者大约每分钟轮询一次。REVIEW_ASSIST_ANSWER_WAIT_MS 可更改等待时间(设为 0 可关闭等待)。该值在服务器启动时读取,因此更改后请重启客户端;如果客户端会在 50s 前中断工具调用,请调低此值,否则所有等待中的调用都会超时,而不是返回回答。

Apache-2.0 · github.com/uditk2/review-assist

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。