Publicado el 9 de junio de 2026
Puedes usar el Protocolo de contexto del modelo web (WebMCP) para compilar y exponer herramientas estructuradas a los agentes de IA que se ejecutan en el navegador, incluidos los agentes potenciados por extensiones. Un agente usa un modelo de lenguaje grande (LLM), reglas, memoria y herramientas para ejecutar acciones en nombre del usuario.
Dado que 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 las personas que actúan de mala fe.
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 han producido ataques de inyección de instrucciones repetibles contra sistemas basados en agentes que utilizan LLM de estado del arte, y la prevalencia de ataques en la Web está aumentando.
Para abordar estas inquietudes, proporcionamos orientación preliminar sobre la seguridad para quienes crean herramientas con WebMCP.
Cómo usar sugerencias de anotaciones
Hay algunas sugerencias que debes agregar cuando compiles tus herramientas:
- Usa
untrustedContentHintcuando corresponda. Si una herramienta devuelve contenido generado por usuarios (CGU) o datos de fuentes externas, considera agregar eluntrustedContentHinta 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 un indicador al agente de que estos datos requieren una mayor supervisión. - Usa
readOnlyHinten las 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 document.modelContext.registerTool de WebMCP solo expone la funcionalidad de la herramienta a los agentes. De forma predeterminada, otros sitios web o elementos iframe de origen cruzado no pueden observar ni interactuar con tus herramientas.
Puedes proporcionar acceso a tu herramienta con la opción exposedTo en registerTool a un array de orígenes específicos y seguros. Esto expone tu herramienta a esos orígenes cuando se incorpora 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 del usuario. Estas herramientas solo deben exponerse a los orígenes en los que decidas que se puede confiar cuando actúen en nombre de tu usuario. Por ejemplo, es posible que desees exponer
postCommentatrustedExample.com, pero no aevilExample.com.
Cómo establecer presupuestos de caracteres
Para evitar los parámetros de protección del agente, escribe descripciones y resultados de herramientas concisos. Para obtener mejores resultados, recomendamos los siguientes límites de caracteres:
- 500 caracteres por descripción de la herramienta
- 150 caracteres por descripción del parámetro
- 30 caracteres por nombre de herramienta y nombre de 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 desees ajustar tus presupuestos de caracteres con los comentarios de los usuarios.
Próximos pasos
Seguimos investigando y trabajando para crear una infraestructura segura para la Web de agentes. Por ejemplo, hay una discusión 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, ya sean de seguridad o de otro tipo? Si te registras en la prueba de origen de WebMCP, queremos conocer tu experiencia:
- Comparte tus comentarios sobre la forma de la API comentando un problema existente o abriendo uno nuevo en la explicación de WebMCP en GitHub.
- Si tienes comentarios sobre la implementación de Chrome, informa un error de Chromium.
- Únete al programa de vista previa anticipada para ver las nuevas APIs y acceder a nuestra lista de distribución.
- Revisa la implementación de Chrome en Chrome Status.
Si estás creando un agente, te recomendamos que leas Consideraciones de seguridad del agente para WebMCP.