io.github.detailobsessed/codereviewbuddy
编码与调试by detailobsessed
帮助 AI coding agents 在 GitHub PR 中与 AI code reviewers 协作交互的 MCP server。
什么是 io.github.detailobsessed/codereviewbuddy?
帮助 AI coding agents 在 GitHub PR 中与 AI code reviewers 协作交互的 MCP server。
README
codereviewbuddy
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_commentsfilters to only actionable inline threads and includes direct GitHub URLs for each comment - Get thread details —
get_threadfetches 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_cicollapses 3-5 sequentialghcommands into one call: finds the failed run, identifies failed jobs/steps, and extracts actionable error lines - Stack activity feed —
stack_activityshows a chronological timeline of pushes, reviews, labels, merges across all PRs in a stack with asettledflag for deciding when to proceed - Scan merged PRs —
list_recent_unresolvedcatches 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_stepssuggestions 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_urlso agents can link users directly to the comment on GitHub - Tool classification tags — tools are tagged
query,command, ordiscoveryfor 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
ghCLI, no PAT tokens or.envfiles
CLI testing (free with FastMCP v3)
FastMCP v3 gives you terminal testing of the server with no extra code:
# List all tools with their signatures
fastmcp list codereviewbuddy.server:mcp
# Call a tool directly from the terminal
fastmcp call codereviewbuddy.server:mcp triage_review_comments pr_numbers='[42]'
# Inspect server metadata
fastmcp inspect codereviewbuddy.server:mcp
# Run with MCP Inspector for interactive debugging
fastmcp dev codereviewbuddy.server:mcp
Prerequisites
- GitHub CLI (
gh) installed and authenticated (gh auth login) - Python 3.14+
Installation
This project uses uv. No install needed — run directly:
uvx codereviewbuddy
Or install permanently:
uv tool install codereviewbuddy
MCP Client Configuration
Quick setup (recommended)
One command configures your MCP client — no manual JSON editing:
uvx codereviewbuddy install claude-desktop
uvx codereviewbuddy install claude-code
uvx codereviewbuddy install cursor
uvx codereviewbuddy install windsurf
uvx codereviewbuddy install windsurf-next
With optional environment variables:
uvx codereviewbuddy install windsurf \
--env CRB_SELF_IMPROVEMENT__ENABLED=true
For any other client, generate the JSON config:
uvx codereviewbuddy install mcp-json # print to stdout
uvx 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:
{
"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:
{
"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,uvxcaches 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.
{
"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:
- Prefer
uvx codereviewbuddy@latestin MCP client config. - For local source checkouts, launch with
uv run --directory /path/to/codereviewbuddy codereviewbuddy. - Reinstall to refresh cached deps:
uv tool install --reinstall codereviewbuddy.
MCP Tools
| Tool | Tags | Description |
|---|---|---|
summarize_review_status | query, discovery | Lightweight stack-wide overview — start here |
triage_review_comments | query | Only actionable inline threads needing attention |
get_thread | query | Full thread details by node ID — use after triage for conversation history |
reply_to_comment | command | Reply to inline threads (PRRT_), PR-level reviews (PRR_), or bot comments (IC_) |
diagnose_ci | query | Diagnose CI failures — finds the failed run, jobs, steps, and error lines in one call |
check_ci_status | query | Lightweight CI pass/fail/pending check for a PR — use before merging |
stack_activity | query | Chronological activity feed across a PR stack with a settled flag |
list_recent_unresolved | query | Scan recently merged PRs for unresolved review threads |
review_pr_descriptions | query | Analyze PR descriptions for quality issues (empty body, boilerplate, missing linked issues) |
show_config | discovery | Show active configuration with human-readable explanation |
MCP Resources
| Resource | Description |
|---|---|
pr://{owner}/{repo}/{pr_number}/reviews | Read-only review summary for a single PR |
MCP Prompts
| Prompt | Description |
|---|---|
review_stack | Full review pass workflow — summarize, triage, fix, reply, verify |
pr_review_checklist | Pre-merge quality checklist (review threads, PR hygiene, CI, tests) |
ship_stack | Pre-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 var | Type | Default | Description |
|---|---|---|---|
CRB_PR_DESCRIPTIONS__ENABLED | bool | true | Whether review_pr_descriptions tool is available |
CRB_SELF_IMPROVEMENT__ENABLED | bool | false | Agents suggest Linear issues when they encounter server gaps |
CRB_OWNER_LOGINS | comma-separated | [] | GitHub usernames considered "ours" for triage filtering (e.g. alice,bob) |
Typical workflow
1. summarize_review_status() # Stack-wide overview — start here
2. triage_review_comments(pr_numbers=[42, 43]) # Only actionable threads needing attention
3. # Fix bugs flagged by triage, then:
4. reply_to_comment(42, thread_id, "Fixed in ...") # Reply explaining the fix
5. 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
git clone https://github.com/detailobsessed/codereviewbuddy.git
cd codereviewbuddy
uv sync
Testing
poe test # Run tests (excludes slow)
poe test-cov # Run with coverage report
poe test-all # Run all tests including slow
Quality checks
poe lint # ruff check
poe typecheck # ty check
poe check # lint + typecheck
poe 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 handlingconfig.py— Configuration (CRB_*env vars via pydantic-settings)tools/— Tool implementations (comments.py,stack.py,ci.py,descriptions.py)gh.py— Thin wrapper around theghCLI for GraphQL and REST callsmodels.py— Pydantic models for typed tool outputs withnext_stepsandmessagefields 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:
copier update --trust .
常见问题
io.github.detailobsessed/codereviewbuddy 是什么?
帮助 AI coding agents 在 GitHub PR 中与 AI code reviewers 协作交互的 MCP server。
相关 Skills
网页构建器
by anthropics
面向复杂 claude.ai HTML artifact 开发,快速初始化 React + Tailwind CSS + shadcn/ui 项目并打包为单文件 HTML,适合需要状态管理、路由或多组件交互的页面。
✎ 在 claude.ai 里做复杂网页 Artifact 很省心,多组件、状态和路由都能顺手搭起来,React、Tailwind 与 shadcn/ui 组合效率高、成品也更精致。
前端设计
by anthropics
面向组件、页面、海报和 Web 应用开发,按鲜明视觉方向生成可直接落地的前端代码与高质感 UI,适合做 landing page、Dashboard 或美化现有界面,避开千篇一律的 AI 审美。
✎ 想把页面做得既能上线又有设计感,就用前端设计:组件到整站都能产出,难得的是能避开千篇一律的 AI 味。
网页应用测试
by anthropics
用 Playwright 为本地 Web 应用编写自动化测试,支持启动开发服务器、校验前端交互、排查 UI 异常、抓取截图与浏览器日志,适合调试动态页面和回归验证。
✎ 借助 Playwright 一站式验证本地 Web 应用前端功能,调 UI 时还能同步查看日志和截图,定位问题更快。
相关 MCP Server
GitHub
编辑精选by GitHub
GitHub 是 MCP 官方参考服务器,让 Claude 直接读写你的代码仓库和 Issues。
✎ 这个参考服务器解决了开发者想让 AI 安全访问 GitHub 数据的问题,适合需要自动化代码审查或 Issue 管理的团队。但注意它只是参考实现,生产环境得自己加固安全。
Context7 文档查询
编辑精选by Context7
Context7 是实时拉取最新文档和代码示例的智能助手,让你告别过时资料。
✎ 它能解决开发者查找文档时信息滞后的问题,特别适合快速上手新库或跟进更新。不过,依赖外部源可能导致偶尔的数据延迟,建议结合官方文档使用。
by tldraw
tldraw 是让 AI 助手直接在无限画布上绘图和协作的 MCP 服务器。
✎ 这解决了 AI 只能输出文本、无法视觉化协作的痛点——想象让 Claude 帮你画流程图或白板讨论。最适合需要快速原型设计或头脑风暴的开发者。不过,目前它只是个基础连接器,你得自己搭建画布应用才能发挥全部潜力。