Codereviewbuddy

io.github.detailobsessed由 GitHub 账号 detailobsessed 发布v0.37.0更新于 Oct 27, 2026

MCP server that helps AI coding agents interact with AI code reviewers on GitHub PRs

已验证STDIO仅桌面效率与工作流开发者工具

概览

AI 生成的概览

让 AI 编程助手整理、阅读并回复 GitHub PR 上 AI 代码审查意见,并诊断 CI 失败的 MCP 服务器。

可以做什么
  • 汇总审查状态,筛选出 PR 栈中真正需要处理的评论线程
  • 读取完整线程历史,并回复行内线程、PR 级审查和机器人评论
  • 检查 CI 状态,一次调用定位失败的运行、作业、步骤和错误行
  • 查看 PR 栈活动时间线,扫描已合并 PR 的未解决评论,检查 PR 描述质量
  • 显示当前配置,并提供只读的单 PR 审查资源和审查流程提示词
适用场景
适合助手处理由 AI 审查者评审的 GitHub 拉取请求时使用:找出仍需处理的评论、逐条回复,并在合并前查明 CI 失败原因。对堆叠 PR 也很有用,可判断整个栈何时稳定。
运行要求
以 Python 包形式通过 uvx 在本机运行,需要 Python 3.14 及以上。需要安装并已通过 gh auth login 登录的 GitHub CLI,无需个人访问令牌或配置文件。可选 CRB_* 环境变量用于调整行为。仅支持桌面 MCP 客户端。
安装前请注意
reply_to_comment 会以已登录的 gh 账号发布公开的 GitHub 评论,发送前应确认措辞。服务器拥有该 gh 登录的全部权限,包括读取私有仓库。启用 CRB_SELF_IMPROVEMENT__ENABLED 等选项后,助手会在遇到功能缺口时建议创建 Linear 议题。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Codereviewbuddy,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

codereviewbuddy

[ci] [release] [documentation] [Python 3.14+] [FastMCP v3]

An MCP server that helps your AI coding agent manage PR review comments from any AI reviewer that uses GitHub's PR review infrastructure.

Features

Review comment management

  • Triage review comments — triage_review_comments filters to only actionable inline threads and includes direct GitHub URLs for each comment
  • Get thread details — get_thread fetches full conversation history for any thread by node ID
  • Reply to anything — inline review threads (PRRT_), PR-level reviews (PRR_), and bot issue comments (IC_) all routed to the correct GitHub API

CI & stack diagnosis

  • Diagnose CI failures — diagnose_ci collapses 3-5 sequential gh commands into one call: finds the failed run, identifies failed jobs/steps, and extracts actionable error lines
  • Stack activity feed — stack_activity shows a chronological timeline of pushes, reviews, labels, merges across all PRs in a stack with a settled flag for deciding when to proceed
  • Scan merged PRs — list_recent_unresolved catches late review comments on already-merged PRs

Agent experience

  • Recovery-guided errors — every tool handler classifies errors (auth, rate limit, not found, workspace, GraphQL, config) and returns actionable recovery hints so agents self-correct instead of retrying blindly
  • Next-action hints — tool responses include next_steps suggestions guiding agents to the right follow-up tool call
  • Empty result messages — when results are empty, responses explain why and suggest what to try next
  • GUI URLs — triage items include comment_url so agents can link users directly to the comment on GitHub
  • Tool classification tags — tools are tagged query, command, or discovery for MCP clients that support filtering

Server features (FastMCP v3)

  • Typed output schemas — all tools return Pydantic models with JSON Schema, giving MCP clients structured data instead of raw strings
  • Progress reporting — long-running operations report progress via FastMCP context (visible in MCP clients that support it)
  • Production middleware — ErrorHandling (transforms exceptions to clean MCP errors with tracebacks), Timing (logs execution duration for every tool call), and Logging (request/response payloads for debugging)
  • Zero config auth — uses gh CLI, no PAT tokens or .env files

CLI testing (free with FastMCP v3)

FastMCP v3 gives you terminal testing of the server with no extra code:

bash
# List all tools with their signaturesfastmcp list codereviewbuddy.server:mcp
# Call a tool directly from the terminalfastmcp call codereviewbuddy.server:mcp triage_review_comments pr_numbers='[42]'
# Inspect server metadatafastmcp inspect codereviewbuddy.server:mcp
# Run with MCP Inspector for interactive debuggingfastmcp dev codereviewbuddy.server:mcp

Prerequisites

Installation

This project uses uv. No install needed — run directly:

bash
uvx codereviewbuddy

Or install permanently:

bash
uv tool install codereviewbuddy

MCP Client Configuration

Quick setup (recommended)

One command configures your MCP client — no manual JSON editing:

bash
uvx codereviewbuddy install claude-desktopuvx codereviewbuddy install claude-codeuvx codereviewbuddy install cursoruvx codereviewbuddy install windsurfuvx codereviewbuddy install windsurf-next

With optional environment variables:

bash
uvx codereviewbuddy install windsurf \  --env CRB_SELF_IMPROVEMENT__ENABLED=true

For any other client, generate the JSON config:

bash
uvx codereviewbuddy install mcp-json          # print to stdoutuvx codereviewbuddy install mcp-json --copy   # copy to clipboard

Restart your MCP client after installing. See uvx codereviewbuddy install --help for all options.

Manual configuration

If you prefer manual setup, add the following to your MCP client's config JSON:

