内容
# mcp-agent-review
MCP(模型上下文协议)服务器,提供由OpenAI兼容模型支持的**智能代码审查**。设计用于与[Claude Code](https://docs.anthropic.com/en/docs/claude-code)配合使用。
## 功能特点
- **深度分析** — 关注逻辑错误、架构问题、文档代码一致性和安全风险(不关注样式/代码规范)
- **智能审查** — 模型可以读取文件、搜索代码、检查git blame、探索项目结构和搜索git历史记录以验证发现的问题
- **误报抑制** — 强制工具验证、置信度评级和自我批评阶段
- **意图感知审查** — 传递`task_description`以捕获意图和实现之间的不匹配
- **定向关注** — 传递`review_focus`以对特定维度(安全、性能、并发等)进行更深入的分析
- **任何OpenAI兼容API** — 与GitHub Models(免费)、OpenAI、Azure OpenAI或任何兼容提供商一起工作
- **git仓库零配置** — 自动检测差异,读取CLAUDE.md获取项目上下文
- **敏感文件保护** — 阻止访问`.env`、`*.pem`、`*.key`、凭证和其他敏感文件
## 安装
```bash
# 从PyPI
pip install mcp-agent-review
# 从源码
git clone https://github.com/lzx1413/mcp-agent-review
cd mcp_agent_review
pip install .
```
## Claude Code集成
在Claude Code设置中添加(`~/.claude.json`或`.claude/settings.json`):
### GitHub Models(免费)
```json
{
"mcpServers": {
"code-review": {
"command": "mcp-agent-review",
"env": {
"GITHUB_TOKEN": "你的GitHub令牌"
}
}
}
}
```
### OpenAI(或其他提供商)
```json
{
"mcpServers": {
"code-review": {
"command": "mcp-agent-review",
"env": {
"OPENAI_API_KEY": "你的API密钥",
"OPENAI_BASE_URL": "https://api.openai.com/v1",
"REVIEW_MODEL": "gpt-4o"
}
}
}
}
```
## 环境变量
| 变量 | 是否必需 | 默认值 | 描述 |
| --- | --- | --- | --- |
| `GITHUB_TOKEN` | 是* | — | GitHub个人访问令牌(通过GitHub Models免费获得) |
| `OPENAI_API_KEY` | 是* | — | OpenAI或兼容提供商的API密钥(优先于`GITHUB_TOKEN`) |
| `OPENAI_BASE_URL` | 否 | `https://models.github.ai/inference` | API的基准URL |
| `REVIEW_MODEL` | 否 | `gpt-4o` | 用于审查的模型 |
| `MAX_TOOL_ROUNDS` | 否 | `8` | 最大智能工具使用轮次 |
| `MAX_FILE_LINES` | 否 | `1000` | 每文件最大行数 |
*`GITHUB_TOKEN`或`OPENAI_API_KEY`之一是必需的。
## 工具参数
| 参数 | 是否必需 | 描述 |
| --- | --- | --- |
| `diff` | 否 | 自定义差异字符串。如果省略,则自动从`git diff`读取 |
| `base` | 否 | PR审查的基本分支/提交(例如`main`) |
| `task_description` | 否 | 更改的预期实现(例如`修复连接池中的竞争条件`)。启用意图与实现不匹配检测 |
| `review_focus` | 否 | 优先考虑的特定维度(例如`security`、`performance`、`concurrency safety`)。在此领域进行更深入的分析 |
## 用法
在Claude Code中配置完成后,`review_code`工具可用:
- **自动检测更改**:只需调用`review_code`,无需参数 — 它会读取`git diff`
- **PR审查**:传递`base='main'`以审查自`main`分支以来的所有更改
- **自定义差异**:通过`diff`参数直接传递差异字符串
- **意图感知审查**:传递`task_description`以描述更改的目的 — 有助于捕获意图与实现之间的差距
- **定向关注**:传递`review_focus`(例如`'security'`、`'performance'`)以对特定维度进行更深入的分析
### Claude Code中的示例提示
```
审查我的当前更改
```
```
审查此分支上的更改与main分支的对比
```
```
审查我的更改,任务是修复连接池中的竞争条件,关注并发安全性
```
## 工作原理
1. **上下文收集** — 读取CLAUDE.md、git log、提交消息和更改文件的完整源代码
2. **智能审查** — 将上下文和差异发送到模型,模型可以使用工具(read_file、grep_code、git_blame、list_files、search_git_history、find_test_files)进行调查
3. **自我批评** — 第二次传递过滤掉低置信度或推测性发现
4. **结构化输出** — 返回发现结果,包含置信度、类别、文件位置和解释
## 许可证
MIT