Skip to main content
Glama
README.md
# Reviewer MCP

An MCP (Model Context Protocol) service that provides AI-powered development workflow tools. It supports multiple AI providers (OpenAI and Ollama) and offers standardized tools for specification generation, code review, and project management.

## Features

- **Specification Generation**: Create detailed technical specifications from prompts
- **Specification Review**: Review specifications for completeness and provide critical feedback  
- **Code Review**: Analyze code changes with focus on security, performance, style, or logic
- **Test Runner**: Execute tests with LLM-friendly formatted output
- **Linter**: Run linters with structured output formatting
- **Pluggable AI Providers**: Support for both OpenAI and Ollama (local models)

## Installation

```bash
npm install
npm run build
```

## Configuration

### Environment Variables

Create a `.env` file based on `.env.example`:

```bash
# AI Provider Configuration
AI_PROVIDER=openai  # Options: openai, ollama

# OpenAI Configuration
OPENAI_API_KEY=your_api_key_here
OPENAI_MODEL=o1-preview

# Ollama Configuration (for local models)
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=llama2
```

### Project Configuration

Create a `.reviewer.json` file in your project root to customize commands:

```json
{
  "testCommand": "npm test",
  "lintCommand": "npm run lint",
  "buildCommand": "npm run build",
  "aiProvider": "ollama",
  "ollamaModel": "codellama"
}
```

## Using with Claude Desktop

Add the following to your Claude Desktop configuration:

```json
{
  "mcpServers": {
    "reviewer": {
      "command": "node",
      "args": ["/path/to/reviewer-mcp/dist/index.js"],
      "env": {
        "OPENAI_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

## Using with Ollama

1. Install Ollama: https://ollama.ai
2. Pull a model: `ollama pull llama2` or `ollama pull codellama`
3. Set `AI_PROVIDER=ollama` in your `.env` file
4. The service will use your local Ollama instance

## Available Tools

### generate_spec
Generate a technical specification document.

Parameters:
- `prompt` (required): Description of what specification to generate
- `context` (optional): Additional context or requirements
- `format` (optional): Output format - "markdown" or "structured"

### review_spec
Review a specification for completeness and provide critical feedback.

Parameters:
- `spec` (required): The specification document to review
- `focusAreas` (optional): Array of specific areas to focus the review on

### review_code
Review code changes and provide feedback.

Parameters:
- `diff` (required): Git diff or code changes to review
- `context` (optional): Context about the changes
- `reviewType` (optional): Type of review - "security", "performance", "style", "logic", or "all"

### run_tests
Run standardized tests for the project.

Parameters:
- `testCommand` (optional): Test command to run (defaults to configured command)
- `pattern` (optional): Test file pattern to match
- `watch` (optional): Run tests in watch mode

### run_linter
Run standardized linter for the project.

Parameters:
- `lintCommand` (optional): Lint command to run (defaults to configured command)
- `fix` (optional): Attempt to fix issues automatically
- `files` (optional): Array of specific files to lint

## Development

```bash
# Run in development mode
npm run dev

# Run tests
npm test

# Run unit tests only
npm run test:unit

# Run integration tests (requires Ollama)
npm run test:integration

# Type checking
npm run typecheck

# Linting
npm run lint
```

### End-to-End Testing

The project includes a comprehensive e2e test that validates the full workflow using a real Ollama instance:

1. Install and start Ollama: https://ollama.ai
2. Pull a model: `ollama pull llama2`
3. Run the test: `npm run test:e2e`

The e2e test demonstrates:
- Specification generation
- Specification review
- Code creation
- Code review
- Linting
- Test execution

All using real AI responses from your local Ollama instance.

## License

MIT

TDQS

B3.3/5.0

Scored across 8 tools

Disambiguation4/5

Most tools have distinct purposes, such as generate_spec for document creation, review_code for code feedback, and run_tests for testing. However, review_code and run_linter could be confused as both involve code quality checks, though their descriptions clarify that review_code provides feedback while run_linter runs a standardized tool. Overall, the overlap is minimal and manageable.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern, such as generate_spec, review_code, run_tests, and notify. There are no deviations in naming conventions, making the set predictable and easy to understand. This consistency enhances usability and reduces cognitive load for agents.

Tool Count5/5

With 8 tools, the count is well-scoped for a server focused on code review and development tasks. Each tool serves a specific function, such as specification handling, code review, testing, and utilities like notifications and music. This number is neither too sparse nor overwhelming, fitting the server's purpose effectively.

Completeness3/5

The tool set covers key aspects of code review and development, including specification generation, code review, linting, and testing. However, there are notable gaps, such as the lack of tools for updating or deleting specifications, managing review history, or integrating with version control systems. These omissions could limit workflow coverage and cause agent inefficiencies.

Maintenance

ActivityInactive
ResponsivenessNo issues