Seguridad de la herramienta de WebMCP

Julia Pagnucco
Julia Pagnucco
Alexandra Klepper
Alexandra Klepper

Fecha de publicación: 9 de junio de 2026

Video explicativo Web Extensiones Estado de Chrome Intención
GitHub Prueba de origen Prueba de origen Ver Intención de experimentar

Puedes usar el Protocolo de contexto del modelo web (WebMCP) para compilar y exponer herramientas estructuradas a agentes de IA que se ejecutan en el navegador, incluidos los agentes con tecnología de extensiones. Un agente usa un modelo de lenguaje grande (LLM), reglas, memoria y herramientas para ejecutar acciones en nombre del usuario.

Como los LLM tratan todo el texto, las instrucciones y los datos del usuario como una sola secuencia de tokens, son susceptibles a la inyección indirecta de instrucciones, que es la inclusión de instrucciones maliciosas por parte de un atacante. Nuestro equipo escribió este documento sobre la seguridad de las herramientas para ayudarte a proteger tu sitio web y a tus usuarios de los actores maliciosos.

Si bien algunos modelos tienen capas que abordan la inyección de instrucciones, es imposible garantizar la seguridad dentro de un modelo de lenguaje grande (LLM). Los modelos son probabilísticos por naturaleza. Es importante recordar que se produjeron ataques repetibles de inyección de instrucciones contra sistemas de agentes que usan LLM de vanguardia, y la prevalencia de ataques en la Web está aumentando.

Para abordar estas inquietudes, proporcionamos orientación preliminar sobre la seguridad para quienes compilan herramientas con WebMCP.

Usa sugerencias de anotación

Hay algunas sugerencias que debes agregar cuando compiles tus herramientas:

  • Usa untrustedContentHint cuando corresponda. Si una herramienta muestra contenido generado por usuarios (CGU) o datos de fuentes externas, considera agregar untrustedContentHint a la herramienta. Este campo etiqueta explícitamente la carga útil como no confiable para ayudar a proteger la integridad de tu sitio y, al mismo tiempo, proporcionar una señal al agente de que estos datos requieren un mayor escrutinio.
  • Usa readOnlyHint en herramientas que no cambian de estado. Esto permite que el agente tome mejores decisiones sobre cuándo solicitar confirmaciones del usuario.

Expón tus herramientas con cuidado

La API de WebMCP document.modelContext.registerTool solo expone la funcionalidad de la herramienta a los agentes. De forma predeterminada, otros sitios web o iframes de origen cruzado no pueden observar ni interactuar con tus herramientas.

Puedes proporcionar acceso a tu herramienta con la exposedTo opción en registerTool a un array de orígenes seguros y específicos. Esto expone tu herramienta a esos orígenes cuando se incorporan en tu sitio y cuando tu sitio se incorpora en ese origen.

// https://partner.org

document.modelContext.registerTool({
  name: 'my_shared_tool',
  description: 'Shared across origins',
  // ...
}, {
  exposedTo: ['https://trusted.com', 'https://example.com']
});

Solo expón tus herramientas a orígenes en los que confíes. Esto es especialmente importante cuando las herramientas administran datos del usuario o afectan al usuario de alguna otra manera.

  • Una herramienta de solo lectura, como getFavoriteProducts, puede revelar información sobre un usuario. Solo debes exponer estas herramientas a los sitios web con los que compartirías directamente estos datos.
  • Las herramientas con acceso de lectura y escritura realizan acciones en nombre de un usuario. Estas herramientas solo deben exponerse a los orígenes que decidas que se pueden confiar cuando actúen en nombre de tu usuario. Por ejemplo, es posible que quieras exponer postComment a trustedExample.com, pero no a evilExample.com.

Establece presupuestos de caracteres

Para evitar los límites de los agentes, escribe descripciones y resultados de herramientas concisos. Te recomendamos los siguientes límites de caracteres para obtener mejores resultados:

  • 500 caracteres por descripción de la herramienta
  • 150 caracteres por descripción del parámetro
  • 30 caracteres por nombre de la herramienta y nombre del parámetro
  • Límite de 1,500 caracteres por resultado de herramienta individual

Es probable que haya alguna variación entre los agentes, y es posible que quieras ajustar tus presupuestos de caracteres con los comentarios de los usuarios.

Próximos pasos

Seguimos investigando y trabajando en la creación de una infraestructura segura para la Web de agentes. Por ejemplo, hay un debate en curso sobre la administración del consentimiento entre las partes, y el borrador de la especificación incluye requestUserInteraction() para solicitar de forma asíncrona la entrada del usuario en la ejecución de la herramienta.

¿Cómo planeas implementar WebMCP en tu aplicación? ¿Tienes otras inquietudes, de seguridad o de otro tipo? Si te registras en la prueba de origen de WebMCP, queremos conocer tu experiencia:

Si compilas un agente, te recomendamos que leas Consideraciones de seguridad del agente para WebMCP.