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.

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.

| Servidor local (stdio) | Servidor remoto (HTTP) |
|---|
| Se ejecuta en | Tu propio equipo | Infraestructura de otra persona |
| El código se ejecuta con | Los permisos de tu usuario | Los permisos del proveedor |
| Riesgo principal | Un paquete malicioso se ejecuta en tu equipo | Tus 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 defensa | Sandbox, versiones fijadas, acceso de solo lectura | Tokens 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.

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.
| Riesgo | Cómo funciona | Ejemplo real | Primera defensa |
|---|
| Envenenamiento de herramientas | Instrucciones ocultas en la descripción de una herramienta | Demostraciones de Invariant Labs, 2025 | Leer las definiciones completas, fijar versiones |
| Inyección de prompts | Instrucciones ocultas en contenido que lee el agente | Filtración del repositorio privado vía GitHub MCP | Separar los datos privados de la entrada no confiable |
| Servidor malicioso | Puerta trasera dentro de un paquete que instalaste | postmark-mcp, septiembre de 2025 | Preferir servidores auditados y mantenidos |
| Rug pull | Las definiciones cambian después de la aprobación | Patrón señalado por investigadores | Fijar versiones, revisar en cada actualización |
| Error del cliente | Inyección de comandos mediante un servidor hostil | CVE-2025-6514 en mcp-remote | Parchear 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

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.

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.

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.

Vigila cuatro señales de alarma:
- Llamadas salientes que no esperabas.
- Definiciones de herramientas que cambiaron desde que las aprobaste.
- Lecturas grandes de archivos que no tienen relación con la tarea.
- 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

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 herramienta | Ejemplo | Política de aprobación |
|---|
| Solo lectura, riesgo bajo | Buscar en un sitio de documentación, leer un archivo del proyecto | Permitir automáticamente |
| Escribe datos | Editar un archivo, crear una incidencia | Preguntar una vez por sesión |
| Envía datos hacia fuera | Correo, publicar en un webhook, subir archivos | Preguntar siempre |
| Destructiva o costosa | Eliminar, desplegar, gastar dinero | Preguntar 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
- Abre la página de Llama Guard 4 12B en PicassoIA.
- 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.
- 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."
- 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.
- 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.

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.