Claude Platform Docs
MessagesMCPトンネル

MCPトンネル

インバウンドポートを開放したり、サービスをパブリックインターネットに公開したりすることなく、プライベートネットワーク内で稼働するMCPサーバーにClaudeを安全に接続します。

MCPトンネルを使用すると、プライベートネットワーク内で稼働する「Model Context Protocol」、すなわちMCPのサーバーにClaudeを接続できます。トラフィックはアウトバウンド専用の接続を経由して流れるため、インバウンドのファイアウォールポートを開放したり、サービスをパブリックインターネットに公開したり、オリジン側でAnthropicのIP範囲を許可リストに登録したりする必要はありません。

ゼロデータ保持およびHIPAA BAAの適格性については、APIとデータ保持を参照してください。

仕組み

トンネルスタックは、ネットワーク内で稼働する2つのコンポーネントで構成されます。

  • cloudflared: Cloudflareのオープンソースのトンネルコネクタです。トンネルエッジへのアウトバウンド専用接続を開始し、Anthropicからプロキシへ暗号化されたトラフィックを運びます。
  • プロキシ: Anthropicのルーティングコンポーネントです。内側のTLSを終端し、アップストリームのIPが許可された範囲内にあることを検証し、ホスト名に基づいて各リクエストを正しいアップストリームMCPサーバーにルーティングします。

公開する各MCPサーバーには、トンネルドメイン配下のホスト名(例:docs.<your-tunnel-domain>)が割り当てられます。これらのホスト名は、Claude ConsoleでManaged Agentセッションにアタッチするか、MCPコネクタを通じてMessages APIに渡します。

前提条件

デプロイする前に、以下が揃っていることを確認してください。

  • デプロイ先:Kubernetesクラスター、またはDockerとDocker Composeを備えたVM。
  • トンネル。Claude Consoleで作成するか(トンネルを作成するを参照)、APIを通じて作成します。Helmチャートのセットアップフックでも、インストール時にトンネルを作成できます。
  • スタックがTunnels APIに対して認証する手段。次のいずれかを選択します。
    • プログラムによるアクセス(推奨)。 トンネル作成時にWorkload Identity Federationを設定します。スタックはIDプロバイダーから短期間有効なAPIトークンを発行し、トンネルトークンを取得し、CA証明書を自動的に生成して登録します。フェデレーションルールを管理する権限、登録済みのOIDC発行者、およびworkspace:manage_tunnelsスコープを持つフェデレーションルールが必要です。
    • 手動 静的な認証情報を自分で用意します。Consoleから取得したトンネルトークンと、Consoleに登録したCAによって署名されたサーバー証明書です。接続の詳細を取得するおよびCA証明書を追加するを参照してください。
  • プライベートネットワーク内で稼働する1つ以上のMCPサーバー。例についてはリモートMCPサーバーを参照してください。
  • ネットワーク要件に記載されているアウトバウンド接続。

ネットワーク要件

