MCP 隧道让您能够将 Claude 连接到在您的私有网络内运行的 Model Context Protocol(MCP)服务器。流量通过仅出站的连接传输,因此您无需开放入站防火墙端口、将服务暴露到公共互联网,或在您的源站上将 Anthropic 的 IP 范围加入允许列表。
MCP 隧道目前处于测试阶段(研究预览版)。申请访问权限以进行试用。该功能按"原样"提供,不附带任何正常运行时间、支持或持续性承诺,并且依赖于第三方网络提供商(Cloudflare),该提供商对底层传输不作任何可用性承诺。Anthropic 可能随时修改或停止提供 MCP 隧道。
有关零数据保留和 HIPAA BAA 资格的信息,请参阅 API 和数据保留。
隧道堆栈由两个在您的网络内运行的组件组成:
您暴露的每个 MCP 服务器都会获得一个位于您的隧道域名下的主机名(例如 docs.<your-tunnel-domain>)。您可以在 Console 中将这些主机名附加到托管代理会话,或通过 MCP 连接器将它们传递给 Messages API。
在部署之前,请确保您具备以下条件:
org:manage_tunnels 范围的联合规则。| 组件 | 目标 | 端口 / 协议 | 使用阶段 |
|---|---|---|---|
| 设置组件 | api.anthropic.com | 443 TCP | 配置和令牌轮换 |
| cloudflared | 隧道边缘(198.41.192.0/19、2606:4700:a0::/44) | 7844 TCP 和 UDP | 运行时 |
| 代理 | 您的上游 MCP 服务器 | 按配置而定 | 运行时 |
三个独立的层保护每个请求:
| 层 | 防范对象 |
|---|---|
| Anthropic 与传输提供商之间的外层 mTLS,带 IP 验证 | 未经授权的客户端访问隧道 |
| 从 Anthropic 后端到您的代理的内层 TLS | 传输提供商或任何网络中间方对有效负载的检查 |
| 每个 MCP 服务器上的 OAuth | 已通过隧道身份验证的流量未经授权使用 MCP 工具 |
隧道传输在 Cloudflare 的网络上运行。由于代理使用只有您持有的证书来终止内层 TLS,Cloudflare 无法读取请求或响应的有效负载。在注册 CA 证书之前,Anthropic 不会连接到隧道,因此有效负载在穿越 Cloudflare 网络时始终处于加密状态。Cloudflare 确实会接收连接元数据;请参阅传输提供商可以观察到的内容。
| Anthropic 负责 | 您的组织负责 |
|---|---|
| 隧道访问控制 | 通过您的隧道传输的所有内容和流量,以及遵守适用的第三方可接受使用政策(包括 Cloudflare 的政策) |
| 在连接到您的代理之前验证您的 CA 证书 | 遵守这些页面上的部署指南 |
| 确保 Claude 仅向您的组织拥有的隧道发送请求 | 保护隧道令牌和 TLS 私钥的安全 |
| 管理服务器证书并在其过期前进行续期 | |
| 在每个 MCP 服务器上配置 OAuth | |
| 限制代理和 MCP 服务器的网络访问 | |
| 如果您怀疑发生泄露,通知 Anthropic |
如果攻击者获取了您的隧道令牌以及您的某个 TLS 私钥,他们可能会冒充您的代理并读取 MCP 请求的有效负载。请将两者都视为高价值机密。有关加固指南,请参阅 MCP 隧道安全。
Cloudflare 提供出站传输。它无法读取 MCP 请求或响应的有效负载,但会接收以下连接元数据:
*.tunnel.anthropic.com 子域名Anthropic 与 Cloudflare 的协议限制了 Cloudflare 对此遥测数据的使用。在此研究预览版中,Cloudflare 作为子处理方。
如果您是 MCP 隧道的新用户,请先从快速入门开始,在本地获得一个可用的隧道,然后再配置生产部署。
获得可用隧道的最短路径:使用 Docker Compose 和示例 MCP 服务器。
使用 Anthropic Helm chart 在 Kubernetes 集群上安装。
使用 Docker Compose 在虚拟机上安装。
如何选择:
一旦您的隧道处于活动状态(具有活动的 CA 证书且您的隧道堆栈已连接),上游 MCP 服务器即可从 Claude 托管代理和 Messages API 访问。
通过 Console 创建的 MCP 隧道在 claude.ai 中不可用作连接器。
在这两种情况下,隧道都会将加密流量传输到您的 MCP 服务器,但不会对其进行身份验证。如果上游 MCP 服务器需要自己的身份验证(OAuth、bearer 令牌),请按照与任何其他 MCP 服务器相同的方式提供;这与隧道无关。
在 mcp_servers 数组中传递上游 MCP 服务器的 URL,方式与任何其他远程 MCP 服务器相同。请求正文和 anthropic-beta 标头遵循标准的 MCP 连接器格式;只有 url 是隧道特定的。以下示例使用 MCP 连接器的 mcp-client 测试版标头,它与 Tunnels API 使用的 mcp-tunnels 测试版是分开的。请使用创建隧道所在工作区的 API 密钥(Console Settings > API keys)。
URL 的主机为 <subdomain>.<your-tunnel-domain>。路径取决于您的上游 MCP 服务器,而非隧道:FastMCP 的 streamable-http 传输在 /mcp 提供服务,其他服务器可能使用 / 或自定义路径(请查阅服务器的文档)。代理会原样转发路径。
curl https://api.anthropic.com/v1/messages \
-H "Content-Type: application/json" \
-H "X-API-Key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: mcp-client-2025-11-20" \
-d '{
"model": "claude-opus-4-8",
"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"}]
}'有关各种语言的 SDK 示例,请参阅 MCP 连接器;唯一隧道特定的值是 url。
加固指南、凭据轮换和泄露响应。
诊断连接、TLS 和路由问题。
代理配置字段、Tunnels API、证书要求和设置组件。
从 Messages API 使用通过隧道连接的服务器。
Was this page helpful?