Critic-MCP
Critic-MCP — El Crítico Despiadado de Código
Un servidor de código abierto del Protocolo de Contexto de Modelo (MCP) que revisa — solo lectura — el código producido por otros asistentes de codificación de IA (Cursor, OpenCode, Cline, etc.).
Critic-MCP es un "segundo par de ojos": nunca arregla tu código, solo lo critica sin piedad. Expone una sola herramienta (review_code) y no tiene absolutamente ninguna capacidad de escritura de archivos.
¿Qué hace?
La herramienta review_code compara el código que envías con el requisito original (intención) y, a través de un LLM, produce un informe de revisión con las siguientes secciones:
Veredicto:
APPROVED|MODIFICATION_REQUIRED|REJECTEDRequisitos Faltantes — la brecha entre la intención y el código
Hallazgos de Seguridad — Inyección SQL, XSS, escalada de privilegios, secretos codificados
Hallazgos de Casos Límite — entradas nulas/vacías, valores límite, error por uno, condiciones de carrera
Hallazgos de Rendimiento — consultas N+1, fugas de memoria, cómputo redundante
Otros Hallazgos + Elementos de Corrección Obligatoria (en orden de prioridad)
Instalación — Dos Pasos
Requisito: Node.js >= 20
Paso 1: Autenticarse (una vez)
Ejecuta la configuración interactiva, que funciona igual que aws configure o gh auth login:
npx -y critic-mcp authPregunta qué proveedor usas (gemini / openai / deepseek), solicita tu clave API y guarda ambas en ~/.critic-mcp.json en tu directorio de inicio (permisos 0600 en Unix).
Paso 2: Añadirlo a tu IDE
Añade solo esto a la configuración MCP de tu IDE:
{ "command": "npx", "args": ["-y", "critic-mcp"] }Consulta la sección Integración con Asistentes de IA para detalles específicos del cliente. Eso es todo — tus claves ahora viven en un solo lugar, fuera de cada configuración del IDE.
Las claves nunca se escriben en las configuraciones del IDE. Cuando el servidor se inicia, primero busca en
process.env, luego en~/.critic-mcp.json; si no se encuentra una clave en ninguno, te dirige anpx critic-mcp auth.
Desarrollo local (instalar desde la fuente)
git clone https://github.com/layermedya/Critic-MCP.git
cd Critic-MCP
npm ci
npm run build
node dist/index.js auth # authenticate against your own buildComandos
npm run build # TypeScript compilation
npm run typecheck # Type checking
npm test # Vitest unit tests
npm run test:watch # Tests in watch mode
npm start # Start the server on stdio
npm run inspect # Manual testing in the browser via MCP InspectorVariables de Entorno (opcional)
Todas son opcionales; la ruta normal para las claves API es npx critic-mcp auth. Las variables de entorno siempre tienen prioridad sobre el archivo de configuración (para configuraciones de CI/servidor).
Variable | Descripción |
|
|
| Clave de Gemini (anula el archivo cuando se establece) |
| Clave de OpenAI/DeepSeek (anula el archivo cuando se establece) |
| Nombre del modelo Gemini (predeterminado: |
| Nombre del modelo (predeterminado: |
| URL base para DeepSeek, etc. (deepseek predeterminado a |
| Tiempo de espera de solicitud LLM (predeterminado: |
| Límite de fragmentación (predeterminado: |
| Solicitudes paralelas durante la revisión fragmentada (predeterminado: |
| Anula la ubicación del archivo de configuración (predeterminado: |
Integración con Asistentes de IA
Ninguna de las configuraciones a continuación lleva claves; te autenticas una vez a través del comando auth (Paso 1 arriba). npx requiere que el paquete esté publicado en npm; para un clon local puedes usar en su lugar "command": "node", "args": ["ABSOLUTE_PATH/dist/index.js"].
Cursor
En el archivo .cursor/mcp.json del proyecto (o el global ~/.cursor/mcp.json):
{
"mcpServers": {
"critic": {
"command": "npx",
"args": ["-y", "critic-mcp"]
}
}
}Alternativamente: Configuración → MCP → Añadir nuevo servidor MCP, luego pega el JSON.
OpenCode
En el archivo .opencode/opencode.json del proyecto o el global ~/.config/opencode/opencode.json:
{
"mcp": {
"critic": {
"type": "local",
"command": ["npx", "-y", "critic-mcp"],
"enabled": true
}
}
}OpenCode usa la clave
mcp(nomcpServers) y el campoenvironment(noenv);commanddebe ser un array. Ya no necesitas escribir claves en un bloqueenvironment.
Cline (extensión de VS Code)
Abre el panel de Cline → pestaña MCP Servers → Editar MCP Global o Editar MCP del Proyecto, luego edita el JSON:
{
"mcpServers": {
"critic": {
"command": "npx",
"args": ["-y", "critic-mcp"],
"disabled": false,
"autoApprove": ["review_code"]
}
}
}
autoApprovepermite que Cline ejecutereview_codesin confirmación; es seguro porque la herramienta nunca escribe archivos.
Continue.dev
Añade el servidor MCP a ~/.continue/config.json (el transporte stdio es compatible independientemente de tu versión de Continue):
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"type": "stdio",
"command": "npx",
"args": ["-y", "critic-mcp"]
}
}
]
}
}Escenario de Prueba Manual
examples/bad_code.js es un ejemplo de Express que contiene deliberadamente inyección SQL, XSS y consultas N+1; examples/intent.txt contiene el requisito original. Invócalo desde cualquier cliente de la siguiente manera:
"Revisa el código en examples/bad_code.js con la herramienta review_code. Requisito: examples/intent.txt"
Espera que el crítico detecte al menos lo siguiente:
CRÍTICO:
db.query("SELECT * FROM users WHERE email = '" ...)— Inyección SQLCRÍTICO:
res.send(comment.body)— XSS almacenadoALTO: Una consulta separada por usuario — problema N+1
Arquitectura
src/index.ts -> MCP server, zod validation, error handling + `auth` argv routing
src/cli.ts -> Interactive authentication flow (`critic-mcp auth`)
src/config.ts -> Global config (~/.critic-mcp.json) + credential resolution (env → file)
src/prompt.ts -> Ruthless Critic system prompt + chunked-review prompts
src/llm.ts -> Provider layer + timeout protection + map-reduce orchestration
src/chunker.ts -> Line-ending based chunking (for code above the limit)Revisión fragmentada (map-reduce)
Cuando code_snippet excede CHUNK_SIZE (predeterminado 30,000 caracteres), el sistema cambia automáticamente a un flujo map-reduce:
Mapa: El código se divide en los límites de línea; cada fragmento se envía al LLM de forma concurrente (predeterminado 3 solicitudes paralelas, configurable mediante
CRITIC_CONCURRENCY). Un fallo de un solo fragmento nunca detiene toda la revisión.Reducción: Todos los análisis parciales devueltos se fusionan mediante el prompt "Sintetizador" — que nunca debilita los hallazgos y nunca devuelve APPROVED cuando una sola parte reporta CRÍTICO — en un informe final.
El servidor solo devuelve un informe de cadena; no tiene capacidad de escritura de archivos y nunca expone un cliente de red hacia afuera.
Licencia
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server for structured code review passes on human- and AI-written code. Free tier.
Scans MCP servers for tool poisoning, prompt injection and supply chain risks.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/layermedya/Critic-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server