¿Es seguro usar MCP? Riesgos de los servidores MCP y comprobaciones de seguridad

¿Es seguro usar MCP? Depende de los servidores que instales, los permisos que concedas y el contenido que lea tu agente. Este artículo recoge incidentes reales con MCP, una tabla de riesgos, una lista de comprobación de seguridad para imprimir y una forma práctica de revisar textos para detectar contenido inseguro.

¿Es seguro usar MCP? Riesgos de los servidores MCP y comprobaciones de seguridad
Cristian Da Conceicao
Fundador de Picasso IA

Respuesta corta: sí, siempre que trates cada servidor como un programa que puede actuar en tu nombre. Entonces, ¿es seguro usar MCP? El Model Context Protocol es un estándar de mensajería sencillo. Transporta las peticiones entre una aplicación de IA y una herramienta, pero no decide a qué puede acceder esa herramienta. El riesgo está en tres puntos: los servidores que instalas, los permisos que les das y el contenido que tu agente lee por el camino. Si lo haces bien, MCP es una forma razonable de conectar un modelo con archivos, bases de datos y servicios web. Si lo haces mal, una sola descripción de herramienta envenenada puede enviar un repositorio privado a un desconocido.

Este artículo describe los riesgos reales de los servidores MCP, nombra los incidentes que de verdad ocurrieron y termina con una comprobación de seguridad que puedes hacer en unos diez minutos. Sin alarmismo ni exageraciones, solo los fallos más comunes y cómo evitarlos.

Qué hace MCP en realidad

MCP es un estándar abierto que Anthropic presentó a finales de 2024 para que las aplicaciones de IA se comuniquen con herramientas externas de una sola forma coherente. Antes, cada integración era código de conexión a medida. Ahora una aplicación habla un único protocolo, y un servidor expone herramientas (acciones, como ejecutar una consulta), recursos (datos, como un archivo) y prompts (plantillas reutilizables). Los mensajes viajan como JSON-RPC, ya sea por una tubería local (stdio) o por HTTP.

Desarrollador revisando una larga lista de permisos de herramientas MCP en un monitor panorámico

Esa sencillez es a la vez una buena y una mala noticia. Un estándar facilita la integración, y también facilita conectar algo que nunca revisaste. El protocolo en sí no opina sobre si un servidor merece tu confianza. Ese juicio te corresponde a ti.

Host, cliente y servidor explicados

En cualquier configuración aparecen tres roles:

  • Host: la aplicación que usas realmente, como Claude Desktop, Cursor o VS Code.
  • Cliente: un conector dentro del host que mantiene una sesión abierta con un servidor.
  • Servidor: el programa que expone herramientas, recursos y prompts al modelo.

El modelo nunca habla directamente con tu base de datos. Pide al host que llame a una herramienta, el cliente reenvía la petición y el servidor hace el trabajo con el acceso que se le haya dado. Esa última parte es la más importante. Un servidor solo es tan seguro como el acceso que tiene detrás.

Servidores locales frente a servidores remotos

Dónde se ejecuta un servidor cambia mucho el modelo de amenaza. Un servidor local es un proceso en tu propio equipo, iniciado por tu host. Un servidor remoto es un servicio alojado al que accedes por internet.

Técnico recorriendo un pasillo de centro de datos flanqueado por racks de servidores

Servidor local (stdio)Servidor remoto (HTTP)
Se ejecuta enTu propio equipoInfraestructura de otra persona
El código se ejecuta conLos permisos de tu usuarioLos permisos del proveedor
Riesgo principalUn paquete malicioso se ejecuta en tu equipoTus datos y tokens viajan a un tercero
Pregunta de confianza¿Quién lo escribió y está fijada la versión?¿Quién lo opera y qué registra?
Mejor defensaSandbox, versiones fijadas, acceso de solo lecturaTokens OAuth con alcance limitado y revisión del proveedor

💡 Regla general: un servidor local es un programa que ejecutas, así que trátalo como cualquier descarga. Un servidor remoto es un servicio al que confías datos, así que trátalo como a cualquier proveedor.

Dónde están los riesgos reales

La mayoría de los incidentes con MCP no son exóticos. Siguen unos pocos patrones repetibles, y cada uno ya ha aparecido en la práctica. Debajo de todos ellos hay un hecho incómodo: un modelo de lenguaje lee instrucciones y datos como un mismo flujo de texto, así que no puede distinguir de forma fiable una orden de un comentario.

