MCP Code Review Server
mcp-name: io.github.GoodJobwilliam/aicraft-code-review
中文文档:README.zh.md
Listed on: Smithery · mcpservers.org · cursor.directory
Code review as an MCP server. Connect it to Claude Code, Cursor, or any MCP-compatible AI assistant.
Features
review_code— Review any source code snippet for bugs, security, performance, and stylereview_diff— Review a git diff for potential issues before mergingreview_file— Review a local file by path
Powered by the same methodology as our Code Review Agent: OWASP Top 10 scanning, N+1 query detection, race condition analysis, and structured output with severity ratings.
Quick Start
Via uvx (no install)
# Add to your Claude Code MCP config:
claude mcp add code-review -- uvx --with "mcp<2" aicraft-code-review
Or add to your ~/.cursor/mcp.json or claude_desktop_config.json:
{
"mcpServers": {
"code-review": {
"command": "uvx",
"args": ["--with", "mcp<2", "aicraft-code-review"]
}
}
}
Via pip
pip install "aicraft-code-review" "mcp<2"
python -m mcp_code_review
⚠️ PyPI 0.1.0 does not cap
mcp, and mcp 2.0.0 removesServer.list_tools, which crashes the CLI on fresh installs. Install 0.1.1+ (which pinsmcp<2automatically) or pinmcp<2yourself.
CLI mode (no MCP client needed)
# Review a local file (discovers .mcp-code-review.yaml from the file's directory)
mcp-code-review review-file path/to/file.py
# Review a git diff
git diff | mcp-code-review review-diff
mcp-code-review review-diff --git
# Review a snippet
mcp-code-review review-code "import os; os.system('ls')"
Exit codes are CI-friendly: 0 clean, 1 high/medium issues, 2 critical issues.
Usage Examples
Once connected, ask your AI assistant:
"Review this Python code for security issues: [paste code]" "Review this diff before I commit: [paste diff]" "Review this file: /path/to/file.py"
The AI will call the MCP server and return structured results.
Sample Output
## Review Results
### 🔴 Critical (1)
| Line | Issue | Category | Fix |
|------|-------|----------|-----|
| 42 | SQL injection via f-string | Security | Use parameterized queries |
### 🟠 High (2)
| Line | Issue | Category | Fix |
|------|-------|----------|-----|
| 15 | Unvalidated user input | Security | Add input validation |
| 78 | N+1 query in loop | Performance | Add select_related |
### Summary
- **Critical**: 1 — must fix
- **High**: 2 — should fix
- **Medium**: 0
- **Info**: 0
Custom Rules & Team Profiles
Ship your team's code standards as a config file — no code changes needed.
.mcp-code-review.yaml/.yml/.json— auto-discovered from the reviewed file's directory upward; for snippets and diffs it is looked up from the server's working directoryMCP_CODE_REVIEW_CONFIGenv var — point every teammate at a shared config committed to your repo (team-shared rule profiles)- Custom regex rules with severity, message, and suggested fix
disabled_checks— silence noisy checksseverity_overrides— bump or lower any check (e.g. make hardcoded secrets blocking)min_severity— only report findings at or above a threshold (per-repo noise control)
Example .mcp-code-review.yaml
disabled_checks:
- todo_comment
severity_overrides:
hardcoded_secret: critical
min_severity: medium
custom_rules:
- name: no-console-log
pattern: 'console\.log\('
severity: high
category: quality
issue: Console logging left in production code
fix: Use a structured logger instead
Team setup
Commit the file to a shared repo, then wire every teammate's MCP client to it:
{
"mcpServers": {
"code-review": {
"command": "uvx",
"args": ["--with", "mcp<2", "aicraft-code-review"],
"env": {
"MCP_CODE_REVIEW_CONFIG": "/path/to/team-repo/.mcp-code-review.yaml"
}
}
}
}
Available check ids: dynamic_exec, sql_injection, deserialization, command_injection, input_py2, xss_innerhtml, hardcoded_secret, nplus1, unbounded_list, bare_except, empty_except, todo_comment, missing_return_type, long_lines, snake_case, pascal_case.
YAML configs need pip install "aicraft-code-review[yaml]"; JSON configs work with no extra dependencies.
Development
git clone https://github.com/GoodJobwilliam/aicraft
cd aicraft
pip install -e ".[dev]"
python -m mcp_code_review # Start server
Requirements
- Python 3.11+
- An MCP-compatible client (Claude Code, Cursor, etc.)
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aicraft_code_review-0.1.2.tar.gz.
File metadata
- Download URL: aicraft_code_review-0.1.2.tar.gz
- Upload date:
- Size: 14.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
246d7375dc1cdb8039c7b05db46ce405af6b7ccfb62caea6bebd3e006fe2bfc9
|
|
| MD5 |
a59a85f54dab32f213fc20886f005c8a
|
|
| BLAKE2b-256 |
1079313b5e09d003c2493aaa1723713dedae83ad64c6303dc595d1d0c049fc82
|
File details
Details for the file aicraft_code_review-0.1.2-py3-none-any.whl.
File metadata
- Download URL: aicraft_code_review-0.1.2-py3-none-any.whl
- Upload date:
- Size: 14.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab7396f5364c551381d9c9fee0e684ed70268cefde38e3063e24c3e0a11a646f
|
|
| MD5 |
55863e5ed9482fd63c992c73c0211cf8
|
|
| BLAKE2b-256 |
875abe5a1460e58a917e8a5f6103d50594ddef2a90b1cf6cc9ddd110c15a8042
|