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).
Claude / Cursor / VS Code ──MCP──► code-sanitizer ──REST──► Groq API
(server.py) (llama-3.3-70b)
Características
| Herramienta | Qué hace |
|---|---|
analyze_code | Revisión estricta — errores, problemas de seguridad, puntuación 0–100 |
compare_code | Compara dos versiones, detecta regresiones, recomienda merge/request_changes |
explain_code | Explicación paso a paso para audiencia junior / middle / senior |
generate_tests | Genera pytest / jest / go test — camino feliz, casos límite, seguridad |
analyze_file | Analiza un archivo completo desde el disco con fragmentación paralela |
generate_report | Construye un informe HTML a partir de cualquier resultado de análisis |
cache_info | Estadí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
| SO | Archivo 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 conpip install uvy 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:
| Variable | Predeterminado | Descripción |
|---|---|---|
GROQ_API_KEY | — | Requerido. Obténlo en console.groq.com |
GROQ_MODEL | llama-3.3-70b-versatile | Modelo de Groq a usar |
CACHE_TTL | 3600 | TTL de caché en segundos |
CACHE_MAX | 200 | Máximo de entradas en caché |
Modelos de Groq disponibles
| Modelo | Velocidad | Calidad |
|---|---|---|
llama-3.3-70b-versatile | Rápido | Mejor (predeterminado) |
llama-3.1-8b-instant | Más rápido | Bueno |
mixtral-8x7b-32768 | Rápido | Excelente |
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.