Todos los artículos
AnthropicClaudeAItool use

Tool use de Anthropic en local: túneles para Claude

El tool use de Claude no es un webhook. Tu backend envía un mensaje, Claude responde, a veces con una petición para llamar a una herramienta, tu código ejecuta la herramienta y devuelve el resultado. Todo ocurre por HTTPS saliente desde tu máquina. ¿Entonces por qué este artículo trata de túneles?

Porque en cuanto construyes algo real con Claude — un agente de código, una automatización de soporte, un servidor MCP, un flujo de larga duración — empiezas a necesitar conectividad entrante. Para clientes de navegador. Para servidores MCP expuestos a otras apps. Para webhooks de herramientas de terceros que el modelo invoca.

Dónde ayuda de verdad un túnel

Frontends de navegador para apps con Claude

La misma forma que la configuración de OpenAI Realtime. Tu frontend no puede guardar tu clave de API de Anthropic, así que habla con tu backend, que habla con Anthropic. El frontend necesita HTTPS para que las respuestas en streaming se rendericen bien (algunos navegadores degradan el manejo de SSE en HTTP plano), y tu backend necesita HTTPS si el frontend es HTTPS. El túnel resuelve ambas cosas.

Servidores MCP corriendo en local

El Model Context Protocol permite a Claude (y a otros clientes) conectarse a herramientas que expones como servidores MCP. Para servidores MCP con transporte HTTP — a diferencia de stdio — el cliente necesita alcanzar tu servidor. Si estás prototipando un servidor MCP y quieres probarlo con Claude Desktop u otro cliente remoto, exponer tu servidor MCP local a través de un túnel es el camino de menor resistencia.

Callbacks de computer use

Si usas la beta de computer use de Claude y el modelo interactúa con un servicio que dispara webhooks de vuelta a tu máquina, estás en territorio de webhooks. Los mismos patrones que con cualquier proveedor: capturar, reenviar, verificar (si aplica).

Lo que un túnel no hace

No necesitas un túnel solo para llamar a Claude desde un script local. curl https://api.anthropic.com/v1/messages funciona desde cualquier máquina. Los SDK de Python y TypeScript funcionan bien. El tool use en sí es una interacción saliente — Claude no llama a tu máquina cuando quiere usar una herramienta; tu código hace la llamada según la respuesta de Claude.

Esto despista a algunos la primera vez. El patrón es:

  1. Tu código envía un mensaje de usuario a Claude con una lista de herramientas disponibles.
  2. Claude responde, posiblemente con un bloque tool_use que describe una herramienta a llamar.
  3. Tu código ejecuta la herramienta contra tu sistema local.
  4. Tu código devuelve el resultado de la herramienta a Claude como mensaje de seguimiento.
  5. Repite hasta terminar.

Los cinco pasos ocurren en un mismo proceso de Python o TypeScript. Sin tráfico entrante. Sin túnel.

La verdadera razón por la que el túnel ayuda en flujos con Claude

La razón por la que terminamos corriendo un túnel durante el desarrollo con Claude no es el modelo en sí. Es todo lo que lo rodea: el panel que muestra el progreso del agente, el frontend que transmite las salidas de las herramientas, el servidor MCP expuesto para pruebas, el webhook de una herramienta de terceros que el agente invocó («envía un mensaje de Slack», «crea una incidencia en Linear»). El agente desencadena una reacción en cadena y, en algún punto de esa cadena, un servicio externo acaba queriendo llegar a tu máquina.

Configuración para un ciclo de desarrollo de servidor MCP

  1. Implementa tu servidor MCP con transporte HTTP.
  2. Córrelo en local en el puerto que elijas.
  3. npx portpreview 3000 (o tu puerto).
  4. En Claude Desktop o tu otro cliente MCP, configura la URL del servidor remoto apuntando a tu túnel.
  5. Lanza comandos. Observa la captura de peticiones en el túnel y las respuestas que devuelve tu servidor.

Si tu servidor MCP es de transporte stdio, esto no aplica — los servidores stdio se comunican por pipes de proceso y permanecen locales por diseño.

Respuestas en streaming y túneles

Claude transmite respuestas por SSE. Los túneles deben manejar la respuesta de streaming de larga duración correctamente — la mayoría lo hace, pero algunos proxies HTTP antiguos almacenan la respuesta en búfer y solo la liberan al final, lo que anula el sentido del streaming. PortPreview, Cloudflare y ngrok manejan SSE sin búfer. Si ves que tu frontend recibe toda la respuesta de golpe tras una larga espera, tu túnel está haciendo búfer. Es un problema del túnel, no de Claude.

Depurar el bucle del agente

La parte más dura del desarrollo con tool use de Claude no es la API. Es entender qué decidió hacer el modelo en cada paso. Registra cada bloque tool_use antes de ejecutarlo. Registra cada resultado de herramienta antes de devolverlo a Claude. Si tienes un túnel entre tu frontend y tu backend, la captura de peticiones también te da un registro de los mensajes de usuario — útil para reproducir ejecuciones del agente sin volver a teclear los prompts.

Hacia dónde va esto

El ecosistema de tool use de Anthropic avanza rápido — MCP, computer use, ventanas de contexto más largas, menor latencia. Los patrones de webhook de depurar webhooks en local y la matemática de firmas de la guía de verificación de firmas aplican cuando cualquier herramienta externa que el agente llama dispara un callback a tu máquina.

Únete a la lista de espera de PortPreview para un túnel con captura, reenvío y reenvío seguro de SSE integrados.

Preguntas frecuentes

¿Necesito un túnel para usar el tool use de Claude?
No para la API principal. El tool use de Claude es una interacción saliente — tu código llama a Anthropic, Claude responde con peticiones de herramienta, tu código las ejecuta y devuelves resultados. Todo saliente. Solo necesitas un túnel cuando servicios externos llaman a tu máquina: frontends de navegador, servidores MCP expuestos en remoto o herramientas de terceros que disparan webhooks de vuelta.
¿Cómo pruebo un servidor MCP con Claude en local?
Para servidores MCP con transporte HTTP, corre el servidor en local y exponlo a través de un túnel. Configura Claude Desktop (u otro cliente MCP remoto) con la URL del túnel. Los servidores MCP stdio no necesitan túnel porque se comunican por pipes de proceso.
¿Los túneles estropean las respuestas en streaming de Claude?
La mayoría de los túneles modernos manejan el streaming SSE sin búfer. Si tu frontend recibe una respuesta completa de golpe tras un largo retraso, el túnel está haciendo búfer y rompiendo el streaming. PortPreview y otros túneles recientes lo evitan.