jsonc
{  "mcpServers": {    "codereviewbuddy": {      "command": "uvx",      "args": ["codereviewbuddy@latest"],      "env": {        // All CRB_* env vars are optional — zero-config works out of the box.        // See Configuration section below for the full list.      }    }  }}

All options enabled:

jsonc
{  "mcpServers": {    "codereviewbuddy": {      "command": "uvx",      "args": ["codereviewbuddy@latest"],      "env": {        // GitHub logins considered "ours" for triage filtering (comma-separated)        "CRB_OWNER_LOGINS": "alice,bob",        // Enable PR description quality checks        "CRB_PR_DESCRIPTIONS__ENABLED": "true",        // Agents suggest Linear issues when they hit server gaps        "CRB_SELF_IMPROVEMENT__ENABLED": "true"      }    }  }}

The server auto-detects your project from MCP roots (sent per-window by your client). This works correctly with multiple windows open on different projects — no env vars needed.

Why @latest? Without it, uvx caches the first resolved version and never upgrades automatically.

From source (development)

For local development, use uv run --directory to run the server from your checkout instead of the PyPI-published version. Changes to the source take effect immediately — just restart the MCP server in your client.

jsonc
{  "mcpServers": {    "codereviewbuddy": {      "command": "uv",      "args": ["run", "--directory", "/path/to/codereviewbuddy", "codereviewbuddy"],      "env": {        // Same CRB_* env vars as above, plus dev-specific settings:        "CRB_SELF_IMPROVEMENT__ENABLED": "true"      }    }  }}

Troubleshooting

If your MCP client reports No module named 'fastmcp.server.tasks.routing', the runtime has an incompatible FastMCP. Fixes:

  1. Prefer uvx codereviewbuddy@latest in MCP client config.
  2. For local source checkouts, launch with uv run --directory /path/to/codereviewbuddy codereviewbuddy.
  3. Reinstall to refresh cached deps: uv tool install --reinstall codereviewbuddy.

MCP Tools

ToolTagsDescription
summarize_review_statusquery, discoveryLightweight stack-wide overview — start here
triage_review_commentsqueryOnly actionable inline threads needing attention
get_threadqueryFull thread details by node ID — use after triage for conversation history
reply_to_commentcommandReply to inline threads (PRRT_), PR-level reviews (PRR_), or bot comments (IC_)
diagnose_ciqueryDiagnose CI failures — finds the failed run, jobs, steps, and error lines in one call
check_ci_statusqueryLightweight CI pass/fail/pending check for a PR — use before merging
stack_activityqueryChronological activity feed across a PR stack with a settled flag
list_recent_unresolvedqueryScan recently merged PRs for unresolved review threads
review_pr_descriptionsqueryAnalyze PR descriptions for quality issues (empty body, boilerplate, missing linked issues)
show_configdiscoveryShow active configuration with human-readable explanation

MCP Resources

ResourceDescription
pr://{owner}/{repo}/{pr_number}/reviewsRead-only review summary for a single PR

MCP Prompts

PromptDescription
review_stackFull review pass workflow — summarize, triage, fix, reply, verify
pr_review_checklistPre-merge quality checklist (review threads, PR hygiene, CI, tests)
ship_stackPre-merge sanity check workflow before merging a PR stack

Configuration

codereviewbuddy works zero-config with sensible defaults. All configuration is via CRB_* environment variables in the "env" block of your MCP client config — no config files needed. Nested settings use __ (double underscore) as a delimiter. See the dev setup above for a fully-commented example.

All settings

Env varTypeDefaultDescription
CRB_PR_DESCRIPTIONS__ENABLEDbooltrueWhether review_pr_descriptions tool is available
CRB_SELF_IMPROVEMENT__ENABLEDboolfalseAgents suggest Linear issues when they encounter server gaps
CRB_OWNER_LOGINScomma-separated[]GitHub usernames considered "ours" for triage filtering (e.g. alice,bob)

Typical workflow

1. summarize_review_status()                     # Stack-wide overview — start here2. triage_review_comments(pr_numbers=[42, 43])   # Only actionable threads needing attention3. # Fix bugs flagged by triage, then:4. reply_to_comment(42, thread_id, "Fixed in ...")  # Reply explaining the fix5. diagnose_ci(pr_number=42)                     # If CI fails, diagnose in one call

Each tool response includes next_steps hints guiding the agent to the right follow-up call. For stacked PRs, all query tools auto-discover the stack when pr_numbers is omitted.

Development

bash
git clone https://github.com/detailobsessed/codereviewbuddy.gitcd codereviewbuddyuv sync

Testing

bash
poe test          # Run tests (excludes slow)poe test-cov      # Run with coverage reportpoe test-all      # Run all tests including slow

Quality checks

bash
poe lint          # ruff checkpoe typecheck     # ty checkpoe check         # lint + typecheckpoe prek          # run all pre-commit hooks

Architecture

The server is built on FastMCP v3 with a clean separation:

  • server.py — FastMCP server with tool registration, middleware, instructions, and recovery-guided error handling
  • config.py — Configuration (CRB_* env vars via pydantic-settings)
  • tools/ — Tool implementations (comments.py, stack.py, ci.py, descriptions.py)
  • gh.py — Thin wrapper around the gh CLI for GraphQL and REST calls
  • models.py — Pydantic models for typed tool outputs with next_steps and message fields for agent guidance

All blocking gh CLI calls are wrapped with call_sync_fn_in_threadpool to avoid blocking the async event loop.

Template Updates

This project was generated with copier-uv-bleeding. To pull the latest template changes:

bash
copier update --trust .

来源:README.md,提交 4790956

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.37.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分