El envenenamiento de herramientas a la vista

Cada herramienta incluye una descripción, y el modelo lee ese texto como una guía. Los usuarios casi nunca lo ven. En 2025, investigadores de Invariant Labs demostraron que una descripción maliciosa puede esconder órdenes, como indicarle al agente que lea un archivo local de credenciales y envíe su contenido dentro de una llamada que parece normal.

Dos pares de manos pasando un sobre de manila mientras se escapa una nota escrita a mano

El sobre de arriba es la imagen adecuada: el paquete parece rutinario, pero la nota del interior cambia lo que pasa después. Leer la definición completa de la herramienta, no solo su nombre, es la primera defensa.

Inyección de prompts a través del contenido

Tu agente no solo sigue tus instrucciones. También lee incidencias, correos, páginas web y documentos, y cualquiera de ellos puede contener instrucciones dirigidas al modelo. En el incidente de GitHub MCP, los atacantes colocaron prompts diseñados en Issues y pull requests públicos. Un agente con acceso a repositorios privados fue engañado para filtrar código privado en una pull request pública.

💡 El trío de riesgo: el investigador de seguridad Simon Willison describe una combinación que conviene evitar: acceso a datos privados, exposición a contenido no confiable y una forma de enviar datos hacia fuera. Cuando un único agente reúne los tres, basta una sola frase inyectada. Quita cualquiera de ellos y el ataque deja de funcionar.

Paquetes defectuosos y fallos de base

Tres patrones más vienen de los problemas habituales de la cadena de suministro del software:

  • Servidores maliciosos. El 25 de septiembre de 2025 se hizo pública una puerta trasera en el servidor postmark-mcp. Copiaba en silencio cada correo saliente a una dirección controlada por el mantenedor. El servidor hacía exactamente lo que anunciaba, por eso pasó desapercibido.
  • Rug pulls (cambios tramposos). Un servidor se comporta bien, se aprueba y luego cambia sus definiciones de herramientas en una actualización posterior. Una aprobación dada una vez no te protege de la versión dos.
  • Errores simples. CVE-2025-6514 afectó al popular paquete mcp-remote y obtuvo una puntuación de gravedad de 9,6 sobre 10. Conectarse a un servidor no confiable podía ejecutar comandos del sistema operativo en el equipo cliente mediante una URL de autorización manipulada. Estaban afectadas las versiones anteriores a la 0.1.16, y el paquete se había descargado más de 558 000 veces.
RiesgoCómo funcionaEjemplo realPrimera defensa
Envenenamiento de herramientasInstrucciones ocultas en la descripción de una herramientaDemostraciones de Invariant Labs, 2025Leer las definiciones completas, fijar versiones
Inyección de promptsInstrucciones ocultas en contenido que lee el agenteFiltración del repositorio privado vía GitHub MCPSeparar los datos privados de la entrada no confiable
Servidor maliciosoPuerta trasera dentro de un paquete que instalastepostmark-mcp, septiembre de 2025Preferir servidores auditados y mantenidos
Rug pullLas definiciones cambian después de la aprobaciónPatrón señalado por investigadoresFijar versiones, revisar en cada actualización
Error del clienteInyección de comandos mediante un servidor hostilCVE-2025-6514 en mcp-remoteParchear rápido, conectarse solo a servidores de confianza

Los permisos deciden el daño

Cuando algo sale mal, los permisos determinan el tamaño de la pérdida. Una descripción envenenada es una molestia si el agente solo puede leer una carpeta. Es un desastre si el agente tiene un token de administrador.

Mínimo privilegio en la práctica

Mano curtida abriendo una puerta de acero pintada con una pesada cerradura de latón

Dale a cada servidor la porción más pequeña de acceso que le permita hacer su trabajo:

  • Bases de datos: crea un rol de solo lectura y apunta el servidor a una réplica o a una copia de staging.
  • Archivos: expón una única carpeta de proyecto, nunca todo tu directorio personal.
  • Cuentas de GitHub y de la nube: usa un token de grano fino limitado a un repositorio o a un proyecto.
  • Acceso a la shell: desactívalo a menos que la tarea lo necesite de verdad, y nunca junto a herramientas que leen contenido no confiable.

