Code Review MCP Server
April 6, 2025 ยท View on GitHub
An MCP (Model Context Protocol) server that executes shell commands for code review. This server provides a tool that can be used by AI assistants to review code or plans by executing the cursor-tools repo command.
Features
- Provides a code review tool that can be used by AI assistants
- Implements the Model Context Protocol for seamless integration with AI assistants
- Uses cursor-tools to perform code reviews
- Enhanced error handling and logging with Winston
- Configurable cursor-tools path
- Input validation and sanitization
Prerequisites
- Bun - JavaScript runtime and package manager
- cursor-tools - Command-line tool for code review
Installation
- Install dependencies:
bun install
- Ensure cursor-tools is installed and available in your PATH or configure its location (see Configuration section)
Usage
To run the MCP server:
bun run index.ts
Or use the provided launch script:
./launch-mcp.sh
Configuration
The server can be configured using environment variables:
| Variable | Description | Default |
|---|---|---|
| CURSOR_TOOLS_PATH | Path to the cursor-tools executable | "cursor-tools" |
Example:
CURSOR_TOOLS_PATH=/usr/local/bin/cursor-tools bun run index.ts
Error Handling
The server includes comprehensive error handling:
- Input validation: Empty or invalid inputs are rejected with appropriate error messages
- Command execution errors: Errors during command execution are logged and returned with descriptive messages
- Server startup errors: Issues during server startup are logged with detailed information
All errors are logged to:
- Console output
error.log(error level messages)combined.log(all messages)
Security Considerations
This server executes shell commands based on input received from AI assistants. While basic input sanitization is implemented, be aware of the following:
- The server is designed to be used in a trusted environment
- Input is sanitized to prevent basic command injection, but additional security measures may be needed for production use
- The cursor-tools command should be properly secured and have appropriate permissions
Integration with Roo
{
"mcpServers": {
"code-review-server": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"command": "bun",
"args": [
"run",
"index.ts"
],
"env": {},
"transportType": "stdio",
"alwaysAllow": [
"review_code"
]
}
}
}
Testing
To run the test suite:
bun run test.ts
The test suite includes:
- Basic code review functionality
- Complex code review scenarios
- Error handling tests
Logging
Logs are stored in:
error.log- Contains error-level messagescombined.log- Contains all log messages (info, warn, error)