Guía por archivo
Servidores MCP en un repositorio: procesos que arrancan con tu sesión
Un servidor MCP no es un archivo de datos: es un programa que tu agente o tu editor lanza para darse herramientas. Cuando la lista de servidores viene en el repositorio, quien lo escribió elige qué programa arranca en tu máquina.
Lo medimos
de los 9,997 repositorios más populares de GitHub tienen al menos un hallazgo de la familia mcp.
repositorios declaran servidores MCP u otra configuración MCP que revisar.
Qué se ejecuta y cuándo
El archivo .mcp.json en la raíz del proyecto declara servidores con un command y sus args. Claude Code los lee al iniciar sesión en esa carpeta; VS Code usa .vscode/mcp.json y Cursor .cursor/mcp.json. Al aprobarlos, cada servidor se arranca como proceso local con tus permisos y sigue vivo mientras dure la sesión.
El caso que más se repite es command: "npx" con args ["-y", "paquete@latest"], o su equivalente uvx en Python. Eso descarga del registro la última versión publicada y la ejecuta, cada vez, sin lockfile que fije qué código corre. Si el paquete cambia de manos o publica una versión maliciosa, la siguiente sesión la ejecuta.
Lo que ya ha pasado
Según The Register, la vulnerabilidad CVE-2025-59536 de Claude Code permitía que un .mcp.json, junto con dos ajustes controlados por el repositorio que aprobaban todos los servidores, ejecutara un comando al arrancar, antes de que el usuario pudiera leer el aviso de confianza. Está corregida desde septiembre de 2025.
Según The Hacker News, en septiembre de 2025 apareció en npm postmark-mcp, una copia de un servidor MCP de correo que en su versión 1.0.16 añadió una línea para enviar en copia oculta cada email a una dirección externa. Quien lo ejecutaba con @latest recibió el cambio sin hacer nada.
Cómo revisarlo a mano
Lee cada servidor declarado: qué comando lanza, con qué argumentos y con qué variables de entorno. Desconfía de npx -y o uvx sin versión exacta, de URLs en los argumentos y de servidores que no reconoces. Fija la versión (paquete@1.2.3) o instálalo tú y apunta a esa copia.
Comprueba también si la configuración del propio repositorio intenta aprobar servidores por ti. Aprobarlos debería ser siempre tu decisión, uno por uno.
cat .mcp.json .vscode/mcp.json .cursor/mcp.json 2>/dev/nullgrep -rnE '"(npx|uvx)"|@latest' .mcp.json .vscode .cursor 2>/dev/nullgrep -rn -i mcp .claude/settings.json 2>/dev/nullQué marca Onopen
El escáner mcp lee .mcp.json, .vscode/mcp.json, .cursor/mcp.json y los servidores declarados dentro de la configuración de los agentes. Marca los servidores que se lanzan al iniciar la sesión y, aparte, los que descargan y ejecutan con npx o uvx sin lockfile.
Como los ajustes que aprueban servidores viven en la configuración del agente, pasa también el escáner agents.
onopen --only mcp,agents --explain ./repoPreguntas frecuentes
¿Qué es un servidor MCP?
Un proceso que un agente o un editor arranca para darse herramientas, por ejemplo leer una base de datos o enviar correo. Habla con el agente por el Model Context Protocol y corre en tu máquina con tus permisos.
¿Es peligroso npx -y en un .mcp.json?
No siempre es malicioso, pero ejecuta la última versión del registro cada vez, sin fijar qué código corre. Fijar una versión exacta reduce mucho el riesgo.
¿Basta con no aprobar los servidores del proyecto?
Es el paso más importante. Revisa además que el repositorio no traiga ajustes que los aprueben por ti y mantén el agente actualizado.
Fuentes
Otras guías
Revisa un repositorio antes de abrirlo
Onopen es gratis y de código abierto. Lee la configuración, no ejecuta nada y no abre ninguna conexión.