code-review-mcp
Enables AI assistants to review GitHub and GitLab pull requests and merge requests, supporting multiple transports and custom review rules.
README
Code Review MCP Server
English | δΈζ
MCP (Model Context Protocol) server for code review. Enables AI assistants to review GitHub/GitLab Pull Requests and Merge Requests.
β¨ Features
- π Multi-platform: Supports both GitHub and GitLab (including self-hosted)
- π Multiple Transports: Supports stdio, SSE, and WebSocket protocols
- π¦ Easy Install: Quick install via
uvxorpip - π³ Containerized: Docker image available
- βοΈ Cloud Deploy: One-click Smithery deployment
- π Security First: Environment variable configuration, no data persistence
π Quick Start
Option 1: Using uvx (Recommended)
# Run directly, no installation needed
uvx code-review-mcp
Option 2: Using pip
pip install code-review-mcp
# Run the server
code-review-mcp
# (Optional) Install Cursor rules to your project
code-review-mcp init-rules
Option 3: From Source
git clone https://github.com/OldJii/code-review-mcp.git
cd code-review-mcp
pip install -e .
code-review-mcp
π§ Configuration
Environment Variables
| Variable | Description | Required |
|---|---|---|
GITHUB_TOKEN |
GitHub personal access token | When using GitHub |
GITLAB_TOKEN |
GitLab personal access token | When using GitLab |
GITLAB_HOST |
GitLab host URL | For self-hosted (default: gitlab.com) |
Getting Tokens
GitHub
# Option 1: Using gh CLI (Recommended)
brew install gh
gh auth login
# Option 2: Manual Token Creation
# Visit https://github.com/settings/tokens
# Create Personal Access Token with 'repo' scope
export GITHUB_TOKEN="your-token-here"
GitLab
# Option 1: Using glab CLI (Recommended)
brew install glab
glab auth login
# For self-hosted GitLab
glab auth login --hostname gitlab.yourcompany.com
# Option 2: Manual Token Creation
# Visit GitLab -> Settings -> Access Tokens
# Create token with 'api' scope
export GITLAB_TOKEN="your-token-here"
export GITLAB_HOST="gitlab.yourcompany.com" # For self-hosted
π± Client Configuration
Cursor
Edit ~/.cursor/mcp.json:
{
"mcpServers": {
"code-review": {
"command": "uvx",
"args": ["code-review-mcp"],
"env": {
"GITHUB_TOKEN": "your-github-token",
"GITLAB_TOKEN": "your-gitlab-token"
}
}
}
}
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"code-review": {
"command": "uvx",
"args": ["code-review-mcp"],
"env": {
"GITHUB_TOKEN": "your-github-token",
"GITLAB_TOKEN": "your-gitlab-token"
}
}
}
}
SSE Mode (Remote Deployment)
# Start SSE server
code-review-mcp --transport sse --port 8000
Client configuration:
{
"mcpServers": {
"code-review": {
"url": "http://your-server:8000/sse"
}
}
}
WebSocket Mode (Remote Deployment)
# Start WebSocket server
code-review-mcp --transport websocket --port 8000
Client configuration:
{
"mcpServers": {
"code-review": {
"url": "ws://your-server:8000/ws"
}
}
}
π³ Docker Deployment
Build Image
docker build -t code-review-mcp .
Run Container
stdio mode
docker run -i --rm \
-e GITHUB_TOKEN="your-token" \
code-review-mcp
SSE mode
docker run -d --rm \
-e GITHUB_TOKEN="your-token" \
-p 8000:8000 \
code-review-mcp --transport sse
π¨ MCP Tools
Rules
| Tool | Description |
|---|---|
get_review_rules |
Get review rules (builtin + custom project rules) |
Information Retrieval
| Tool | Description |
|---|---|
get_pr_info |
Get PR/MR details (title, description, branches) |
get_pr_changes |
Get code changes (diff), supports file type filtering |
extract_related_prs |
Extract related PR/MR links from description |
Adding Comments
| Tool | Description |
|---|---|
add_inline_comment |
Add inline comment to specific code line |
add_pr_comment |
Add general comment |
batch_add_comments |
Batch add comments (inline + general) |
π¬ Usage Examples
Chat with Cursor or Claude:
Review GitHub PR
Review https://github.com/facebook/react/pull/12345
Review GitLab MR
Review https://gitlab.com/group/project/-/merge_requests/678
Review Self-hosted GitLab MR
Review https://gitlab.yourcompany.com/team/project/-/merge_requests/90
Review Only Specific File Types
Review this PR, only check .py and .js files:
https://github.com/owner/repo/pull/123
π§ͺ Debugging & Testing
Using MCP Inspector
# Run with MCP Inspector
npx @modelcontextprotocol/inspector uvx code-review-mcp
This launches a web interface where you can:
- View all available tools
- Manually call tools and inspect results
- Debug parameters and responses
Local Development
# Clone repository
git clone https://github.com/OldJii/code-review-mcp.git
cd code-review-mcp
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Debug with Inspector
npx @modelcontextprotocol/inspector python -m code_review_mcp.server
π Project Structure
code-review-mcp/
βββ src/
β βββ code_review_mcp/
β βββ __init__.py # Package entry
β βββ cli.py # CLI commands (init-rules, etc.)
β βββ server.py # MCP server main logic
β βββ providers.py # GitHub/GitLab providers
β βββ rules/ # Bundled Cursor rules
β βββ code-review.mdc
β βββ code-review-en.mdc
βββ pyproject.toml # Project config & PyPI publishing
βββ Dockerfile # Docker build file
βββ smithery.yaml # Smithery deployment config
βββ CHANGELOG.md # Changelog
βββ CONTRIBUTING.md # Contributing guide
βββ README.md # Documentation
π― Cursor Rules (Recommended)
This package includes built-in code review rules for Cursor IDE. Install them to your project with one command:
# Install rules to current project
code-review-mcp init-rules
# Install to a specific directory
code-review-mcp init-rules --target /path/to/project
# Overwrite existing rules
code-review-mcp init-rules --force
# List available rules
code-review-mcp list-rules
After installation, the rules will be available in your project's .cursor/rules/ directory:
code-review.mdc- Chinese versioncode-review-en.mdc- English version
Custom Project Rules
You can define project-specific review rules that the MCP server loads at runtime. This allows each project to enforce its own coding standards during reviews.
Quick Setup:
# Generate a custom rules template
code-review-mcp init-rules --custom
This creates .code-review-rules/project-rules.md in your project. Edit it with your project-specific conventions, then configure the MCP server to load it:
{
"mcpServers": {
"code-review": {
"command": "uvx",
"args": ["code-review-mcp"],
"env": {
"GITHUB_TOKEN": "your-token",
"CODE_REVIEW_RULES_DIR": "/absolute/path/to/project/.code-review-rules"
}
}
}
}
How It Works:
- Set
CODE_REVIEW_RULES_DIRto a directory containing.mdor.mdcfiles - Or simply place a
.code-review-rules/directory in your project root (auto-discovered) - The
get_review_rulestool returns both builtin and custom rules - AI assistants use these rules when performing reviews
- Custom rules supplement (not replace) the builtin review guidelines
Environment Variable:
| Variable | Description | Required |
|---|---|---|
CODE_REVIEW_RULES_DIR |
Path to custom rules directory | No (optional) |
π€ Contributing
Contributions welcome! See CONTRIBUTING.md for details.
π License
π Related Links
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.