Tool use Claude to nie webhook. Twój backend wysyła wiadomość, Claude odpowiada — czasem z prośbą o wywołanie narzędzia — twój kod uruchamia narzędzie i odsyła wynik. Całość dzieje się przez wychodzące HTTPS z twojej maszyny. To dlaczego ten artykuł jest o tunelach?
Bo w chwili, gdy budujesz coś realnego z Claude — agenta do kodu, automatyzację wsparcia, serwer MCP, długie workflow — zaczynasz potrzebować łączności przychodzącej. Dla klientów przeglądarkowych. Dla serwerów MCP udostępnionych innym aplikacjom. Dla webhooków od narzędzi zewnętrznych, które model wywołuje.
Gdzie tunel naprawdę pomaga
Frontendy przeglądarkowe dla aplikacji z Claude
Ten sam kształt co w konfiguracji OpenAI Realtime. Twój frontend nie może trzymać klucza API Anthropic, więc rozmawia z backendem, a ten z Anthropic. Frontend potrzebuje HTTPS, by odpowiedzi strumieniowe renderowały się czysto (część przeglądarek pogarsza obsługę SSE po zwykłym HTTP), a backend potrzebuje HTTPS, jeśli frontend jest na HTTPS. Tunel załatwia oba.
Serwery MCP działające lokalnie
Model Context Protocol pozwala Claude (i innym klientom) łączyć się z narzędziami, które udostępniasz jako serwery MCP. Dla serwerów MCP z transportem HTTP — w odróżnieniu od stdio — klient musi dotrzeć do twojego serwera. Jeśli prototypujesz serwer MCP i chcesz przetestować go z Claude Desktop lub innym zdalnym klientem, udostępnienie lokalnego serwera MCP przez tunel to droga najmniejszego oporu.
Callbacki computer use
Jeśli używasz bety computer use Claude, a model wchodzi w interakcję z usługą, która wysyła webhooki z powrotem do twojej maszyny, jesteś na terytorium webhooków. Te same wzorce co u każdego dostawcy: przechwyć, ponów, zweryfikuj (jeśli dotyczy).
Czego tunel nie robi
Nie potrzebujesz tunelu, by wywołać Claude z lokalnego skryptu. curl https://api.anthropic.com/v1/messages działa z każdej maszyny. SDK dla Pythona i TypeScript działają dobrze. Sam tool use to interakcja wychodząca — Claude nie dzwoni do twojej maszyny, gdy chce użyć narzędzia; to twój kod wywołuje na podstawie odpowiedzi Claude.
Za pierwszym razem to myli. Wzorzec jest taki:
- Twój kod wysyła do Claude wiadomość użytkownika z listą dostępnych narzędzi.
- Claude odpowiada, być może blokiem
tool_useopisującym narzędzie do wywołania. - Twój kod uruchamia narzędzie w twoim lokalnym systemie.
- Twój kod odsyła wynik narzędzia do Claude jako kolejną wiadomość.
- Pętla aż do końca.
Wszystkie pięć kroków dzieje się w jednym procesie Pythona lub TypeScript. Brak ruchu przychodzącego. Brak tunelu.
Prawdziwy powód, dla którego tunelowanie pomaga w workflow z Claude
Powodem, dla którego ostatecznie uruchamiamy tunel podczas pracy z Claude, nie jest sam model. To wszystko wokół niego: panel pokazujący postęp agenta, frontend strumieniujący wyniki narzędzi, serwer MCP udostępniony do testów, webhook od narzędzia zewnętrznego, które agent wywołał („wyślij wiadomość na Slacku", „utwórz zgłoszenie w Linear"). Agent uruchamia reakcję łańcuchową, a gdzieś w tym łańcuchu zewnętrzna usługa ostatecznie chce uderzyć w twoją maszynę.
Konfiguracja pętli deweloperskiej serwera MCP
- Zaimplementuj serwer MCP z transportem HTTP.
- Uruchom go lokalnie na wybranym porcie.
npx portpreview 3000(lub twój port).- W Claude Desktop lub innym kliencie MCP skonfiguruj URL zdalnego serwera wskazujący na twój tunel.
- Wydawaj polecenia. Obserwuj przechwytywanie żądań w tunelu i odpowiedzi twojego serwera.
Jeśli twój serwer MCP jest w transporcie stdio, to nie dotyczy — serwery stdio komunikują się przez potoki procesów i z założenia pozostają lokalne.
Odpowiedzi strumieniowe a tunele
Claude strumieniuje odpowiedzi przez SSE. Tunele muszą poprawnie obsłużyć długotrwałą odpowiedź strumieniową — większość to robi, ale niektóre starsze proxy HTTP buforują odpowiedź i zwalniają ją dopiero na końcu, co niweczy sens strumieniowania. PortPreview, Cloudflare i ngrok obsługują SSE bez buforowania. Jeśli twój frontend dostaje całą odpowiedź naraz po długim czekaniu, twój tunel buforuje. To problem tunelu, nie Claude.
Debugowanie pętli agenta
Najtrudniejsza część pracy z tool use Claude to nie API. To zrozumienie, co model zdecydował zrobić na każdym kroku. Loguj każdy blok tool_use przed wykonaniem. Loguj każdy wynik narzędzia przed zwróceniem do Claude. Jeśli masz tunel między frontendem a backendem, przechwytywanie żądań daje też zapis wiadomości użytkownika — przydatny do odtwarzania przebiegów agenta bez ponownego wpisywania promptów.
Dokąd to zmierza
Ekosystem tool use Anthropic rozwija się szybko — MCP, computer use, dłuższe okna kontekstu, niższe opóźnienia. Wzorce webhooków z debugowania webhooków lokalnie i matematyka podpisów z przewodnika po weryfikacji podpisów mają zastosowanie, gdy dowolne zewnętrzne narzędzie wywołane przez agenta wysyła callback do twojej maszyny.
Dołącz do listy oczekujących PortPreview po tunel z wbudowanym przechwytywaniem, ponawianiem i bezpiecznym dla SSE przekazywaniem.