Skip to main content
Glama
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)
```