## ¿Qué es WebMCP?

WebMCP es una propuesta borrador del Community Group de W3C que permite a los agentes de IA interactuar con sitios web *a través del navegador del usuario* en lugar de sobre una API separada. Los sitios anotan formularios HTML existentes con atributos que los declaran como herramientas invocables; el navegador expone esas herramientas a un agente vía una nueva API `navigator.modelContext`. La propuesta está respaldada por Google y Microsoft y está actualmente disponible detrás de una bandera experimental en Chrome Canary.

El nombre es un eco deliberado de [MCP](/kb/es/mcp), el Model Context Protocol de Anthropic, pero los dos son especificaciones distintas que resuelven problemas distintos. MCP define un protocolo JSON-RPC para que un agente llame a herramientas en un servidor. WebMCP define una API del navegador para que un agente llame a herramientas que ya existen como formularios en una página.

## Por qué importa WebMCP

La ruta tradicional para la integración agente-sitio web es: el sitio publica una API ([OpenAPI](/kb/es/openapi)) o un servidor MCP, el agente se autentica por separado y las llamadas corren sobre un canal trasero. Esto funciona para integraciones de agentes de primera parte pero se rompe para la larga cola de sitios web que tienen funcionalidad valiosa pero no tienen un equipo API para construir una superficie paralela.

WebMCP toma el enfoque inverso: el sitio ya tiene un formulario para hacer la cosa, el usuario ya está logueado, el navegador ya tiene la sesión. ¿Por qué construir una API paralela? Anota el formulario existente con unos pocos atributos, y un agente en el navegador puede llamarlo directamente — heredando la auth del usuario, las protecciones CSRF del sitio y el modelo de permisos del navegador gratis.

## Cómo WebMCP difiere de [MCP](/kb/es/mcp)

| | MCP | WebMCP |
|---|---|---|
| Quién llama a quién | Agente → servidor | Agente → navegador → servidor |
| Dónde corre el agente | Fuera del navegador | Dentro o junto al navegador |
| Autenticación | OAuth 2.1 / API keys | La sesión existente del navegador del usuario |
| Transporte | JSON-RPC sobre HTTP/SSE | API interna del navegador (`navigator.modelContext`) |
| Qué construyes en el sitio | Un endpoint MCP dedicado | Anotaciones de atributo en formularios HTML existentes |
| Tiempo de vida de la conexión | Persistente entre sesiones | Termina cuando la pestaña cierra |
| Descubrimiento | Registro MCP / well-known | Escaneo DOM + manifiesto `/.well-known/webmcp.json` |

Las arquitecturas son casi opuestas. MCP da a agentes externos una interfaz backend estable; WebMCP da a agentes en navegador acceso al frontend existente.

## Cómo funciona WebMCP

Hay dos piezas cooperando: **anotaciones DOM** (por página) y un **manifiesto** opcional (por sitio).

**1. Formularios anotados.** Un sitio marca cualquier formulario HTML como invocable por agente con tres atributos personalizados:

```html
<form tool-name="search-products" tool-description="Search the catalog by keyword">
  <input type="text" name="q" tool-param-description="Search query, e.g. 'red shoes'">
  <button type="submit">Search</button>
</form>
```

El runtime WebMCP del lado del navegador escanea el DOM para elementos `tool-name`, construye una lista de herramientas y la expone al agente. Cuando el agente invoca `search-products` con `q: "running shoes"`, el navegador rellena el formulario y lo envía a nombre del agente — a través de la sesión del usuario.

**2. El manifiesto.** Un sitio puede publicar `/.well-known/webmcp.json` declarando herramientas que pueden no ser visibles en cada página:

```json
{
  "spec": "webmcp/0.1",
  "tools": [
    {
      "name": "search-products",
      "description": "Search the product catalog",
      "url": "/search",
      "method": "GET",
      "parameters": [
        {
          "name": "q",
          "type": "string",
          "description": "Search query"
        }
      ]
    }
  ]
}
```

El manifiesto da a los agentes una ruta de descubrimiento que no depende de scraping DOM.

## WebMCP vs otras capas de interop de agentes

