AIエージェントワークフロー:ローカルTunnelsのネイティブMCPサポート

Quick answer
AIエージェントワークフロー:ローカルTunnelsのネイティブMCPサポート: quick comparison answer
Choose the tunnel tool based on the network model: public HTTPS URLs for webhooks and demos, private mesh access for internal apps, and managed infrastructure when policy controls matter most.
Which tunnel tool is best for public webhook testing?
Use a public HTTPS localhost tunnel with stable URLs. InstaTunnel focuses on webhook testing, demos, OAuth callbacks, and MCP endpoint workflows.
When should I choose a private network tool instead?
Choose a private mesh or Zero Trust tool when every user and service should stay inside a controlled private network.
2026年、開発者のワークフローにおいて非常に特定かつ増加傾向にあるニーズが登場しました。それは、URLをターミナルウィンドウとチャットインターフェース間に貼り付ける人間を必要とせずに、ローカルネットワークトンネルを開き、管理し、破棄できるAIエージェントです。Claude Code、Cursor、Windsurfのようなコーディングアシスタントがターミナルや環境アクセスを拡大するにつれ、ローカルインフラと直接連携できる能力は、Webhookのテストや開発サーバーの共有において実質的なボトルネックとなっています。
従来の人間操作向けのポートフォワーディング手法に頼るのではなく、rustunnelやPinggyをはじめとするトンネリングサービスは、専用のModel Context Protocol(MCP)サーバーを提供し、エージェントが直接トンネルを操作できる仕組みを実現しています。Anthropicも「MCP tunnels」という名前で独自の製品をリリースしていますが、これは本稿の主題とは異なる問題を解決するものであり、以下で詳述します。
このガイドでは、実際のMCPトンネルとは何か(現在は二つの異なる意味があります)、rustunnelとPinggyのエージェントツールが何を公開しているのか、クライアントごとのインストール手順の違い、そしてBifrostのようなMCPゲートウェイが複数サーバー運用時にどのように役立つかについて解説します。
1. AIエージェントワークフローの進化
従来のループは変わっていません:CLIからリバーストンネルを起動し、接続を待ち、生成された公開URLをコピーしてサードパーティのダッシュボードとチャットウィンドウに貼り付ける。これは一度きりの操作には問題ありませんが、すでにターミナルを操作しているエージェントの自律的な流れを妨げます。Claude CodeがWebhookエンドポイントの実装とテストを行っている場合、公開URLを人間に尋ねる必要はありません。
2024年11月25日にAnthropicがオープンソース化したModel Context Protocol(MCP)は、この状況を変えました。MCPは3つの役割を定義します:host(AIアプリケーション — Claude Code、Cursor、Claude Desktop、Windsurf、そして今やChatGPTやGitHub Copilotも)、client(ホストと特定のサーバー間のプロトコル接続)、server(特定のツールやリソース、プロンプトを公開するプロセス)。共有プロトコルがなかった頃は、*M*個のAIアプリと*N*個のツールを接続するには、ほぼ*M×N*のカスタム統合が必要でしたが、MCPはこれをおおよそ*M+N*に簡素化します。採用は急速に進み、2025年のBuildではMicrosoftとGitHubがMCPの運営委員会に参加し、OpenAIも同年にAgents SDKとResponses APIにMCPサポートを追加しました。
トンネリングに関しては、エージェントがcreate_tunnelのようなツールを直接呼び出し、構造化されたデータ(公開URL、トンネルID、ステータス)を返すことが可能になったことを意味します。これにより、stdoutからのパースやCLIのシェル呼び出しを省略できます。
2. 「MCPトンネル」の二つの異なる意味 — 2026年の状況
ここで本稿の構造上最も大きな修正が必要となった部分です:“MCPトンネル”は現在、二つの本質的に異なるアーキテクチャを指しています。これらを混同すると誤ったツールに誘導してしまいます。
2a. エージェント管理のトンネル(本稿のほとんどの内容の対象)
これはrustunnelやPinggyが構築するパターンです:トンネリングベンダーのクライアントがローカルサービスの横に動作し、TLS経由でパブリックエッジサーバーに*out*します。エージェントはMCPツールを呼び出し、これらのトンネルを開き、一覧表示し、閉じます。通信の流れはローカルマシン → パブリックインターネットで、AIエージェントが操作します。
- インバウンドルールなし。 クライアントがアウトバウンドでダイヤルしない限り、何も公開されません。企業のファイアウォールはアウトバウンドHTTPSを許可していれば変更不要です。
- スコープされた公開。 VPNとは異なり、トンネルは一つのサービスインスタンスのみを公開し、ネットワーク全体を公開しません。
- 暗号化された通信。 通常はトンネルベンダーの認証(OAuth、ベアラートークン、アカウントスコープのAPIトークン)を上に重ねます。
2b. Anthropicの「MCP tunnels」(逆方向の別製品)
AnthropicはClaude Platform(旧Claude Developer Platform / Console)上で、「MCP tunnels」という名前の研究プレビュー機能を提供しています。これは文字通りの名前であり、逆の問題を解決します:Claudeをプライベートネットワーク内のMCPサーバーに接続し、インバウンドポートを開かずに接続します。通信の流れはClaude → あなたのプライベートネットワークです。
アーキテクチャは軽量なトンネルスタック(プロキシとcloudflaredコンテナ)をネットワーク内に配置し、Cloudflareにアウトバウンド接続します。これをHelmやDocker Composeで展開し、Claude Console経由でCA証明書を登録します。プライベートのMCPサーバーはhttps://<サブドメイン>.<あなたのトンネルドメイン>/mcpのようにアクセス可能となり、Claude Managed AgentsとMessages APIからのみ見え、インターネットには公開されません。デフォルトではRFC 1918のプライベート範囲(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)のアドレスにのみダイヤルします。
現時点では、MCPトンネルは研究プレビュー段階であり、Claude Enterpriseプランの組織からリクエストにより利用可能です。稼働保証やサポートはなく、Cloudflareの稼働状況に依存します。プライベートデータベースにアクセスするエージェントアーキテクチャを構築している場合は、事前にアクセスをリクエストする価値があります。デモやWebhookテストのために「エージェントが自分のラップトップをインターネットに公開」するワークフローには該当しません(こちらは2aの内容です)。
3. rustunnelとエージェント運用の台頭
多くのトンネリングサービスは依然として人間が端末にいることを前提としています。rustunnelは、Rustで書かれた自己ホスト型のAGPLv3ライセンスのトンネルサーバーで、オプションの従量課金型マネージドサービスもあります。これはエージェントを主要操作者と想定して構築された小規模なプロジェクトです(執筆時点でGitHubスター数635)。しかし、そのMCP統合は非常に詳細にドキュメント化されています。
実際の配布方法
最初に指摘すべき修正点:rustunnelのMCPサーバー(rustunnel-mcp)はnpmパッケージではなく、ネイティブのRustバイナリです。Homebrew(brew tap joaoh82/rustunnel && brew install rustunnel)やソースからcargo build --release -p rustunnel-mcpで配布されます。stdio経由でMCPと通信します。
ツールはトンネルのライフサイクル全体をカバーします — 6つのツールがあります(4つではありません):
| ツール | 説明 |
|---|---|
create_tunnel |
トンネルを開き、公開URLを返す — HTTP/TCP/UDP、P2P、負荷分散プールとヘルスチェック |
list_tunnels |
アクティブなトンネル一覧 |
close_tunnel |
IDでトンネルを強制終了 |
list_regions |
サーバーリージョン一覧 |
get_connection_info |
クラウド/サンドボックスエージェント用CLIコマンド |
get_tunnel_history |
過去のトンネル活動履歴 |
ホスティングサービスは3つのリージョン(eu:ヘルシンキ、us:ヒルズボロ、ap:シンガポール)を運用し、クライアントは最も近いリージョンを自動選択します。料金は、3トンネルまで無料(サブドメインなし)、従量制($3/月最低、$0.10/GB)、自己ホストは無料です。自己ホスト展開ではPrometheusメトリクスやJSONラインの監査ログもオプションで公開可能です(サーバー設定による)。
自律ループの修正
この稿の最初の想定シナリオ — Claude CodeにStripeのWebhookハンドラーを実装させ、公開し、ダッシュボードを更新させる — は実現可能であり、次の2点を修正します:リージョンごとにURLが異なる(例:https://abc123.eu.edge.rustunnel.com)、get_connection_infoは「レイテンシ、リージョンデータ、リクエストログ」を返すのではなく、再接続に必要なCLIコマンドを返すだけです。
インストール方法
手動の努力順に3つの方法を紹介します:
Claude Codeプラグイン(最も簡単、rustunnelのREADMEに準拠):
/plugin install rustunnel
このプラグインはサーバーアドレスとAPIトークンを一度尋ねて保存し、バックグラウンドでMCPサーバーを起動します。.mcp.jsonの編集は不要です。ただし、ほとんどのClaude Codeプラグインが採用する2段階のパターン(/plugin marketplace add <owner>/<repo>と/plugin install <name>@<marketplace>)とは異なります。バージョンによって動作しない場合は、/plugin marketplace add joaoh82/rustunnelを実行し、リポジトリ内のplugins/claude-code/で正確なプラグイン名を確認してください。
手動stdio登録:
claude mcp add --transport stdio rustunnel \
--env RUSTUNNEL_TOKEN=YOUR_TOKEN \
-- rustunnel-mcp --server edge.rustunnel.com:4040 --api https://edge.rustunnel.com:8443
Claude Desktop(またはWindsurf、Cline — 同じJSON構造)、直接編集:
{
"mcpServers": {
"rustunnel": {
"command": "rustunnel-mcp",
"args": ["--server", "edge.rustunnel.com:4040", "--api", "https://edge.rustunnel.com:8443"],
"env": { "RUSTUNNEL_TOKEN": "<your-token>" }
}
}
}
Cursorの場合も、rustunnelはREADMEに「Add to Cursor」のワンクリック深リンクを提供しており、APIトークンを貼り付けるだけです。
4. 2026年のトンネリングエコシステムの比較
ngrok
ngrokの公式MCPサポートはエージェント管理のトンネル作成ではなく逆方向です。 ngrokのドキュメントは、ngrokをMCPゲートウェイとして使うパターンを示しています:ローカルのMCPサーバーの横にngrokエージェントを配置し、内部のAgent Endpointを宣言し、ngrokのTraffic Policyエンジンでクライアント(例:AnthropicのIP範囲のみ)を認証・制限します。これは、すでに運用しているMCPサーバーの前にセキュリティ・可観測性層を置くもので、rustunnelのようなエージェント操作とは異なります。エージェントがngrokアカウントを操作し、トンネルを作成・破棄するには、コミュニティ製のサーバー(例:ngrok-mcp on GitHubやComposioのngrokツールキット)を使う必要があります。
Pinggy
この稿ではPinggyを「ツールの公開には効果的だが、トンネル管理にはあまり焦点を当てていない」と記述しましたが、実際のPinggyのエージェント関連の機能はそれを超えています。Pinggyは二つのツール群を提供しています:
- Agent Skill (npx skills add https://pinggy.io) — エージェントがコマンドを実行前に読むリファレンスドキュメント
- 早期アクセスのMCPサーバー(pinggy_mcp) — Python/uv-ベースで、認証、トンネル管理(start_tunnel, stop_tunnel, list_tunnels, get_tunnel_info)、WebDAV共有、トークン管理を行います。認証はOAuth 2.0のDevice Authorization Grant(RFC 8628)を使用し、APIキーの貼り付けは不要です。これは実験的な段階であり、トンネルはMCPサーバーのプロセスに紐づき、ホストアプリの再起動時には消えます(これはむしろ利点です)。
特定のサーバーに対して「既存のローカルMCPサーバーをリモートクラウドエージェントに公開」するパターンでは、従来通りSSHのssh -p 443 -R0:localhost:5000 a.pinggy.ioやclaude mcp add --transport http MyLocalDB https://rndm-string.pinggy.link/mcpが有効です。
Cloudflare Tunnel
前のドラフトには全く含まれていませんでしたが、追加します:Cloudflareは開発者プラットフォーム全体向けのエージェントツールをSkillsプラグイン経由で提供しています(/plugin marketplace add cloudflare/skills、/plugin install cloudflare@cloudflare)。このcloudflareスキルは、Workers、ストレージ、AI、ネットワーキング(TunnelやSpectrumを含む)、およびCloudflareの管理するリモートMCPサーバー(DNS、WAFルールなど)をカバーします。専用のcreate_tunnelツールはなく、cloudflaredをCLI経由で操作するのが一般的です。
LocalCan、LocalXpose、frp、Playit.gg、localhost.run
これらは元の説明の通りです。LocalCan(macOSネイティブ、.localドメイン対応)やLocalXpose(クロスプラットフォームGUI/CLI)は開発者向けですが、現時点で公式のMCPサーバーは未確認です。frpはUDPやゲーム用途の自己ホスト型、Playit.ggはポートフォワーディング不要のAnycastルーティングを提供します。localhost.runはSSHベースの簡易公開ツールです。
5. Claude CodeとのMCPトンネル統合
Claude Codeは3つのMCPトランスポートをサポートします:stdio(デフォルト、ローカルプロセス用)、HTTP(リモート/クラウドサーバー推奨)、SSE(段階的廃止予定)。これらはclaude mcp addや.mcp.json / ~/.claude.jsonの手動編集で登録します。
自己署名証明書とTLS(ローカル開発時)
自己署名証明書を使ったローカルトンネルにClaude Codeをポイントすると、unable to verify the first certificateエラーが出ることがあります。これはNode.jsベースのMCPクライアント(Claude Codeも含む)が自己署名証明書をデフォルトで拒否するためです。回避策は以下の通りです:
{
"env": {
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
この設定は~/.claude/settings.jsonに記述します。ただし、これはすべてのClaude Codeのアウトバウンド接続に影響し、api.anthropic.comやMCPレジストリも含まれるため注意が必要です。より安全な方法として、NODE_EXTRA_CA_CERTSに実際のCA証明書を設定することも推奨されます。
6. CursorとWindsurfとの連携
CursorとWindsurfはJSONファイルを通じてMCPを設定します。パスは以下の通りです:
- Cursor — グローバル:
~/.cursor/mcp.json;プロジェクトごと:.cursor/mcp.json - Windsurf —
~/.codeium/windsurf/mcp_config.json
両者とも、Claude Desktopと同じmcpServers構造を使用します:
{
"mcpServers": {
"rustunnel": {
"command": "rustunnel-mcp",
"args": ["--server", "edge.rustunnel.com:4040", "--api", "https://edge.rustunnel.com:8443"],
"env": { "RUSTUNNEL_TOKEN": "your_api_token_here" }
}
}
}
注意点として、VS Codeは異なるスキーマ(serversと"type": "stdio")を~/.vscode/mcp.jsonまたは.vscode/mcp.jsonに使用しているため、Cursorの設定をそのまま流用できません。
設定後、CursorやWindsurfのエージェントは自動的に新しいサーバーを検知し、「Next.jsフロントエンドをインターネットに公開」などの指示に対してcreate_tunnelやPinggyのstart_tunnelを自動で呼び出します。
7. MCPゲートウェイによるスケーリング:BifrostとKong
複数のMCPサーバー、データベースサーバー、検索サーバーにエージェントを個別に接続するのは最初は簡単ですが、10や15のサーバーを運用する段階になると複雑になります。各サーバーは10〜30のツール定義を公開し、Claude Codeはそれらのツールカタログを全て読み込みます。ここでMCPゲートウェイの出番です。
Bifrost
Maxim AIのBifrostは、Go製のオープンソースAIゲートウェイです。これにより、外向きにMCPクライアント(トンネルやデータベースツール)として動作し、内向きにMCPサーバー(/mcpエンドポイントを統合)として動作します。コマンド一つで設定可能です:
claude mcp add --transport http bifrost http://localhost:8080/mcp
Bifrostはリクエストごとに約11マイクロ秒のオーバーヘッドを追加し、Code Modeでは入力トークンを最大92%削減できるとベンチマークで示されています。さらに、チームごとのレートリミットや予算管理、多プロバイダーのLLMルーティング(Anthropic、OpenAI、Bedrock、Vertex AIなど)もサポートします。
Kong AI Gateway
Kongは2025年10月にリリースされたKong Gateway 3.12で、AI Gatewayの一環としてAI MCP ProxyプラグインとAI MCP OAuth2プラグインを導入しました。これにより、既存のREST APIをMCPツールに変換したり、既存のMCPサーバーに直接リクエストをプロキシしたりできます。OAuth 2.0による認証もサポートします。KongをAPI管理に使っている場合、AI/MCPトラフィックも同じガバナンス下に置けます。
8. パーミッションモード:現状の「自律」とは何か
「エージェントが停止せずに動作し続ける」とは何かを正確に理解するために重要です:Claude Codeのデフォルトは、create_tunnelを含むすべてのMCPツール呼び出しを黙って実行しません。ほとんどのMCPクライアント(Cursorも含む)は、ツール実行前に承認を求めるプロンプトを表示します。Claude Codeは--dangerously-skip-permissionsや--permission-mode bypassPermissionsを使えば、ファイル編集やbashコマンド、MCPツール呼び出しをインタラクティブに承認せずに実行できるフルバイパスモードをサポートしています。これは、隔離された環境(コンテナ、VM、サンドボックス)向けに設計されたモードです。
また、2026年8月14日以降、AnthropicはPro、Max、Teamプランのデフォルトのパーミッションモードを「自動モード」に変更しました。これにより、手動承認を省略し、分類器が危険なコマンドを検知しやすくなっています。これにより、「エージェントが停止せずにトンネルを開く」ワークフローの実行時に、承認プロンプトの表示有無はセッションのパーミッションモードに依存します。
9. 結論
人間操作のCLIによるトンネルコマンドから、エージェント操作のMCPツール呼び出しへの移行は進行中であり、今日実装されています。ただし、ベンダー間での一様性はまだ完全ではありません。rustunnelとPinggyは、現時点で本格的な専用MCPサーバーを持つ唯一のベンダーです。ngrokとCloudflareは逆方向のアプローチ(ゲートウェイやプラットフォームツール)を採用しており、これは問題の解決策として正当な別解です。Anthropicの「MCP tunnels」研究プレビューは、これらのいずれも解決しません。これはプライベートネットワークとClaude間の接続機能であり、名前の衝突に注意が必要です。
変更履歴
- メタデータの削除:SEO用の「Target Keywords」や画像参照を削除し、シリーズのスタイルに合わせました。
- 大きな構造変更:”MCP tunnel”を2026年の二つの意味に分割。エージェント管理のトンネル(rustunnelやPinggyの内容)と、Anthropicの「MCP tunnels」(Claude Platformのプライベートネットワーク接続機能)を明確に区別しました。
- rustunnel-mcpの配布方法修正:
npx rustunnel-mcpは誤り。rustunnel-mcpはネイティブバイナリで、Homebrewやソースビルドで配布されます。インストール例も修正。 - MCPツール表の修正と追加:
create_tunnel、list_tunnels、close_tunnel、get_connection_infoに加え、list_regionsとget_tunnel_historyを追加。get_connection_infoの説明も修正(「レイテンシ、リージョンデータ、リクエストログ」ではなく、再接続CLIコマンドを返すと明示)。 - トンネルドメイン例の修正:
https://random-id.rustunnel.netからhttps://abc123.eu.edge.rustunnel.comに変更。 - 料金とリージョン情報追加:無料(3トンネル、サブドメインなし)、従量制($3/月最低、$0.10/GB)、自己ホスト無料。リージョンはeu(ヘルシンキ)、us(ヒルズボロ)、ap(シンガポール)。
- Claude Codeプラグインのインストールフロー:
/plugin install rustunnelはドキュメント通りだが、/plugin marketplace addを省略している点に注意。動かない場合は/plugin marketplace add joaoh82/rustunnelを推奨。 - Pinggyのエージェント機能拡張と修正:
pinggy_mcpは13ツールの認証・トンネル管理・ファイル共有・トークン管理を行う実験的サーバー。SSH例も維持。 - ngrokの第一者MCPサポート修正:逆方向のゲートウェイ設定が正解。エージェント操作のngrokはコミュニティ製のサーバーのみ。
- Cloudflare Tunnel追加:プラグイン経由でWorkersやSpectrum、リモートMCPサーバーを管理。専用の
create_tunnelはなし。 - Bifrostコマンド修正:
https://localhost:8080/mcpからhttp://localhost:8080/mcpに変更。 - Bifrostのパフォーマンスと特徴:リクエストごと約11μs、Code Modeで入力トークン最大92%削減。多チーム・多プロバイダー対応。
- Kongのプラグインとリリース日:AI MCP ProxyとOAuth2を2025年10月リリースのKong Gateway 3.12に導入。
- TLS設定の注意点:
NODE_TLS_REJECT_UNAUTHORIZEDはすべてのアウトバウンドに影響。NODE_EXTRA_CA_CERTS推奨。 - CursorとVS Codeの設定スキーマ差異:Windsurfのパスも追加。VS Codeは異なるスキーマを使用。
- パーミッションモードの詳細:デフォルトは承認必須。
--dangerously-skip-permissionsやbypassPermissionsで完全自動化可能。2026年8月のアップデートで自動モードが標準に。 - MCPの歴史と背景:2024年11月25日リリース、ホスト/クライアント/サーバーの役割、M×NからM+Nへのフレーム、Build 2025の運営委員会参加など。
- プロモーション表現の整理:シリーズのスタイルに合わせて簡潔に調整。
Related InstaTunnel pages
Continue from this article into the most relevant product guides and workflows.
Related Topics
Keep building with InstaTunnel
Read the docs for implementation details or compare plans before you ship.