En el episodio anterior te estuve hablando de tres pilares fundamentales que cambian por completo las reglas del juego cuando queremos ir un paso más allá de los modelos de lenguaje convencionales: el RAG (la memoria), las habilidades y las herramientas. Hoy no nos vamos a quedar en las nubes de la teoría. Hoy nos arremangamos y vamos directos al turrón con un ejemplo totalmente práctico, porque al final lo que queremos es ver cómo se hace, cómo se lleva a cabo en nuestro propio servidor y cómo podemos empezar a sacarle partido a estas tecnologías desde ya.
¿Por qué Rust es el rey del cacharreo con MCPs?
Si buscas tutoriales en la red, verás que la inmensa mayoría de servidores MCP se desarrollan en Python. No me malinterpretes, Python es fantástico para escribir código rápido, pero en el mundo de los microservicios autohospedados y los contenedores tiene ciertos inconvenientes difíciles de ignorar. Python tarda más en arrancar y consume una cantidad considerable de memoria RAM por el simple hecho de existir.
Por este motivo decidí programar todos mis MCPs utilizando Rust. Rust nos compila un binario nativo, limpio y directo. No hay intérpretes pesados de por medio. La latencia de respuesta es prácticamente cero, el consumo de memoria es insignificante y se ejecuta a una velocidad de vértigo. Además, gracias a editores modernos equipados con IA como OpenCode, una vez que logras pulir y estructurar tu primer MCP en Rust (por ejemplo, el del tiempo), crear el siguiente es sencillísimo. Solo tienes que proporcionarle a tu herramienta de código la estructura de tu primer desarrollo y pedirle que adapte esa misma lógica para conectar cualquier otra API o base de datos que necesites. ¡Es una delicia ver cómo escala el sistema!
Bajo el capó: APIs públicas, Docker y Quadlets
Para hacer realidad este MCP meteorológico, he combinado el poder de dos APIs públicas muy conocidas:
Nominatim (OpenStreetMap): Como las APIs del tiempo necesitan coordenadas geográficas (latitud y longitud), Nominatim se encarga de traducir textos legibles como "Valencia" o "Tokio" en datos numéricos de localización.
Open-Meteo: Recibe las coordenadas enviadas por el MCP y devuelve la previsión meteorológica actual, horaria o diaria sin necesidad de usar claves de API complejas ni registros restrictivos.
Todo este flujo de datos se empaqueta de forma elegante en un contenedor de Docker y se gestiona mediante un Quadlet de Podman para garantizar que se inicie de forma nativa e integrada con el sistema operativo de nuestro servidor.
Y más adelante nos sumergiremos en el fascinante universo del RAG local.
Capítulos del episodio:
00:00:00 Introducción y repaso del episodio anterior
00:00:43 El problema de los modelos estáticos de IA
00:01:29 El ejemplo práctico: Preguntando el tiempo
00:03:20 Ahorro extremo de tokens con MCP
00:04:49 Taller de IA agéntica y automatización con Slimbook
00:06:22 Cacharreando con DeepSeek V4 Flash en OpenCode
00:07:33 ¿Qué es y cómo funciona un MCP?
00:09:13 Por qué desarrollo mis MCPs en Rust (y no en Python)
00:11:13 Limpieza de datos y gestión de errores
00:12:40 Cómo conectar un MCP a Open Web UI paso a paso
00:14:18 Probando la previsión meteorológica en vivo
00:15:37 El motor bajo el capó: Open-Meteo, Nominatim y Docker
00:17:25 Codegraph: Analizando código para ahorrar tokens
00:18:22 Próximo episodio: Guardar tareas persistentes con MCP To Do
00:19:48 Otros MCPs listos para el taller de IA
00:21:22 El futuro del podcast: RAG local, notas y más cacharreo
00:22:50 Despedida, enlaces de interés y cierre
Más información, enlaces y notas en https://atareao.es/podcast/799🌐 Aquí lo puedes encontrar todo 👉 https://atareao.es✈️ Telegram (el grupo) 👉 https://t.me/atareao_con_linux✈️ Telegram (el canal) 👉 https://t.me/canal_atareao🦣 Mastodon 👉 https://mastodon.social/@atareao🐦 Twitter 👉 https://twitter.com/atareao🐙 GitHub 👉 https://github.com/atareao