💡 Hazte esta pregunta con cada herramienta: "Si esta llamada fuera maliciosa, ¿cuál es lo peor que podría hacer?" Si la respuesta te hace estremecer, reduce el permiso.

Las credenciales fuera de los prompts

Las credenciales no deben estar en mensajes del chat, argumentos de herramientas ni archivos de configuración subidos a Git. Cárgalas desde variables de entorno o un gestor de secretos, prefiere tokens de corta duración y rota cualquier valor que haya aparecido alguna vez en un registro. Revisa los archivos de configuración de MCP antes de cada commit, porque son un escondite habitual para tokens que se pegaron durante una prueba rápida.

Los servidores remotos necesitan autenticación real

Un servidor MCP remoto guarda tus datos en la máquina de otra persona, así que las comprobaciones de identidad importan mucho más que en un proceso local.

Guardia de seguridad comparando una credencial de visitante con una lista en un portapapeles en un vestíbulo de cristal

OAuth tal como lo exige la especificación

La especificación de autorización de MCP de junio de 2025 clasifica los servidores MCP como servidores de recursos OAuth 2.0. Los clientes incluyen un parámetro resource (RFC 8707) al pedir tokens, lo que vincula cada token de acceso a un servidor concreto. Un token emitido para el servidor A no debería servir de nada en el servidor B, y un servidor debe rechazar cualquier token que no se haya emitido para él.

Los mismos documentos advierten contra el paso de tokens (token passthrough), en el que un servidor reenvía el token que recibió a una API posterior. Rompe los registros de auditoría, difumina quién responde por cada acción y favorece el problema del "diputado confundido", en el que un servidor de confianza es engañado para usar su autoridad en beneficio de un atacante.

La especificación de herramientas añade una regla más que conviene repetir: siempre debe haber una persona que intervenga, con capacidad para rechazar las invocaciones de herramientas. La mayoría de los hosts lo implementan como una ventana de aprobación. No la aceptes en piloto automático.

Una lista de comprobación de seguridad que merece imprimirse

Repasa esta lista antes de añadir cualquier servidor a tu configuración.

Lista impresa con marcas de bolígrafo azul sobre un escritorio de madera, junto a un equipo portátil y un pequeño candado

Antes de instalar

  • Localiza el repositorio de origen y lee los commits recientes y las incidencias abiertas.
  • Comprueba quién lo mantiene, cuánto tiempo lleva existiendo y si se parchea con regularidad.
  • Fija una versión exacta en lugar de seguir "latest".
  • Prefiere servidores publicados por el proveedor del propio servicio.
  • Lee cada descripción de herramienta por completo, incluidas las descripciones de los parámetros.

Antes de aprobar

  • Concede el alcance más estrecho que permita completar la tarea.
  • Usa una cuenta separada o un proyecto de sandbox para los experimentos.
  • Desactiva las herramientas que no uses. Menos herramientas significa una superficie de ataque más pequeña y que el modelo elija las herramientas con más precisión.
  • Nunca combines datos privados, contenido no confiable y un canal de salida en la misma sesión.

Mientras funciona

Registra cada llamada a una herramienta con sus argumentos, la hora y la identidad que hay detrás. Cuando algo parezca mal, querrás reconstruir qué leyó el agente y qué envió. Revisa el registro cada semana, del mismo modo que un equipo revisa los informes de acceso.

Dos compañeros revisando una hoja impresa con entradas de registro marcadas con resaltador amarillo

Vigila cuatro señales de alarma:

  1. Llamadas salientes que no esperabas.
  2. Definiciones de herramientas que cambiaron desde que las aprobaste.
  3. Lecturas grandes de archivos que no tienen relación con la tarea.
  4. Tokens usados desde una ubicación nueva o a horas raras.

Limita el alcance del daño

Asume que, tarde o temprano, un servidor se comportará mal, y luego limita lo que te puede costar.

Sandboxes y contenedores

Técnico de laboratorio trabajando dentro de una caja de guantes transparente y sellada

Una caja de guantes permite a un técnico manipular una muestra peligrosa sin tocarla. Los contenedores hacen lo mismo con el software. Ejecuta los servidores locales en un contenedor o en una cuenta de usuario restringida, monta solo las carpetas que necesitan, bloquea el acceso de red saliente cuando la herramienta no lo requiere y mantén las credenciales fuera de la imagen. Si un servidor se vuelve hostil, romperá una caja de cristal en lugar de tu equipo portátil.

