Jugando con MCP protocol
Llevo unas semanas leyendo un poco sobre el hype de Model Context Protocol, hay mucho escrito ya sobre MCP y en mi caso sólo me he asomado a este protocolo muy tímidamente, pero comparto algunas referencias que me han parecido muy interesantes:
- La documentación oficial. Hosts, Clients, Servers, Stdio/Http con SSE y el uso de JSON-RPC en la transport layer, etc.
- Everything Wrong with MCP. Shrivu Shankar escribe sobre problemas y limitaciones relacionados con seguridad y la experiencia de uso.
- MCP: The Differential for Modern APIs and Systems. Steve Manuel escribe como MCP puede ayudar a tener integraciones más resilientes entre sistemas.
Mientras he ido leyendo fui pensando en qué pequeño pet-project podía hacer para experimentar un poco y me acordé de DNDzgz.
Y aunque el preguntarle a Claude Desktop o a Cursor las estimaciones de llegada del tranvía a plaza Aragón para ver si sales ya del estudio o del coworking en un día de cierzo 🥶 a mi tampoco me parece una killer feature. Pensé que podía ser una casuística fácil de implementar pedirle los tiempos de llegada del tranvía, que son datos que se requiere tener en tiempo real.
Técnicamente no tiene mucho misterio:
- El MCP server está implementado con Node y el transport Standard Input/Output, así que los MCP Hosts se encargan de arrancarlo.
- Se hacen llamadas fetch al API de DNDzgz, a los endpoints que devuelven todas las paradas del tranvía y el tiempo estimado en cada parada.
- Y esto se expone como dos diferentes Tools para que los modelos lo llamen tras que la persona que lo usa de el ok.
Podéis ver el código de mcp-dndzgz en github.