mcp-code-reviewer
by krealal
README.md
# MCP PR Review
An MCP (Model Context Protocol) server for automatic code review using OpenRouter as the LLM provider.
## ๐ Features
- **Intelligent code review**: Analyzes your code and suggests improvements based on:
- Performance optimizations
- Clean Code principles
- SOLID principles application
- Proper async handling
- Error handling
- Security best practices
- **Multiple LLM support**: Uses OpenRouter to access different models
- **Direct file modification**: Inserts JSDoc review comments directly into your files
- **Easy integration**: Connects with any MCP-compatible client
## ๐ Requirements
- Node.js >= 18.0.0
- Yarn 4
- OpenRouter API Key
## ๐ ๏ธ Installation
1. **Clone the repository**
```bash
git clone <your-repo>
cd mcp-pr-review
```
2. **Install dependencies**:
```bash
yarn install
```
3. **Configure environment variables**:
```bash
cp .env.example .env
```
Edit the `.env` file and add your OpenRouter API key:
```env
OPENROUTER_API_KEY=your_api_key_here
OPENROUTER_MODEL=moonshotai/kimi-k2:free
```
## ๐ Getting OpenRouter API Key
1. Go to [OpenRouter](https://openrouter.ai/)
2. Create an account
3. Generate an API key in your dashboard
4. Add it to your `.env` file
## ๐ Usage
### Running the server
```bash
# Production mode
yarn start
# Development mode (with watch)
yarn dev
```
### Using MPC client
Add this configuration to your MCP configuration file:
```json
{
"mcpServers": {
"code-review": {
"command": "node",
"args": ["path/to/mcp-pr-review/src/index.js"],
"env": {
"OPENROUTER_API_KEY": "your_api_key_here"
}
}
}
}
```
### Available Tools
#### `review`
Reviews a code file and inserts JSDoc review comments directly into the file.
**Parameters:**
- `file_path` (string): **Absolute path** to the file you want to review
**Important notes:**
- โ ๏ธ **Only absolute paths are accepted** (paths starting with `/`)
- ๐ **The tool modifies the original file** by inserting JSDoc comments
- ๐ **Review categories include**: SOLID, PERFORMANCE, ASYNC, ERROR_HANDLING, CLEAN_CODE, SECURITY
**Example usage:**
```bash
# In your MCP client (like Claude Desktop)
/review /Users/username/project/src/myfile.js
```
**What the tool does:**
1. Reads the specified file
2. Analyzes the code for issues
3. Generates JSDoc comments with @fixme annotations
4. Inserts these comments directly into the file before problematic lines
5. Saves the modified file
**Example output format:**
```javascript
/**
* @fixme PERFORMANCE: Consider using more efficient algorithm
* @example Use Map instead of nested loops for O(1) lookups
*/
function inefficientFunction() {
// your code here
}
```
## ๐ง Configuration
### Environment Variables
| Variable | Description | Default | Required |
|----------|-------------|---------|----------|
| `OPENROUTER_API_KEY` | Your OpenRouter API key | - | โ
|
| `OPENROUTER_API_URL` | API base URL | `https://openrouter.ai/api/v1` | โ |
| `OPENROUTER_MODEL` | Model to use | `moonshotai/kimi-k2:free` | โ |
### Recommended Models
- **Free models**:
- `moonshotai/kimi-k2:free`
- `meta-llama/llama-3.1-8b-instruct:free`
- `google/gemini-flash-1.5`
- **Paid models (better quality)**:
- `anthropic/claude-3-haiku:beta`
- `microsoft/wizardlm-2-8x22b`
- `anthropic/claude-3-sonnet:beta`
## ๐งช Development
### Project Structure
```
mcp-pr-review/
โโโ src/
โ โโโ index.js # Main MCP server
โโโ package.json # Dependencies and scripts
โโโ .env.example # Environment variables template
โโโ .gitignore # Files to ignore by git
โโโ README.md # This documentation
```
### Available Scripts
```bash
yarn start # Run in production
yarn dev # Run in development mode
yarn test # Run tests (not implemented yet)
```