O tool use do Claude não é um webhook. O seu backend envia uma mensagem, o Claude responde, às vezes com um pedido para chamar uma ferramenta, o seu código roda a ferramenta e devolve o resultado. Tudo acontece por HTTPS de saída a partir da sua máquina. Então por que este artigo fala de túneis?
Porque no momento em que você constrói algo de verdade com o Claude — um agente de código, uma automação de suporte, um servidor MCP, um fluxo de longa duração — você começa a precisar de conectividade de entrada. Para clientes de navegador. Para servidores MCP expostos a outros apps. Para webhooks de ferramentas de terceiros que o modelo invoca.
Onde um túnel realmente ajuda
Frontends de navegador para apps com Claude
O mesmo formato da configuração do OpenAI Realtime. O seu frontend não pode guardar a sua chave de API da Anthropic, então ele fala com o seu backend, que fala com a Anthropic. O frontend precisa de HTTPS para que as respostas em streaming rendam de forma limpa (alguns navegadores degradam o tratamento de SSE em HTTP puro), e o seu backend precisa de HTTPS se o frontend for HTTPS. O túnel resolve os dois.
Servidores MCP rodando em local
O Model Context Protocol permite que o Claude (e outros clientes) se conectem a ferramentas que você expõe como servidores MCP. Para servidores MCP com transporte HTTP — ao contrário de stdio — o cliente precisa alcançar o seu servidor. Se você está prototipando um servidor MCP e quer testá-lo com o Claude Desktop ou outro cliente remoto, expor o seu servidor MCP local por um túnel é o caminho de menor resistência.
Callbacks de computer use
Se você usa a beta de computer use do Claude e o modelo interage com um serviço que dispara webhooks de volta para a sua máquina, você está em território de webhooks. Os mesmos padrões de qualquer provedor: capturar, reenviar, verificar (se aplicável).
O que um túnel não faz
Você não precisa de um túnel só para chamar o Claude a partir de um script local. curl https://api.anthropic.com/v1/messages funciona de qualquer máquina. Os SDKs de Python e TypeScript funcionam bem. O tool use em si é uma interação de saída — o Claude não chama a sua máquina quando quer usar uma ferramenta; o seu código é quem faz a chamada com base na resposta do Claude.
Isso confunde algumas pessoas da primeira vez. O padrão é:
- O seu código envia uma mensagem de usuário ao Claude com uma lista de ferramentas disponíveis.
- O Claude responde, possivelmente com um bloco
tool_useque descreve uma ferramenta a chamar. - O seu código executa a ferramenta no seu sistema local.
- O seu código devolve o resultado da ferramenta ao Claude como uma mensagem de continuação.
- Repete até terminar.
Os cinco passos acontecem em um único processo Python ou TypeScript. Sem tráfego de entrada. Sem túnel.
O motivo real de o túnel ajudar nos fluxos com Claude
O motivo de a gente acabar rodando um túnel durante o desenvolvimento com Claude não é o modelo em si. É tudo ao redor dele: o painel que mostra o progresso do agente, o frontend que faz streaming das saídas das ferramentas, o servidor MCP exposto para testes, o webhook de uma ferramenta de terceiros que o agente invocou ("envie uma mensagem no Slack", "crie uma issue no Linear"). O agente dispara uma reação em cadeia e, em algum ponto dessa cadeia, um serviço externo acaba querendo acessar a sua máquina.
Configuração para um ciclo de desenvolvimento de servidor MCP
- Implemente o seu servidor MCP com transporte HTTP.
- Rode-o em local na porta que você escolher.
npx portpreview 3000(ou a sua porta).- No Claude Desktop ou no seu outro cliente MCP, configure a URL do servidor remoto apontando para o seu túnel.
- Emita comandos. Observe a captura de requisições no túnel e as respostas que o seu servidor devolve.
Se o seu servidor MCP for de transporte stdio, isto não se aplica — servidores stdio se comunicam por pipes de processo e ficam locais por design.
Respostas em streaming e túneis
O Claude faz streaming das respostas via SSE. Os túneis precisam lidar corretamente com a resposta de streaming de longa duração — a maioria lida, mas alguns proxies HTTP antigos colocam a resposta em buffer e só liberam no final, o que anula o sentido do streaming. PortPreview, Cloudflare e ngrok lidam com SSE sem buffer. Se você vê o seu frontend receber a resposta inteira de uma vez após uma longa espera, o seu túnel está em buffer. É um problema do túnel, não do Claude.
Depurar o loop do agente
A parte mais difícil do desenvolvimento com tool use do Claude não é a API. É entender o que o modelo decidiu fazer em cada passo. Registre cada bloco tool_use antes de executá-lo. Registre cada resultado de ferramenta antes de devolver ao Claude. Se você tem um túnel entre o seu frontend e o seu backend, a captura de requisições também te dá um registro das mensagens de usuário — útil para reproduzir execuções do agente sem redigitar os prompts.
Para onde isso caminha
O ecossistema de tool use da Anthropic anda rápido — MCP, computer use, janelas de contexto maiores, menor latência. Os padrões de webhook de depurar webhooks em local e a matemática de assinaturas do guia de verificação de assinatura se aplicam quando qualquer ferramenta externa que o agente chama dispara um callback para a sua máquina.
Entre na lista de espera do PortPreview para um túnel com captura, reenvio e encaminhamento seguro de SSE embutidos.