mcp-code-sanitizer

Revisor de código estricto para IA impulsado por Groq. Encuentra errores, inyecciones SQL, secretos codificados y vulnerabilidades. Puntúa el código de 0 a 100 con correcciones concretas.

Documentación

mcp-code-sanitizer

Revisor de código estricto impulsado por IA para Claude Desktop, Cursor, VS Code y Claude Code CLI. Encuentra errores, vulnerabilidades y problemas de seguridad — impulsado por Groq (API gratuita).

Python PyPI FastMCP Groq License

Claude / Cursor / VS Code  ──MCP──►  code-sanitizer  ──REST──►  Groq API
                                        (server.py)              (llama-3.3-70b)

demo


Características

HerramientaQué hace
analyze_codeRevisión estricta — errores, problemas de seguridad, puntuación 0–100
compare_codeCompara dos versiones, detecta regresiones, recomienda merge/request_changes
explain_codeExplicación paso a paso para audiencia junior / middle / senior
generate_testsGenera pytest / jest / go test — camino feliz, casos límite, seguridad
analyze_fileAnaliza un archivo completo desde el disco con fragmentación paralela
generate_reportConstruye un informe HTML a partir de cualquier resultado de análisis
cache_infoEstadísticas de caché y limpieza

Ejemplo de salida

{
  "summary": "Critical SQL injection and secret exposed in logs",
  "score": 23,
  "issues": [
    {
      "severity": "critical",
      "line": 2,
      "title": "SQL Injection",
      "description": "f-string directly interpolates user_id into query",
      "fix": "cursor.execute('SELECT * FROM users WHERE id = %s', (user_id,))"
    }
  ],
  "warnings": [{"title": "No exception handling", "description": "..."}],
  "suggestions": ["Consider using an ORM instead of raw SQL"]
}

Instalación

Requisito previo: Obtén una clave API gratuita de Groq en console.groq.com/keys — no se requiere tarjeta de crédito.

Claude Code CLI

claude mcp add code-sanitizer -e GROQ_API_KEY=gsk_your_key -- uvx mcp-code-sanitizer

Claude Desktop

SOArchivo de configuración
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json
Linux~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "code-sanitizer": {
      "command": "uvx",
      "args": ["mcp-code-sanitizer"],
      "env": {
        "GROQ_API_KEY": "gsk_your_key_here"
      }
    }
  }
}

Cursor

Crea .cursor/mcp.json en tu proyecto (o ~/.cursor/mcp.json globalmente):

{
  "mcpServers": {
    "code-sanitizer": {
      "command": "uvx",
      "args": ["mcp-code-sanitizer"],
      "env": {
        "GROQ_API_KEY": "gsk_your_key_here"
      }
    }
  }
}

VS Code

Requiere VS Code 1.99+ con GitHub Copilot. Crea .vscode/mcp.json en tu proyecto:

{
  "servers": {
    "code-sanitizer": {
      "command": "uvx",
      "args": ["mcp-code-sanitizer"],
      "env": {
        "GROQ_API_KEY": "gsk_your_key_here"
      }
    }
  }
}

O agrégalo globalmente mediante Ctrl+Shift+P → "MCP: Add Server".

¿No tienes uvx? Instálalo con pip install uv y luego usa los comandos anteriores.


Instalación manual (alternativa)

Si prefieres clonar el repositorio:

git clone https://github.com/notasandy/mcp-code-sanitizer
cd mcp-code-sanitizer
pip install -r requirements.txt
cp .env.example .env   # add your GROQ_API_KEY
python server.py

Luego apunta la configuración del cliente a:

{
  "command": "python",
  "args": ["/full/path/to/server.py"],
  "env": { "GROQ_API_KEY": "gsk_your_key_here" }
}

GitHub Action — revisión automática de PR

Añade revisión de código con IA a cualquier repositorio en 5 líneas. La acción publica un comentario estructurado en cada PR con puntuación, problemas y sugerencias de corrección.

# .github/workflows/ai-review.yml
name: AI Code Review
on:
  pull_request:
    types: [opened, synchronize]

permissions:
  contents: read
  pull-requests: write

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: notasandy/mcp-code-sanitizer@v1
        with:
          groq_api_key: ${{ secrets.GROQ_API_KEY }}

Añade GROQ_API_KEY a los secretos de tu repositorio → Settings → Secrets → Actions.

La acción automáticamente:

  • Revisa solo los archivos modificados (hasta 10 por PR)
  • Publica una puntuación y una lista estructurada de problemas como comentario del PR
  • Falla la verificación si se encuentran problemas críticos

Uso en el chat

Después de conectar, simplemente escribe de forma natural:

Review this code for vulnerabilities:

def get_user(user_id):
    query = f"SELECT * FROM users WHERE id = {user_id}"
    return db.execute(query)

O llama a las herramientas explícitamente:

analyze_file /path/to/my_script.py
generate_tests for this function: ...
compare_code — before vs after refactor, did it get better?
generate_report and save to /tmp/report.html

Arquitectura

mcp-code-sanitizer/
├── server.py          # FastMCP entry point
├── config.py          # Constants — keys, limits, extension map
├── groq_client.py     # Async Groq client with auto-retry on 429
├── cache.py           # In-memory LRU cache with TTL
├── prompts.py         # System prompts for all tools
└── tools/
    ├── analyze.py     # analyze_code
    ├── compare.py     # compare_code
    ├── explain.py     # explain_code
    ├── tests.py       # generate_tests
    ├── file_tool.py   # analyze_file — chunking + parallel analysis
    ├── cache_tool.py  # cache_info
    └── report.py      # generate_report — HTML output

Configuración

Todos los ajustes mediante .env o variables de entorno:

VariablePredeterminadoDescripción
GROQ_API_KEYRequerido. Obténlo en console.groq.com
GROQ_MODELllama-3.3-70b-versatileModelo de Groq a usar
CACHE_TTL3600TTL de caché en segundos
CACHE_MAX200Máximo de entradas en caché

Modelos de Groq disponibles

ModeloVelocidadCalidad
llama-3.3-70b-versatileRápidoMejor (predeterminado)
llama-3.1-8b-instantMás rápidoBueno
mixtral-8x7b-32768RápidoExcelente

Contribuciones

Se aceptan PRs e Issues. Lo más solicitado:

  • Soporte para otros proveedores de LLM (OpenAI, Anthropic)
  • Nuevas herramientas: auditoría de dependencias, puntuación de complejidad, generador de docstrings
  • Mejoras de prompts y soporte para nuevos idiomas

Licencia

MIT — haz lo que quieras. Una estrella sería apreciada.


Enlaces