| Spec | Dónde vive el agente | Qué se expone | Auth |
|---|---|---|---|
| **WebMCP** | En el navegador | Formularios HTML anotados | Sesión del usuario |
| **[MCP](/kb/es/mcp)** | Fuera del navegador | Herramientas JSON-RPC en un servidor | OAuth / API keys |
| **[A2A](/kb/es/a2a)** | En cualquier lugar | Un agente completo con skills nombrados | Auth a nivel de agente |
| **[OpenAPI](/kb/es/openapi)** | En cualquier lugar | Endpoints REST con schemas | Esquema por endpoint |
| **[SKILL.md](/kb/es/skills)** | En cualquier lugar | Manual de juego prosa | N/A |

WebMCP es el único que corre dentro del navegador del usuario.

## Estado actual

WebMCP es un **Reporte Borrador del Community Group** bajo el W3C Web Machine Learning Community Group. A mediados de 2026:

- La spec está publicada en [webmachinelearning.github.io/webmcp](https://webmachinelearning.github.io/webmcp/).
- La implementación de referencia está detrás de una bandera experimental en Chrome Canary.
- **No** está enviada en ningún navegador de producción.
- Se espera que la spec cambie antes de alcanzar el estado de W3C Working Draft.

Los sitios que envían WebMCP hoy son tempranos — apuestan a que la spec se estabilice y los navegadores la envíen.

## Quién respalda WebMCP

- **Google** — el equipo Chrome publicó la propuesta y envía el prototipo.
- **Microsoft** — co-editor en la spec.
- **W3C Web Machine Learning Community Group** — el cuerpo de gobernanza.

## Cómo añadir WebMCP a tu sitio

1. **Elige los formularios que importan.** No anotes cada formulario.
2. **Añade los atributos.** `tool-name`, `tool-description`, `tool-param-description`.
3. **Usa nombres minúscula-guion.** `search-products`, no `searchProducts`.
4. **Escribe descripciones para un agente, no un humano.**
5. **Publica el manifiesto.** `/.well-known/webmcp.json`.
6. **Prueba en Chrome Canary** con la bandera experimental activada.

## Errores comunes que detectan los escáneres

- **No hay manifiesto** — `/.well-known/webmcp.json` devuelve 404.
- **El manifiesto devuelve HTML** — rutas catch-all SPA.
- **Anotaciones de formulario sin descripciones.**
- **Nombre de herramienta inválido.**
- **Anotaciones en elementos no-form.**

## FAQ

**¿WebMCP es un fork de [MCP](/kb/es/mcp)?**
No. Son specs separadas de grupos de trabajo separados con arquitecturas separadas.

**¿WebMCP de Chrome funcionará en Firefox o Safari?**
No actualmente.

**¿Debo añadir WebMCP si ya tengo MCP?**
Sí si tu servicio tiene un sitio web con formularios que los usuarios rellenan hoy.

**¿AgentGrade penaliza sitios sin WebMCP?**
No.

**¿WebMCP es seguro?**
El modelo de seguridad hereda del navegador: enforcement de same-origin, la sesión existente del usuario, protección CSRF.

**¿Qué reemplaza a `/.well-known/webmcp.json` si alojo mis formularios en un iframe?**
Aplican reglas same-origin.

**¿WebMCP funciona con SPAs?**
Sí, pero los formularios deben estar presentes en el DOM cuando el agente escanea.

**¿Cuándo enviará WebMCP a Chrome estable?**
No hay calendario público.

## Madurez de la especificación

**Borrador, no enviado.** WebMCP es un borrador del Community Group de W3C, disponible detrás de una bandera experimental solo en Chrome Canary.

## Saber más

- [Especificación WebMCP](https://webmachinelearning.github.io/webmcp/) — el borrador W3C
- [Repositorio WebMCP en GitHub](https://github.com/webmachinelearning/webmcp)
- [Chrome: Cuándo usar WebMCP y MCP](https://developer.chrome.com/blog/webmcp-mcp-usage)
- [MCP](/kb/es/mcp) — la contraparte del lado del servidor
- [A2A](/kb/es/a2a) — protocolo agente-a-agente