コンポーネント宛先ポート / プロトコル使用タイミング
セットアップコンポーネントapi.anthropic.com443 TCPプロビジョニングおよびトークンローテーション
cloudflaredトンネルエッジ(198.41.192.0/192606:4700:a0::/447844 TCPおよびUDP実行時
プロキシアップストリームMCPサーバー設定に応じて実行時

セキュリティモデル

セキュリティレイヤー

3つの独立したレイヤーがすべてのリクエストを保護します。

レイヤー防御対象
Anthropicとトランスポートプロバイダー間の外側のmTLS(IP検証付き)認可されていないクライアントによるトンネルへの到達
Anthropicのバックエンドからプロキシへの内側のTLSトランスポートプロバイダーやネットワーク中継者によるペイロードの検査
各MCPサーバーでのOAuth認証済みトンネルトラフィックによるMCPツールの不正使用

トンネルのトランスポートはCloudflareのネットワーク上で動作します。プロキシは、お客様だけが保持する証明書を使用して内側のTLSを終端するため、Cloudflareはリクエストやレスポンスのペイロードを読み取ることができません。AnthropicはCA証明書が登録されるまでトンネルに接続しないため、ペイロードはCloudflareのネットワークを通過する際に常に暗号化されています。ただし、Cloudflareは接続メタデータを受け取ります。トランスポートプロバイダーが観測できる情報を参照してください。

責任共有モデル

Anthropicの担当範囲お客様の組織の担当範囲
トンネルのアクセス制御トンネルを通過するすべてのコンテンツとトラフィック、および適用されるサードパーティの利用規約(Cloudflareのものを含む)の遵守
プロキシに接続する前のCA証明書の検証これらのページに記載されたデプロイガイダンスの遵守
Claudeがお客様の組織が所有するトンネルにのみリクエストを送信することの保証トンネルトークンとTLS秘密鍵の保護
サーバー証明書の管理と有効期限前の更新
各MCPサーバーでのOAuthの設定
プロキシおよびMCPサーバーへのネットワークアクセスの制限
侵害が疑われる場合のAnthropicへの通知

トランスポートプロバイダーが観測できる情報

Cloudflareはアウトバウンドのトランスポートを提供します。CloudflareはMCPのリクエストやレスポンスのペイロードを読み取ることはできませんが、以下の接続メタデータを受け取ります。

  • cloudflaredを実行しているホストのイグレスIPアドレス
  • cloudflaredホストのフィンガープリント
  • 接続のタイミングとバイト量
  • トンネルに割り当てられた*.tunnel.anthropic.comサブドメイン

AnthropicとCloudflareの契約により、Cloudflareによるこのテレメトリの使用は制限されています。Cloudflareは、このリサーチプレビューにおいてサブプロセッサーとして機能します。

トンネルをデプロイする

MCPトンネルを初めて使用する場合は、本番デプロイを設定する前に、クイックスタートから始めてローカルで動作するトンネルを用意してください。

動作するトンネルへの最短経路:サンプルMCPサーバーを使用したDocker Compose。

AnthropicのHelmチャートを使用してKubernetesクラスターにインストールします。

Docker Composeを使用してVMにインストールします。

選択の基準:

  • デプロイ先
    • Kubernetesにデプロイする場合はHelm
    • 単一ホストまたはローカルテストの場合はDocker Compose
  • セットアップ時の認証
    • Kubernetesクラスター、クラウドIAM、SPIFFEなどのOIDC IDプロバイダーがある場合はプログラムによるアクセス(Workload Identity Federation経由)。
    • それがない場合、またはテスト中の場合は手動の認証情報

トンネル経由のMCPサーバーを使用する

トンネルがアクティブになると(アクティブなCA証明書があり、トンネルスタックが接続されている状態)、アップストリームMCPサーバーはClaude Managed AgentsおよびMessages APIから到達可能になります。

どちらの場合も、トンネルは暗号化されたトラフィックをMCPサーバーまで運びますが、MCPサーバーに対する認証は行いません。アップストリームMCPサーバーが独自の認証(OAuth、ベアラートークン)を必要とする場合は、他のMCPサーバーと同じ方法で指定してください。これはトンネルとは独立しています。

Managed Agents(Console)

  1. Managed Agents > Sessionsでセッションを作成し、MCPサーバーリストを編集できるようにCreate new agentを選択します。
  2. + MCP Serverをクリックしてドロップダウンを開きます。セッションのワークスペース内にあり、少なくとも1つのアクティブな証明書を持つトンネルが、パブリックコネクタカタログの上、リストの先頭に表示されます。
  3. トンネルを選択し、プロキシが特定のMCPサーバーにルーティングするSubdomainと、アップストリームMCPサーバーが期待するPathを指定します。Resolves toの行に正確なURLが表示されます。

Messages API

他のリモートMCPサーバーと同様に、アップストリームMCPサーバーのURLをmcp_servers配列に渡します。リクエストボディとanthropic-betaヘッダーは標準のMCPコネクタ形式に従い、urlのみがトンネル固有です。以下の例ではMCPコネクタのmcp-clientベータヘッダーを使用しています。これはTunnels APIで使用されるmcp-tunnelsベータとは別のものです。トンネルが作成されたワークスペースでリクエストを行ってください。そのワークスペースのAPIキーを使用するか、キーが複数のワークスペースにアクセスできる場合はanthropic-workspace-idヘッダーをそのワークスペースに設定します。

URLのホストは<subdomain>.<your-tunnel-domain>です。パスはトンネルではなくアップストリームMCPサーバーに依存します。FastMCPのstreamable-httpトランスポートは/mcpで提供され、他のサーバーは/やカスタムパスを使用する場合があります(サーバーのドキュメントを確認してください)。プロキシはパスをそのまま転送します。

client = anthropic.Anthropic()

response = client.beta.messages.create(
    model="claude-opus-5",
    max_tokens=1000,
    messages=[{"role": "user", "content": "Use the hello tool to greet tunnel."}],
    mcp_servers=[
        {
            "type": "url",
            "url": "https://echo.YOUR_TUNNEL_DOMAIN_HERE/mcp",
            "name": "echo",
        }
    ],
    tools=[{"type": "mcp_toolset", "mcp_server_name": "echo"}],
    betas=["mcp-client-2025-11-20"],
)

print(response)

アップストリームMCPサーバーへの認証(authorization_token)およびその他のmcp_serversオプションについては、MCPコネクタを参照してください。

次のステップ

強化ガイダンス、認証情報のローテーション、侵害への対応。

接続、TLS、ルーティングの問題を診断します。

プロキシ設定フィールド、Tunnels API、証明書の要件、セットアップコンポーネント。

Messages APIからトンネル経由のサーバーを使用します。

Was this page helpful?