00:00:00En estos últimos dos meses, la comunidad de IA se ha dado cuenta de que los MCP tienen un gran problema.
00:00:04Y debido a esto, la comunidad ha propuesto algunas soluciones.
00:00:08Pero todas ellas presentan grandes carencias.
00:00:10Hace un tiempo hicimos un vídeo sobre la solución de Docker,
00:00:12que considerábamos la mejor respuesta al problema de los MCP hasta ahora.
00:00:16Docker lanzó el “code mode”, que permite a los agentes escribir código JavaScript para llamar directamente a las herramientas MCP.
00:00:21Esto solucionó el problema de que las herramientas MCP consumen mucho contexto
00:00:24al exponer la herramienta y su descripción en la ventana de contexto.
00:00:27Así que, si trabajas con muchos MCP, tu ventana de contexto se saturará con
00:00:32herramientas innecesarias que, en su mayoría, ni siquiera se necesitan casi nunca.
00:00:36Pero con el gateway MCP de Docker, estabas limitado a los MCP que Docker había configurado
00:00:41y había límites tanto en los MCP locales como en los remotos.
00:00:43Además, no podías guardar esas herramientas personalizadas como funciones.
00:00:47Todo esto se desencadenó cuando Cloudflare identificó el problema y propuso una solución
00:00:51para que estas herramientas existieran como código ejecutable en lugar de ocupar espacio en la ventana de contexto.
00:00:56Anthropic, los arquitectos originales de este protocolo, reconocieron este vacío en
00:01:00su producto y publicaron un documento destacando exactamente este problema.
00:01:04Tras esto, la gente empezó a tomarse el problema en serio y a explorar soluciones.
00:01:09Pero su solución de convertir cada herramienta en un archivo TypeScript también tiene fallos.
00:01:13Con muchos MCP conectados, tienes que convertir cada uno a código individualmente y
00:01:18debes dedicar mucho tiempo a asegurarte de que ninguno falle en el proceso.
00:01:22Pero como ya es un problema reconocido,
00:01:24la gente sigue intentando aportar mejores soluciones.
00:01:26Y ahí es cuando encontramos esta nueva herramienta llamada MCP to CLI.
00:01:30MCP to CLI soluciona la saturación del contexto de los MCP convirtiendo todos
00:01:36los servidores MCP en herramientas de línea de comandos (CLI) que puedes ejecutar mediante comandos bash.
00:01:40Nosotros usamos principalmente Cloud Code en nuestro equipo, y este tiene una opción de CLI que intenta
00:01:45resolver parte de este problema. Esa herramienta soluciona la saturación inicial del contexto de los MCP al no exponer
00:01:50todas las herramientas de antemano en la ventana. Permite que Cloud Code cargue dinámicamente
00:01:55cada herramienta según sea necesario. Pero aún queda otro problema en Cloud Code. Como sabrás,
00:02:00los MCP devuelven sus resultados directamente en la ventana de contexto. Y si una herramienta MCP
00:02:05devuelve un resultado muy extenso, este permanece en la ventana de contexto, provocando
00:02:10una saturación innecesaria. Es posible que también hayas oído hablar de otras herramientas de código abierto como CLI
00:02:15Hub que apuntan al mismo problema, pero son ineficientes porque la conversión ocurre al compilar
00:02:20y no en tiempo de ejecución. Pero, ¿qué significa realmente la conversión en tiempo de ejecución?
00:02:25Significa que la herramienta se convierte en un comando bash en el momento exacto en que se llama. Esto
00:02:29puede parecer correcto, pero ¿qué pasa cuando el MCP original se actualiza? Dado que esta herramienta
00:02:34construye sus herramientas MCP en tiempo de ejecución, cualquier cambio en el MCP real se refleja automáticamente.
00:02:39Esto no sería posible si construyéramos las herramientas al compilar. En ese caso,
00:02:43tendríamos que buscar y actualizar manualmente la herramienta cada vez. Pero podrías
00:02:48pensar que convertir la misma herramienta cada vez que se llama ralentizaría las llamadas repetidas.
00:02:53Ahí es donde entra el mecanismo de caché que han integrado en la herramienta. Guarda todas las
00:02:58herramientas MCP en una caché con un tiempo de vida (TTL) de una hora por defecto. Así, las herramientas
00:03:03más usadas van directas a la caché por una hora. Y desde ahí, el agente puede obtenerlas con una recuperación
00:03:08más rápida sin sacrificar la flexibilidad del tiempo de ejecución. Esta herramienta está construida sobre
00:03:13el SDK de Python de MCP, el mismo que utiliza cada servidor MCP internamente. Por eso, con cada llamada
00:03:19a herramientas MCP, simplemente las ejecuta como comandos bash y solo inyecta la respuesta en la ventana
00:03:24de contexto del agente cuando se le solicita. También gestiona API REST y OpenAPI mediante la misma
00:03:30interfaz de CLI, lo que significa que cualquier API existente que no tenga un servidor MCP puede usarse
00:03:35exactamente igual. Sin esta herramienta, estás limitado en el tipo de MCP que puedes conectar.
00:03:39Otras soluciones similares no suelen darte la flexibilidad para trabajar con todos los tipos de MCP
00:03:44en un solo lugar. Para respaldar sus afirmaciones sobre eficiencia de tokens, realizaron pruebas automatizadas
00:03:49usando Tiktoken, la librería de Python para contar tokens. Al probarlo, la herramienta resultó mucho más barata
00:03:54y su ejecución fue mucho más rápida. Así que no tienes por qué creernos solo a nosotros. Esta herramienta
00:03:59realmente tiene los números que la respaldan. Puedes instalarla en tu sistema usando pip o ejecutarla
00:04:03sin instalar. Nosotros elegimos ejecutarla sin instalar para mantener limpio el entorno de trabajo.
00:04:07Y también han proporcionado una “skill” que ayuda a los agentes a trabajar mejor con esta herramienta.
00:04:13Establece el flujo de trabajo principal y da ejemplos de comandos bash para tareas como autenticación y caché,
00:04:18conceptos de los que tu agente no tiene contexto previo. Pero antes de continuar, un mensaje
00:04:22de nuestro patrocinador Orchids. La mayoría de los creadores de IA manejan bien maquetas simples, pero fallan cuando
00:04:27necesitas lógica compleja o estructuras de múltiples archivos. Ahí es donde entra Orchids: el primer agente de IA
00:04:32capaz de construir y desplegar cualquier app en cualquier stack directamente desde tu entorno. Puedes usar
00:04:36tu propia suscripción para ejecutar modelos a precio de coste usando tus cuentas de ChatGPT, Claude o Gemini,
00:04:41incluso GitHub Copilot. Está diseñado para cualquier app en cualquier stack; no se limita solo a la web.
00:04:47Puedes construir y desplegar desde apps móviles y extensiones de Chrome hasta agentes de IA complejos
00:04:52y bots de Slack. Mira estos proyectos: una configuración completa de OpenClaw gestionando lógica de hardware
00:04:57compleja, un terminal de Bloomberg funcional procesando flujos masivos de datos en tiempo real
00:05:02y apps móviles nativas, como este identificador de edificios que usa la cámara de tu dispositivo
00:05:07directamente. Haz clic en el enlace del comentario fijado y empieza a crear. Usa el código March 15 para un
00:05:1215% de descuento en tu plan. Al igual que tú, nosotros también queremos prosperar, y una forma es notar un hueco
00:05:17en el mercado. Así dimos con esta idea de oro: Grinder, pero para caballos. Bromas aparte,
00:05:22construir productos a gran escala requiere muchas herramientas MCP porque tienen muchas dependencias
00:05:27y saturan la ventana de contexto rápidamente. Conectamos al agente al MCP de Supabase usando MCP to CLI,
00:05:34ya que esa era la infraestructura de backend que estábamos usando. No tienes que configurar
00:05:38nada manualmente gracias a la skill que instalamos antes. Esa skill se encarga de todo por su cuenta
00:05:43y configura los MCP por ti. Pero antes de lanzarte a instalarlo, necesitas obtener los
00:05:47tokens de acceso de cualquier MCP que estés usando. Porque si no lo haces, te encontrarás
00:05:52con errores como nos pasó a nosotros; tras lo cual generamos nuestro token y se lo dimos a Claude para añadirlo.
00:05:57Una vez configurado correctamente, deberías ver las herramientas disponibles para usar. Quizás pienses
00:06:01que si esta herramienta se ejecuta como comando bash, no es seguro tener datos sensibles como claves API y
00:06:06tokens de acceso en ella, porque podrían exponerse al listar procesos. Pero esta herramienta añade una
00:06:11capa de protección. No pone datos sensibles en los argumentos de la línea de comandos. En su lugar,
00:06:15los gestiona mediante variables de entorno, o referencia una ruta de archivo donde están guardados,
00:06:21o usa un gestor de secretos que los inyecta en tiempo de ejecución. Así que es seguro. De forma similar a la
00:06:26conexión con Supabase, conectamos el MCP de GitHub para control de versiones, el de Puppeteer para
00:06:32pruebas de navegador, y el de Context 7 para dar base al agente con documentación adecuada para que
00:06:37trabaje con docs actualizados. Con todos los MCP conectados, le pedimos a Claude que lo verificara todo.
00:06:42Confirmó que teníamos los cuatro MCP conectados, con un total de 78 herramientas en nuestro caso. Además, si
00:06:47te gusta nuestro contenido, dale al botón de “hype” porque nos ayuda a crear más contenido
00:06:52como este y llegar a más gente. Una vez conectados, llegó el momento de empezar
00:06:57a implementar la aplicación paso a paso. Empezamos conectando el código del cliente al backend
00:07:02de Supabase. Cuando Claude ejecutó el comando de MCP to CLI para crear el proyecto, notamos que no puso
00:07:07el token de acceso directamente en la llamada. En su lugar, se refirió a nuestro archivo .env.local en
00:07:12la raíz del proyecto para obtenerlo. Creó el proyecto, configuró todo y añadió la lógica
00:07:17de conexión en el código. Pero notamos que usó el archivo middleware para la lógica de refresco
00:07:22de sesión, y no debería haberlo hecho porque está obsoleto. La nueva versión de Next.js usa
00:07:27el proxy, y sabíamos que esto daría error al ejecutar la app. Esto demuestra que
00:07:31conectar herramientas no basta para que el agente les haga caso y las use cuando es
00:07:36necesario. Así que creamos un archivo Claude.md y le dijimos que usara el MCP de Context 7 antes de escribir
00:07:42cualquier código, para que no volviera a ocurrir. Así sabe que debe consultar Context 7
00:07:47antes de la implementación. Tras terminar de añadir tablas y configurar la autenticación en Supabase,
00:07:52le señalamos a Claude el aviso del middleware obsoleto para que lo corrigiera. Después de
00:07:57decírselo, finalmente usó el MCP de Context 7 para obtener la documentación y resolver el problema
00:08:03adecuadamente. Pero al explorar más esta herramienta, descubrimos que había una forma mejor
00:08:07de manejar estos asuntos que crear un archivo Claude.md. Las skills son mejores porque sus
00:08:11descripciones se cargan directamente en el contexto del agente. Así, ya sabe qué herramientas están
00:08:16disponibles y cuándo usarlas, en lugar de que nosotros volquemos instrucciones en Claude.md esperando
00:08:21que las lea. Así que le pedimos que creara una skill para todos los MCP conectados. Claude entonces
00:08:26creó skills para cada MCP, detallando qué herramientas incluía y cómo y cuándo usarlas.
00:08:32Con eso listo, pasamos al siguiente problema. Pero lo que teníamos distaba mucho de ser funcional.
00:08:36El feedback de los “caballos” nos decía que estaban impacientes porque no podían chatear
00:08:41directamente en la plataforma. Así que le pedimos a Claude que hiciera funcional el chat sobre
00:08:46la interfaz de usuario. Al probarlo, los mensajes no cargaban y solo se veía la pantalla de carga.
00:08:51Le pedimos que usara el MCP de Puppeteer para probar el flujo de mensajes. Hicimos que el agente se revisara
00:08:56a sí mismo porque uno que puede clicar, hacer scroll e interactuar con su propia interfaz detecta cosas que
00:09:01una revisión de código estática jamás vería. Para las pruebas, creó dos usuarios. Pero no pudo mantener
00:09:06los datos de sesión entre llamadas ya que cada una abría una nueva instancia del navegador. La cantidad
00:09:10de herramientas usadas y el tiempo que tomó trabajar en un navegador sin interfaz nos hizo ver algo.
00:09:15Una mejor opción sería simplemente dejar que el MCP se encargara. Fue mucho más rápido y llevó mucho menos
00:09:21que los siete minutos que perdimos en una tarea tan simple. Preferimos usar la propia extensión de
00:09:25navegador de Claude, que funciona mejor, tiene más capacidades y retiene sesiones para pruebas
00:09:30punto a punto como estas. Y los MCP se ejecutan como procesos persistentes, por lo que mantienen
00:09:35el estado durante toda la sesión. Esta herramienta también permite controlar el formato de salida, como JSON o
00:09:40salida bruta. También soporta Toon, el formato de código eficiente en tokens para consumo de LLMs.
00:09:46Cuando trabajamos con MCP como Context 7, suelen devolver una enorme cantidad de datos directamente al contexto.
00:09:51Para evitarlo, añadimos en el Claude.md que cada vez que usara el MCP de Context 7,
00:09:57utilizara el formato Toon para la salida. Es un formato eficiente porque combina sangrías y listas
00:10:02tipo CSV, compactando mucha información en trozos mucho más pequeños que JSON o YAML. De este
00:10:07modo no desperdicias tokens innecesariamente. Pero la mayor ventaja vino de algo que ni siquiera
00:10:12era posible cuando los agentes manejaban los MCP de forma nativa. Si recuerdas, Cursor
00:10:16lanzó un flujo de edición de contexto en su producto. Trataban los resultados de los MCP como archivos y
00:10:22permitían al agente usar scripts de bash como grep para extraer datos mediante patrones. Lo cubrimos en nuestro
00:10:27vídeo anterior. Intentamos implementar esta idea en otros agentes de código, pero como los MCP se manejan
00:10:32nativamente por los agentes, no pudimos sacarle mucho partido. Pero ahora con este CLI es posible porque
00:10:37los MCP se tratan como herramientas de comandos bash. Así que añadimos una instrucción en el Claude.md para que
00:10:43cuando cualquier herramienta MCP produzca una salida grande, en lugar de cargarla en el contexto, la
00:10:49redirija a un archivo en la ruta que especifiquemos. Seguíamos el progreso de este proyecto mediante
00:10:54un archivo progress.json. Tras añadir la instrucción, le pedimos a Claude que implementara una función de
00:10:59la lista. Usó el MCP de Context 7 para las llamadas, pero en lugar de volcar el resultado en la ventana
00:11:05de contexto, lo canalizó a un archivo y usó grep para extraer los datos y completar la implementación.
00:11:10El archivo Claude.md con todas las mejores prácticas para esta herramienta está disponible en AI Labs Pro.
00:11:16Para quienes no lo sepan, es nuestra comunidad recién lanzada donde obtendrás plantillas listas para usar
00:11:20que puedes conectar directamente a tus proyectos, de este vídeo y de todos los anteriores. Si has
00:11:25encontrado valor en lo que hacemos y quieres apoyar al canal, esta es la mejor forma. El enlace está en la
00:11:29descripción. Eso nos lleva al final de este vídeo. Si quieres apoyar al canal y
00:11:33ayudarnos a seguir haciendo vídeos como este, puedes hacerlo usando el botón de Súper Gracias abajo.
00:11:38Como siempre, gracias por vernos y nos vemos en el próximo.