Herramientas asíncronas que no bloquean
Use E/S asíncrona para atender muchas llamadas simultáneamente.
Herramientas asíncronas que no bloquean es una lección gratuita de MCP Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de MCP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de MCP Academy incluye 4 lecciones en total.
Una herramienta lenta hace esperar a todos
Si una herramienta realiza trabajo lento de forma síncrona, bloquea todo el servidor, por lo que las demás llamadas deben esperar su turno. ⏳
La mayor parte de la lentitud es espera
Una herramienta que llama a una base de datos o a una API pasa la mayor parte del tiempo realizando I/O, esperando una respuesta en lugar de utilizar la CPU.
async libera el servidor
Marcar una herramienta como async permite que el servidor gestione otras solicitudes durante esa espera, en lugar de permanecer inactivo atendiendo una sola llamada.
Defina una herramienta async def
Declare su controlador con async def y FastMCP esperará su resultado, de modo que el bucle de eventos pueda atender entretanto otras tareas.
@mcp.tool()
async def fetch(city: str) -> str:
...Use await en sus llamadas de I/O
Dentro de una herramienta asíncrona, use await con bibliotecas asíncronas para que cada pausa devuelva el control al bucle en lugar de bloquearlo.
data = await client.get(url)
return data.textUse bibliotecas nativas asíncronas
Utilice clientes como httpx o asyncpg. Están diseñados para esperar de forma asíncrona, a diferencia de las bibliotecas bloqueantes que detienen todo el bucle.
No bloquee nunca el bucle de eventos
Un time.sleep normal o un bucle pesado bloquea todas las demás solicitudes. En código asíncrono, las llamadas bloqueantes congelan el servidor silenciosamente.
Delegue el trabajo intensivo de CPU
Para cálculos que realmente requieran CPU, ejecútelos en un thread mediante asyncio.to_thread, de modo que el bucle de eventos siga libre para atender llamadas.
result = await asyncio.to_thread(crunch, data)Ejecute llamadas de forma concurrente
¿Necesita realizar varias consultas a la vez? asyncio.gather ejecuta conjuntamente los objetos esperables y termina mucho más rápido que esperar cada uno por separado.
a, b = await asyncio.gather(get(x), get(y))Añada un tiempo de espera a los await
Envuelva los await lentos en un timeout para que un servicio ascendente bloqueado no pueda mantener una solicitud ocupada indefinidamente y privar de recursos al servidor.
La asincronía escala la concurrencia
Con I/O asíncrono, un proceso puede gestionar muchas llamadas en curso a la vez, por lo que su servidor permanece receptivo bajo una carga real.
Comprobación rápida
¿Por qué ayuda el I/O asíncrono a un servidor MCP con mucha actividad?
Repaso: no bloquee
Ha convertido las herramientas en async, ha esperado el I/O, ha delegado el trabajo de CPU y ha ejecutado las llamadas conjuntamente, por lo que una herramienta lenta ya no congela el servidor. 🚀
Preguntas frecuentes
¿La lección «Herramientas asíncronas que no bloquean» es gratis?
Sí — el texto completo de «Herramientas asíncronas que no bloquean» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de MCP Academy, actualiza a CoddyKit PRO. El curso de MCP Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Herramientas asíncronas que no bloquean»?
Use E/S asíncrona para atender muchas llamadas simultáneamente. Practicas MCP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar MCP Academy?
No se requiere experiencia previa. MCP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Herramientas asíncronas que no bloquean»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de MCP Academy?
Sí. Cada lección de MCP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Herramientas asíncronas que no bloquean
- Concurrencia y control de sobrecarga
- Reducir resultados con demasiados tokens
- Escalar horizontalmente con sesiones