WebMCP
Este mismo sitio, preparado para agentes: con WebMCP, la propuesta de estándar para que una página ofrezca herramientas a los agentes de IA del navegador, expone tres herramientas de solo lectura para listar mis proyectos, leer un caso completo y consultar mi perfil.
Antes
Los agentes de IA ya navegan sitios por su cuenta: leen el HTML, adivinan qué botón tocar y extraen el texto. Para un portafolio eso funciona, pero el agente recibe el diseño y no los datos.
Qué había que resolver
Quería que un agente pudiera responder "¿qué hizo Nicolás con MCP?" o "¿cómo lo contacto?" con información precisa y estructurada, sin depender del layout ni de scraping, y sin cambiar nada para las personas que visitan el sitio.
Qué hace.
Las capacidades principales del sistema.
Tres herramientas
listar_proyectos, obtener_caso y perfil, registradas con document.modelContext cuando el navegador lo soporta.
Datos en JSON estático
El build genera /webmcp.json a partir de los mismos datos que usan las páginas; no hay contenido duplicado.
Carga bajo demanda
El JSON se descarga recién cuando un agente llama una herramienta, y queda en memoria para las siguientes.
Esquemas y errores claros
Cada herramienta declara su JSON Schema. Si el agente pide un caso que no existe, recibe la lista de slugs válidos.
Herramientas.
3 herramientas de solo lectura.
Listar proyectos
lecturalistar_proyectosLos casos con número, nombre, resumen, stack y URL. Se pueden filtrar por integraciones de IA o sistemas.
Obtener caso
lecturaobtener_casoUn caso completo: contexto, problema, solución, herramientas, arquitectura, decisiones, desafío y resultado.
Perfil
lecturaperfilExperiencia, herramientas, formación, formas de contacto y el CV.
Cómo está armado
- 01AGENTEIA del navegador
- 02MODEL CONTEXTdocument.modelContext
- 03TOOLS3 · solo lectura
- 04WEBMCP.JSONgenerado en el build
- 05DATOS DEL SITIOproyectos · perfil
Decisiones técnicas.
Qué se eligió y qué implica.
- 01
Datos en un JSON estático, no en el bundle
Las herramientas leen /webmcp.json, que Astro genera en el build desde los mismos datos de las páginas.
→ Las personas no descargan nada extra y el contenido no se duplica. El agente espera un pedido la primera vez.
- 02
Solo lectura
Las tres herramientas se registran con readOnlyHint y no modifican nada.
→ El navegador puede ejecutarlas sin pedir confirmación, y no hay nada que un agente pueda romper.
- 03
Sin herramienta de contacto
El perfil devuelve cómo contactarme, pero no hay una tool para enviar mensajes.
→ Los mensajes los escribe y envía una persona desde el formulario.
- 04
Detección de la API
El registro se activa sólo si existe document.modelContext, o el nombre anterior, navigator.modelContext.
→ En navegadores sin soporte no pasa nada. Como el borrador todavía cambia, hay que seguirlo de cerca.
Ofrecerle datos precisos a un agente sin agregar peso ni cambiar nada para las personas.
- 01La API todavía es un borrador y cambió de nombre: el registro detecta las dos variantes y no hace nada si no existen.
- 02El contenido sale de los mismos datos que las páginas, así que un caso nuevo aparece solo en las herramientas.
- 03Las herramientas devuelven sólo lo que ya es público en el sitio, incluido el aviso de privacidad de los sistemas institucionales.
Cómo usé IA
Definí qué herramientas exponer, sus límites y los datos que devuelven. El código lo generó IA y lo revisé yo.
Resultado
El sitio publica tres herramientas para agentes. Mientras WebMCP sea experimental, se pueden probar en Chrome con el flag de pruebas activado.
- Herramientas probadas en Node con un modelContext simulado y el JSON real del build.
- El build verifica que /webmcp.json exista y sea JSON válido.