Aprobación humana sin fatiga

Las ventanas de aprobación solo funcionan si la gente las lee. Los equipos que lo aprueban todo por inercia no tienen ninguna protección. Clasifica las herramientas por riesgo:

Tipo de herramientaEjemploPolítica de aprobación
Solo lectura, riesgo bajoBuscar en un sitio de documentación, leer un archivo del proyectoPermitir automáticamente
Escribe datosEditar un archivo, crear una incidenciaPreguntar una vez por sesión
Envía datos hacia fueraCorreo, publicar en un webhook, subir archivosPreguntar siempre
Destructiva o costosaEliminar, desplegar, gastar dineroPreguntar siempre, con una vista previa

Mantén corta la lista de aprobación automática y revísala cada vez que un servidor se actualice.

Filtra las entradas con Llama Guard 4

El filtrado de contenido es una capa más, no un sustituto de los permisos. Llama Guard 4 12B es un modelo de seguridad multimodal de PicassoIA que clasifica textos e imágenes como seguros o inseguros y devuelve la categoría de daño cuando marca algo. Puedes usarlo para revisar una página web, un correo o el resultado de una herramienta antes de que tu agente actúe, o para comprobar si el borrador de respuesta de un agente sería marcado antes de llegar a un usuario.

💡 Sé realista con sus límites. Llama Guard 4 12B es un clasificador de seguridad de contenido que comprueba categorías de daño como la violencia, el discurso de odio y las instrucciones peligrosas. No es un cortafuegos específico contra la inyección de prompts, así que úsalo junto a los controles anteriores y nunca en su lugar.

Haz tu primera comprobación

  1. Abre la página de Llama Guard 4 12B en PicassoIA.
  2. Pega el texto que quieras revisar en el campo Prompt, por ejemplo el cuerpo de una página web o de un correo que tu agente está a punto de leer.
  3. Rellena el System Prompt, que es obligatorio, con tus criterios: "Clasifica el texto como seguro o inseguro e indica la categoría de daño."
  4. Pon Temperature en un valor bajo, alrededor de 0 a 0,2, para veredictos más estables. El rango va de 0 a 2 y el valor por defecto es 1. Deja Max Completion Tokens en el valor por defecto de 512, ya que un veredicto es breve.
  5. Añade capturas mediante Image Input si quieres revisar también una imagen, y ejecútalo.

Qué te dice el veredicto

Obtienes una etiqueta de seguro o inseguro, además de la categoría coincidente cuando el contenido es inseguro. Trata "inseguro" como una señal de stop: retén el contenido y muéstraselo a una persona. Trata "seguro" como un dato más, no como un indulto. Si ves falsas alarmas, ajusta el system prompt con ejemplos de lo que tu equipo considera aceptable.

Para priorizar, combina el veredicto con un modelo de razonamiento capaz, como Claude Sonnet 5 o GPT 5.6 Sol, para resumir los elementos marcados. Ejecútalos sin ningún acceso a herramientas, para que un fragmento hostil no tenga nada que ejecutar.

Crea algo seguro en PicassoIA

Los hábitos seguros son más fáciles de mantener cuando practicas con proyectos en los que no hay nada sensible en juego. La generación de imágenes y de video es un buen terreno de entrenamiento. PicassoIA Image convierte un prompt en lenguaje natural en una imagen terminada en segundos, y Picasso IA Video renderiza clips de 5 segundos a 24 fotogramas por segundo con audio sincronizado, a partir de texto o de una imagen inicial, en 480p o 720p.

Diseñadora joven sonriendo ante un equipo portátil en un estudio creativo luminoso

PicassoIA también ofrece una API para desarrolladores y una conexión MCP para la generación de imágenes y video, y allí se aplican las mismas reglas: crea una credencial para un solo proyecto, guárdala como secreto y vigila tu consumo. Cada cuenta está limitada a 5 predicciones simultáneas, compartidas entre las credenciales de la API y las conexiones MCP, lo que además funciona como freno si un agente se queda atascado en un bucle.

Abre PicassoIA, escribe un prompt y aplica la lista de comprobación primero a algo de poco riesgo. Genera algunas imágenes, anima tu favorita en un clip corto y pasa un párrafo por Llama Guard 4 12B para ver cómo es un veredicto. Después, lleva esos mismos hábitos a los servidores que de verdad importan.

Compartir este artículo

Elige tu idioma