Tool use у Claude — це не вебхук. Ваш бекенд надсилає повідомлення, Claude відповідає, іноді із запитом викликати інструмент, ваш код виконує інструмент і надсилає результат назад. Усе це йде вихідним HTTPS з вашої машини. То чому ж ця стаття про тунелі?
Бо щойно ви будуєте щось справжнє з Claude — кодового агента, автоматизацію підтримки, MCP-сервер, довгий воркфлоу — вам починає бракувати вхідної звʼязності. Для браузерних клієнтів. Для MCP-серверів, відкритих іншим застосункам. Для вебхуків від сторонніх інструментів, які викликає модель.
Де тунель справді допомагає
Браузерні фронтенди для застосунків із Claude
Та сама форма, що й налаштування OpenAI Realtime. Ваш фронтенд не може тримати API-ключ Anthropic, тож він спілкується з бекендом, а той — з Anthropic. Фронтенду потрібен HTTPS, щоб потокові відповіді гарно відображались (деякі браузери погіршують обробку SSE по звичайному HTTP), а бекенду потрібен HTTPS, якщо фронтенд на HTTPS. Тунель робить і те, і те.
MCP-сервери, що працюють локально
Model Context Protocol дозволяє Claude (та іншим клієнтам) підключатися до інструментів, які ви відкриваєте як MCP-сервери. Для MCP-серверів із HTTP-транспортом — на відміну від stdio — клієнт має дістатися вашого сервера. Якщо ви прототипуєте MCP-сервер і хочете протестувати його з Claude Desktop чи іншим віддаленим клієнтом, відкрити локальний MCP-сервер через тунель — шлях найменшого опору.
Колбеки computer use
Якщо ви використовуєте бету computer use у Claude і модель взаємодіє із сервісом, який шле вебхуки назад на вашу машину, ви на території вебхуків. Ті самі патерни, що й у будь-якого провайдера: захоплення, повтор, перевірка (якщо застосовно).
Чого тунель не робить
Тунель не потрібен лише щоб викликати Claude з локального скрипта. curl https://api.anthropic.com/v1/messages працює з будь-якої машини. SDK для Python і TypeScript працюють нормально. Сам tool use — вихідна взаємодія: Claude не телефонує на вашу машину, коли хоче скористатися інструментом; викликає ваш код на основі відповіді Claude.
Уперше це збиває з пантелику. Патерн такий:
- Ваш код надсилає Claude повідомлення користувача зі списком доступних інструментів.
- Claude відповідає, можливо з блоком
tool_use, що описує інструмент для виклику. - Ваш код виконує інструмент у вашій локальній системі.
- Ваш код надсилає результат інструмента назад Claude наступним повідомленням.
- Цикл до завершення.
Усі пʼять кроків відбуваються в одному процесі Python чи TypeScript. Жодного вхідного трафіку. Жодного тунелю.
Справжня причина, чому тунелювання допомагає воркфлоу з Claude
Причина, чому ми зрештою запускаємо тунель під час розробки з Claude, — не сама модель. Це все навколо неї: дашборд із прогресом агента, фронтенд, що стримить виводи інструментів, відкритий для тестів MCP-сервер, вебхук від стороннього інструмента, який викликав агент («надішли повідомлення в Slack», «створи задачу в Linear»). Агент запускає ланцюгову реакцію, і десь у цьому ланцюзі зовнішній сервіс зрештою хоче дістатися вашої машини.
Налаштування циклу розробки MCP-сервера
- Реалізуйте MCP-сервер із HTTP-транспортом.
- Запустіть його локально на обраному порту.
npx portpreview 3000(або ваш порт).- У Claude Desktop або іншому MCP-клієнті вкажіть URL віддаленого сервера, що веде на ваш тунель.
- Надсилайте команди. Спостерігайте захоплення запитів у тунелі та відповіді вашого сервера.
Якщо ваш MCP-сервер на stdio-транспорті, це не стосується — stdio-сервери спілкуються через пайпи процесів і за задумом лишаються локальними.
Потокові відповіді й тунелі
Claude стримить відповіді через SSE. Тунелі мають коректно обробляти довгоживучу потокову відповідь — більшість уміє, але деякі старі HTTP-проксі буферизують відповідь і віддають лише наприкінці, що зводить нанівець сенс стримінгу. PortPreview, Cloudflare і ngrok обробляють SSE без буферизації. Якщо ваш фронтенд отримує всю відповідь одним шматком після довгого очікування — тунель буферизує. Це проблема тунелю, а не Claude.
Налагодження циклу агента
Найскладніше в розробці tool use у Claude — не API. А розуміння того, що модель вирішила зробити на кожному кроці. Логуйте кожен блок tool_use до виконання. Логуйте кожен результат інструмента до повернення Claude. Якщо між фронтендом і бекендом є тунель, захоплення запитів також дає журнал повідомлень користувача — корисно для повтору прогонів агента без перенабору промптів.
Куди це рухається
Екосистема tool use Anthropic рухається швидко — MCP, computer use, довші контекстні вікна, нижча затримка. Патерни вебхуків зі статті налагодження вебхуків локально і математика підписів із посібника з перевірки підписів застосовні, коли будь-який зовнішній інструмент, викликаний агентом, шле колбек на вашу машину.
Приєднайтеся до списку очікування PortPreview заради тунелю з вбудованим захопленням, повтором і безпечною для SSE передачею.