Code Review MCP Server

by crazyrabbitLTC
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Provides functionality to clone and analyze Git repositories, supporting code review workflows for local Git repositories.

  • Enables flattening and analyzing GitHub repositories with Repomix, allowing for comprehensive code reviews of entire codebases or specific files and file types.

  • Connects to OpenAI's API to analyze code and perform detailed code reviews, with support for models like gpt-4o and gpt-4-turbo to identify issues and provide recommendations.

Servidor de revisión de código

Un servidor MCP personalizado que realiza revisiones de código utilizando Repomix y LLM.

Características

  • Aplanar bases de código usando Repomix
  • Analizar código con modelos de lenguaje grandes
  • Obtenga revisiones de código estructuradas con problemas y recomendaciones específicas
  • Compatibilidad con múltiples proveedores de LLM (OpenAI, Anthropic, Gemini)
  • Maneja la fragmentación para bases de código grandes

Instalación

# Clone the repository git clone https://github.com/yourusername/code-review-server.git cd code-review-server # Install dependencies npm install # Build the server npm run build

Configuración

Cree un archivo .env en el directorio raíz basado en la plantilla .env.example :

cp .env.example .env

Edite el archivo .env para configurar su proveedor LLM preferido y su clave API:

# LLM Provider Configuration LLM_PROVIDER=OPEN_AI OPENAI_API_KEY=your_openai_api_key_here

Uso

Como servidor MCP

El servidor de revisión de código implementa el Protocolo de contexto de modelo (MCP) y se puede utilizar con cualquier cliente MCP:

# Start the server node build/index.js

El servidor expone dos herramientas principales:

  1. analyze_repo : Aplana una base de código usando Repomix
  2. code_review : Realiza una revisión de código utilizando un LLM

Cuándo utilizar herramientas MCP

Este servidor proporciona dos herramientas distintas para diferentes necesidades de análisis de código:

analizar_repositorio

Utilice esta herramienta cuando necesite:

  • Obtenga una descripción general de alto nivel de la estructura y la organización de una base de código
  • Aplanar un repositorio en una representación textual para el análisis inicial
  • Comprenda la estructura del directorio y el contenido de los archivos sin una revisión detallada
  • Prepárese para una revisión de código más profunda
  • Escanee rápidamente una base de código para identificar archivos relevantes para un análisis posterior

Situaciones de ejemplo:

  • Quiero comprender la estructura de este repositorio antes de revisarlo.
  • "Muéstrame qué archivos y directorios hay en este código base"
  • "Dame una vista aplanada del código para entender su organización"

revisión de código

Utilice esta herramienta cuando necesite:

  • Realizar una evaluación integral de la calidad del código
  • Identificar vulnerabilidades de seguridad específicas, cuellos de botella de rendimiento o problemas de calidad del código
  • Obtenga recomendaciones prácticas para mejorar el código
  • Realizar una revisión detallada con clasificaciones de gravedad de los problemas.
  • Evaluar una base de código frente a las mejores prácticas

Situaciones de ejemplo:

  • Revisar este código base para detectar vulnerabilidades de seguridad.
  • Analizar el rendimiento de estos archivos JavaScript específicos.
  • "Dame una evaluación detallada de la calidad del código de este repositorio"
  • "Revisa mi código y dime cómo mejorar su mantenibilidad"

Cuándo utilizar parámetros:

  • specificFiles : cuando solo desea revisar ciertos archivos, no todo el repositorio
  • fileTypes : cuando desea centrarse en extensiones de archivo específicas (por ejemplo, .js, .ts)
  • detailLevel : utilice «básico» para una descripción general rápida o «detallado» para un análisis en profundidad
  • focusAreas : Cuando quieres priorizar determinados aspectos (seguridad, rendimiento, etc.)

Uso de la herramienta CLI

Para fines de prueba, puede utilizar la herramienta CLI incluida:

node build/cli.js <repo_path> [options]

Opciones:

  • --files <file1,file2> : Archivos específicos para revisar
  • --types <.js,.ts> : Tipos de archivos a incluir en la revisión
  • --detail <basic|detailed> : Nivel de detalle (predeterminado: detallado)
  • --focus <areas> áreas> : Áreas en las que centrarse (seguridad, rendimiento, calidad, mantenibilidad)

Ejemplo:

node build/cli.js ./my-project --types .js,.ts --detail detailed --focus security,quality

Desarrollo

# Run tests npm test # Watch mode for development npm run watch # Run the MCP inspector tool npm run inspector

Integración de LLM

El servidor de revisión de código se integra directamente con múltiples API de proveedores LLM:

  • OpenAI (predeterminado: gpt-4o)
  • Antrópico (predeterminado: claude-3-opus-20240307)
  • Géminis (predeterminado: gemini-1.5-pro)

Configuración del proveedor

Configure su proveedor LLM preferido en el archivo .env :

# Set which provider to use LLM_PROVIDER=OPEN_AI # Options: OPEN_AI, ANTHROPIC, or GEMINI # Provider API Keys (add your key for the chosen provider) OPENAI_API_KEY=your-openai-api-key ANTHROPIC_API_KEY=your-anthropic-api-key GEMINI_API_KEY=your-gemini-api-key

Configuración del modelo

Opcionalmente, puede especificar qué modelo utilizar para cada proveedor:

# Optional: Override the default models OPENAI_MODEL=gpt-4-turbo ANTHROPIC_MODEL=claude-3-sonnet-20240229 GEMINI_MODEL=gemini-1.5-flash-preview

Cómo funciona la integración de LLM

  1. La herramienta code_review procesa el código utilizando Repomix para aplanar la estructura del repositorio
  2. El código se formatea y se fragmenta, si es necesario, para ajustarse a los límites del contexto LLM.
  3. Se genera un mensaje detallado en función de las áreas de enfoque y el nivel de detalle.
  4. El mensaje y el código se envían directamente a la API LLM del proveedor elegido.
  5. La respuesta LLM se analiza en un formato estructurado
  6. La revisión se devuelve como un objeto JSON con problemas, fortalezas y recomendaciones.

La implementación incluye lógica de reintento para mayor resiliencia ante errores de API y formato adecuado para garantizar que se incluya el código más relevante en la revisión.

Formato de salida de la revisión de código

La revisión del código se devuelve en un formato JSON estructurado:

{ "summary": "Brief summary of the code and its purpose", "issues": [ { "type": "SECURITY|PERFORMANCE|QUALITY|MAINTAINABILITY", "severity": "HIGH|MEDIUM|LOW", "description": "Description of the issue", "line_numbers": [12, 15], "recommendation": "Recommended fix" } ], "strengths": ["List of code strengths"], "recommendations": ["List of overall recommendations"] }

Licencia

Instituto Tecnológico de Massachusetts (MIT)

-
security - not tested
F
license - not found
-
quality - not tested

Analiza bases de código utilizando Repomix y LLM para proporcionar revisiones de código estructuradas con problemas y recomendaciones específicas, respaldando múltiples proveedores de LLM, incluidos OpenAI, Anthropic y Gemini.

  1. Features
    1. Installation
      1. Configuration
        1. Usage
          1. As an MCP Server
        2. When to Use MCP Tools
          1. analyze_repo
          2. code_review
          3. Using the CLI Tool
        3. Development
          1. LLM Integration
            1. Provider Configuration
            2. Model Configuration
            3. How the LLM Integration Works
          2. Code Review Output Format
            1. License
              ID: 0tbbehvj9y