code-review-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@code-review-mcpanalyze the code quality of src/main.py"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ai-code-review-mcp
一个基于 MCP(Model Context Protocol)的代码质量审查服务器,为 AI 编码助手(如 OpenCode、Claude Desktop、Cursor 等)提供本地代码分析能力。
PyPI: https://pypi.org/project/ai-code-review-mcp/ GitHub: https://github.com/AlanNiew/code-review-mcp
特性
文件分析 — 检测函数复杂度、行数统计、代码风格问题
Diff 审查 — 审查 git 未提交的变更,发现调试代码和潜在密钥泄露
项目扫描 — 一键扫描整个项目的代码质量概况
质量评分 — 多维评分(总分 / 安全 / 可维护性)A-F 等级
21 条规则 — 12 条安全规则(SEC001-SEC012)+ 5 条复杂度规则(COMPLEX001-005)+ 4 条风格规则(STYLE001-004)
认知复杂度 — 业界领先的人脑理解难度算法(SonarSource 白皮书实现)
配置文件 —
.code-review.yml自定义规则开关、阈值、忽略路径行级豁免 —
# codereview: ignore灵活豁免误报多语言支持 — Python 深度分析(AST)+ 通用质量检查(JS/TS/Java/Go/Rust 等)
配套 Skill — 提供标准化的代码审查工作流提示词
零外部依赖 — 仅依赖
mcp包;YAML 配置可选装 PyYAML
Related MCP server: code-review-mcp-server
安装
pip install ai-code-review-mcp要求 Python 3.10+
使用教程
一、OpenCode(推荐)
OpenCode 是一个开源 AI 编码助手,原生支持 MCP 和 Skill。
步骤 1:安装 MCP 服务器
pip install ai-code-review-mcp步骤 2:配置 OpenCode
在项目根目录创建或编辑 opencode.json,添加以下内容:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"code-review-mcp": {
"type": "local",
"command": ["ai-code-review-mcp"],
"enabled": true
}
}
}步骤 3:安装配套 Skill(可选,推荐)
Skill 提供标准化的代码审查工作流,让 AI 按规范流程调用 MCP 工具。
从 GitHub 下载 Skill 文件:
# 方式一:复制到项目级目录(仅当前项目生效)
mkdir -p .opencode/skills/code-review
curl -o .opencode/skills/code-review/SKILL.md https://raw.githubusercontent.com/AlanNiew/code-review-mcp/main/skill/SKILL.md
# 方式二:复制到全局目录(所有项目生效)
mkdir -p ~/.config/opencode/skills/code-review
curl -o ~/.config/opencode/skills/code-review/SKILL.md https://raw.githubusercontent.com/AlanNiew/code-review-mcp/main/skill/SKILL.mdWindows 用户手动创建:
# 项目级
New-Item -ItemType Directory -Path ".opencode\skills\code-review" -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/AlanNiew/code-review-mcp/main/skill/SKILL.md" -OutFile ".opencode\skills\code-review\SKILL.md"
# 全局级
New-Item -ItemType Directory -Path "$env:USERPROFILE\.config\opencode\skills\code-review" -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/AlanNiew/code-review-mcp/main/skill/SKILL.md" -OutFile "$env:USERPROFILE\.config\opencode\skills\code-review\SKILL.md"步骤 4:开始使用
启动 OpenCode 后,直接在对话中使用:
帮我分析 src/main.py 的代码质量审查一下当前未提交的代码变更使用 code-review 技能,扫描项目整体代码质量二、Claude Desktop
步骤 1:安装 MCP 服务器
pip install ai-code-review-mcp步骤 2:编辑配置文件
打开 Claude Desktop 配置文件:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
添加以下内容:
{
"mcpServers": {
"code-review-mcp": {
"command": "ai-code-review-mcp"
}
}
}步骤 3:重启 Claude Desktop
重启后,Claude 会自动加载 MCP 工具,你可以在对话中直接使用:
帮我审查一下 src/utils.py 的代码质量三、Cursor
步骤 1:安装 MCP 服务器
pip install ai-code-review-mcp步骤 2:配置 Cursor
打开 Cursor 设置 → MCP,添加一个新的 MCP Server:
Type: command
Command:
ai-code-review-mcp
或者在 .cursor/mcp.json 中添加:
{
"mcpServers": {
"code-review-mcp": {
"command": "ai-code-review-mcp"
}
}
}四、使用 uvx 运行(无需 pip install)
如果你使用 uv,可以跳过安装步骤,直接运行:
OpenCode 配置:
{
"mcp": {
"code-review-mcp": {
"type": "local",
"command": ["uvx", "ai-code-review-mcp"],
"enabled": true
}
}
}Claude Desktop 配置:
{
"mcpServers": {
"code-review-mcp": {
"command": "uvx",
"args": ["ai-code-review-mcp"]
}
}
}五、从源码运行(开发者)
git clone https://github.com/AlanNiew/code-review-mcp.git
cd code-review-mcp
pip install -e .然后在配置中使用:
{
"mcp": {
"code-review-mcp": {
"type": "local",
"command": ["python", "-m", "code_review_mcp.server"],
"enabled": true
}
}
}提供的工具
v0.2.0 新增了
list_rules工具,可在对话中查询所有已注册规则。
1. analyze_file — 分析单个文件
分析文件的代码质量、复杂度和安全问题。
示例对话:
帮我分析 src/main.py 的代码质量返回内容:
语言类型、代码/注释/空白行数
问题列表(21 条规则适用时全部触发)
多维质量评分:overall / security / maintainability(A-F 等级)
2. review_diff — 审查 git 变更
审查当前仓库中未提交的变更(staged + unstaged)。
示例对话:
审查一下当前未提交的代码变更检测内容:
硬编码的密钥或密码(严重)
遗留的
print()/console.log()调试语句新增的 TODO/FIXME 标记
过长的代码行
3. check_project — 扫描项目概况
扫描整个项目的代码质量。
示例对话:
扫描一下项目整体代码质量返回内容:
文件总数和总行数、错误/警告/提示计数
语言分布统计
问题最多的前 10 个文件
项目整体质量评分(A-F 等级)
4. list_rules — 查询规则清单(v0.2.0 新增)
返回所有已注册规则的元信息(ID、名称、描述、类别、严重级别、适用语言)。
示例对话:
列出所有代码审查规则规则参考
安全规则(SEC001-SEC012)
借鉴 bandit 的 AST 节点分发模式,针对 Python。
规则 ID | 名称 | 严重级别 | 检测目标 |
SEC001 | eval-exec | 🔴 error |
|
SEC002 | shell-injection | 🔴 error |
|
SEC003 | unsafe-deserialize | 🔴 error |
|
SEC004 | weak-hash | 🟡 warning |
|
SEC005 | hardcoded-secret | 🔴 error | 硬编码密码 / API Key |
SEC006 | ssl-verify-false | 🔴 error |
|
SEC007 | bare-except | 🟡 warning | bare except / |
SEC008 | sql-injection | 🟡 warning | SQL 字符串拼接 |
SEC009 | assert-in-production | 🔵 info | 生产代码中的 |
SEC010 | flask-debug | 🔴 error | Flask |
SEC011 | jwt-no-verify | 🔴 error | JWT 关闭签名校验 |
SEC012 | weak-random | 🟡 warning | 安全场景使用 |
复杂度规则(COMPLEX001-005)
规则 ID | 名称 | 严重级别 | 默认阈值 |
COMPLEX001 | function-too-long | 🟡 warning | 函数 > 50 行 |
COMPLEX002 | cyclomatic-complexity | 🟡 warning | 圈复杂度 > 10 |
COMPLEX003 | cognitive-complexity | 🟡 warning | 认知复杂度 > 15(SonarSource 白皮书) |
COMPLEX004 | too-many-params | 🔵 info | 参数 > 5 个 |
COMPLEX005 | nesting-too-deep | 🟡 warning | 嵌套 > 4 层 |
风格规则(STYLE001-004)
规则 ID | 名称 | 严重级别 | 检测目标 |
STYLE001 | line-too-long | 🟡 warning | 单行 > 120 字符 |
STYLE002 | todo-comment | 🔵 info | 注释中的 TODO/FIXME/HACK/XXX |
STYLE003 | trailing-whitespace | 🔵 info | 行末空白字符 |
STYLE004 | debug-print | 🔵 info |
|
配置文件(v0.2.0 新增)
在项目根目录创建 .code-review.yml、.code-review.yaml 或 .code-review.json 即可自定义行为。
(YAML 需要可选依赖 pip install ai-code-review-mcp[yaml])
.code-review.json 示例:
{
"rules": {
"security": { "enabled": true },
"complexity": { "enabled": true },
"style": { "enabled": true }
},
"thresholds": {
"max_function_length": 80,
"max_cognitive_complexity": 20,
"max_line_length": 100
},
"ignore_paths": [
"tests/*",
"vendor/",
"migrations/",
"*_pb2.py"
],
"severity_overrides": {
"SEC009": "warning"
}
}配置项说明:
字段 | 类型 | 说明 |
| bool | 关闭整类规则(如 |
| int | 自定义阈值(见复杂度规则表) |
| list | 路径忽略列表(fnmatch glob + 目录前缀) |
| dict | 覆盖单条规则的默认严重级别 |
配置查找顺序:
环境变量
CODE_REVIEW_CONFIG指定的路径(最高优先级)从当前目录向上递归查找
.code-review.{yml,yaml,json}内置默认配置
行级豁免(v0.2.0 新增)
借鉴 # noqa / # nosec 的设计,你可以针对单行豁免规则:
# 豁免当前行的所有规则
token = "hardcoded-for-dev-only-1234567890" # codereview: ignore
# 只豁免指定规则
password = "test1234" # codereview: ignore=SEC005豁免标记大小写不敏感,可以放在行内任意位置。
质量评分算法
多维评分(v0.2.0 新增)
每个分析结果包含 3 个独立维度的评分:
维度 | 包含的类别 | 用途 |
overall | 所有 issue | 综合质量画像 |
security | 仅 | 安全风险隔离("代码漂亮但有 SQL 注入"也能被识别) |
maintainability |
| 可维护性画像 |
严重级别权重
严重程度 | 单项扣分 | 说明 |
Error | 10 分 | 必须修复(如硬编码密钥) |
Warning | 3 分 | 建议修复(如函数过长) |
Info | 0.5 分 | 可选优化(如 TODO 标记) |
基础分 100,扣完为止。等级划分(借鉴 DeepSource):
评分 | 等级 | 含义 |
≥ 90 | A | 优秀 |
≥ 80 | B | 良好 |
≥ 70 | C | 合格 |
≥ 60 | D | 较差 |
< 60 | F | 不合格 |
支持的语言
语言 | 文件分析 | 复杂度分析 |
Python (.py) | ✅ | ✅ AST 深度分析 |
JavaScript (.js/.jsx) | ✅ | 通用检查 |
TypeScript (.ts/.tsx) | ✅ | 通用检查 |
Java (.java) | ✅ | 通用检查 |
Go (.go) | ✅ | 通用检查 |
Rust (.rs) | ✅ | 通用检查 |
C/C++ (.c/.cpp/.h) | ✅ | 通用检查 |
Ruby (.rb) | ✅ | 通用检查 |
PHP (.php) | ✅ | 通用检查 |
Swift (.swift) | ✅ | 通用检查 |
Kotlin (.kt) | ✅ | 通用检查 |
Scala (.scala) | ✅ | 通用检查 |
项目结构
code-review-mcp/
├── pyproject.toml # Python 包配置(含 ruff/pytest 配置)
├── README.md # 本文件
├── CHANGELOG.md # 变更记录
├── LICENSE # MIT 许可证
├── .github/workflows/
│ ├── ci.yml # CI:多版本矩阵 + ruff + pytest
│ └── publish.yml # 自动发布 PyPI + GitHub Release
├── skill/
│ └── SKILL.md # 配套的 OpenCode Skill
├── tests/ # 测试套件(100 个用例)
│ ├── conftest.py # 共享 fixtures
│ ├── test_security_rules.py # SEC001-SEC012 正反例
│ ├── test_complexity.py # 认知复杂度算法 + 规则
│ ├── test_style_rules.py # 风格规则
│ ├── test_config.py # 配置加载 + 行级豁免
│ ├── test_scoring.py # 多维评分
│ └── test_tools.py # MCP 工具端到端
└── src/
└── code_review_mcp/
├── __init__.py
├── server.py # MCP 服务器主入口(4 个工具)
├── models.py # Issue + Severity + Category 枚举
├── config.py # 配置加载 + 行级豁免
├── scoring.py # 多维评分算法
├── utils.py # 通用工具函数
├── analyzers/
│ ├── __init__.py
│ ├── context.py # 规则运行入口
│ ├── diff.py # Git diff 分析
│ └── project.py # 项目扫描
└── rules/
├── __init__.py
├── base.py # Rule / PythonAstRule / TextRule 基类
├── registry.py # 规则注册表
├── security.py # SEC001-SEC012
├── complexity.py # COMPLEX001-005(含认知复杂度算法)
└── style.py # STYLE001-004常见问题
Q: 启动时报错 "command not found: ai-code-review-mcp"
确保 Python 的 Scripts 目录在系统 PATH 中:
# 检查安装位置
pip show ai-code-review-mcp
# 查找可执行文件位置
where ai-code-review-mcp # Windows
which ai-code-review-mcp # macOS/LinuxQ: MCP 工具没有出现在 AI 助手中
确认配置文件路径正确
确认
ai-code-review-mcp命令可以在终端直接运行重启 AI 助手应用
Q: 只想用 MCP,不想装 Skill 可以吗?
可以。Skill 是可选的增强功能,不装也能使用所有 3 个 MCP 工具。Skill 的作用是让 AI 按标准流程输出格式化的审查报告。
License
MIT © AlanNiew
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AlanNiew/code-review-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server