---
title: Túneles MCP
url: https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/overview
description: Conecta Claude de forma segura a servidores MCP que se ejecutan en tu red privada sin abrir puertos de entrada ni exponer servicios a la internet pública.
---

Los túneles MCP te permiten conectar Claude a servidores Model Context Protocol (MCP) que se ejecutan dentro de tu red privada. El tráfico fluye a través de una conexión exclusivamente de salida, por lo que no necesitas abrir puertos de entrada en el firewall, exponer servicios a la internet pública ni incluir en la lista de permitidos los rangos de IP de Anthropic en tu origen.

<Note>
  Los túneles MCP están en "research preview" (vista previa de investigación). [Solicita acceso](https://claude.com/form/mcp-tunnels) para probarlos. Se proporcionan "tal cual", sin ningún compromiso de tiempo de actividad, soporte o continuidad, y dependen de un proveedor de red externo (Cloudflare) que no asume ningún compromiso de disponibilidad para el transporte subyacente. Anthropic puede modificar o descontinuar los túneles MCP en cualquier momento.
</Note>

Para conocer la elegibilidad de Retención Cero de Datos y HIPAA BAA, consulta [API y retención de datos](https://platform.claude.com/docs/es/manage-claude/api-and-data-retention#feature-eligibility).

## Cómo funciona

El [stack del túnel](https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/concepts#components) consta de dos componentes que se ejecutan dentro de tu red:

* **[cloudflared](https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/concepts#components):** el conector de túnel de código abierto de Cloudflare. Inicia conexiones exclusivamente de salida hacia el [borde del túnel](https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/concepts#components) y transporta tráfico cifrado desde Anthropic hasta tu proxy.
* **[Proxy](https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/concepts#components):** el componente de enrutamiento de Anthropic. Termina el [TLS interno](https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/concepts#components), valida que las IP upstream estén dentro de un rango permitido y enruta cada solicitud al [servidor MCP upstream](https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/concepts#components) correcto según el nombre de host.

Cada servidor MCP que expones obtiene un nombre de host bajo tu dominio de túnel (por ejemplo, `docs.<your-tunnel-domain>`). Adjuntas estos nombres de host a una sesión de Agente Gestionado en la Claude Console, o los pasas a la Messages API a través del [conector MCP](https://platform.claude.com/docs/es/agents-and-tools/mcp-connector).

## Requisitos previos

Antes de desplegar, asegúrate de tener:

* Un destino de despliegue: un clúster de Kubernetes, o una VM con Docker y Docker Compose.

* Un túnel. Crea uno en la Claude Console (consulta [Crear un túnel](https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/console#create-a-tunnel)) o a través de la API; el hook de configuración del chart de Helm también puede crear uno por ti durante la instalación.

* Una forma de que tu stack se autentique ante la Tunnels API. Elige una:

  * **[Acceso programático](https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/concepts#credential-provisioning) (recomendado).** Configura [Workload Identity Federation](https://platform.claude.com/docs/es/manage-claude/workload-identity-federation) cuando crees el túnel. Tu stack acuña tokens de API de corta duración desde tu proveedor de identidad, obtiene el token del túnel, y genera y registra un certificado de CA automáticamente. Requiere permiso para gestionar reglas de federación, un emisor OIDC registrado y una regla de federación con el alcance `workspace:manage_tunnels`.
  * **[Manual](https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/concepts#credential-provisioning).** Proporciona tú mismo credenciales estáticas: el token del túnel desde la Console y un certificado de servidor firmado por una CA que registres allí. Consulta [Obtener los detalles de conexión](https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/console#get-the-connection-details) y [Agregar un certificado de CA](https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/console#add-a-ca-certificate).

* Uno o más servidores MCP ejecutándose en tu red privada. Consulta [Servidores MCP remotos](https://platform.claude.com/docs/es/agents-and-tools/remote-mcp-servers) para ver ejemplos.

* Conectividad de salida como se indica en [Requisitos de red](https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/overview#network-requirements).

### Requisitos de red

| Componente                  | Destino                                                  | Puerto / protocolo  | Usado durante                          |
| --------------------------- | -------------------------------------------------------- | ------------------- | -------------------------------------- |
| Componente de configuración | `api.anthropic.com`                                      | 443 TCP             | Aprovisionamiento y rotación de tokens |
| cloudflared                 | Borde del túnel (`198.41.192.0/19`, `2606:4700:a0::/44`) | 7844 TCP y UDP      | Tiempo de ejecución                    |
| Proxy                       | Tus servidores MCP upstream                              | Según configuración | Tiempo de ejecución                    |

## Modelo de seguridad

### Capas de seguridad

Tres capas independientes protegen cada solicitud:

| Capa                                                                            | Protege contra                                                                                     |
| ------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| mTLS externo entre Anthropic y el proveedor de transporte, con validación de IP | Clientes no autorizados que alcancen el túnel                                                      |
| TLS interno desde el back end de Anthropic hasta tu proxy                       | Inspección de la carga útil por parte del proveedor de transporte o cualquier intermediario de red |
| OAuth en cada servidor MCP                                                      | Uso no autorizado de herramientas MCP por tráfico de túnel autenticado                             |

El transporte del túnel se ejecuta en la red de Cloudflare. Debido a que el proxy termina el TLS interno usando un certificado que solo tú posees, Cloudflare no puede leer las cargas útiles de solicitud o respuesta. Anthropic no se conecta a un túnel hasta que se registra un certificado de CA, por lo que las cargas útiles siempre están cifradas cuando cruzan la red de Cloudflare. Cloudflare sí recibe metadatos de conexión; consulta [Lo que el proveedor de transporte puede observar](https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/overview#what-the-transport-provider-can-observe).

### Modelo de responsabilidad compartida

| Anthropic gestiona                                                                  | Tu organización gestiona                                                                                                                                        |
| ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Control de acceso al túnel                                                          | Todo el contenido y tráfico que transita por tu túnel, y el cumplimiento de las políticas de uso aceptable de terceros aplicables (incluidas las de Cloudflare) |
| Validar tu certificado de CA antes de conectarse a tu proxy                         | Adherencia a la guía de despliegue en estas páginas                                                                                                             |
| Garantizar que Claude solo envíe solicitudes a túneles propiedad de tu organización | Proteger los tokens de túnel y las claves privadas TLS                                                                                                          |
|                                                                                     | Gestionar el certificado de servidor y renovarlo antes de que expire                                                                                            |
|                                                                                     | Configurar OAuth en cada servidor MCP                                                                                                                           |
|                                                                                     | Restringir el acceso de red para el proxy y los servidores MCP                                                                                                  |
|                                                                                     | Notificar a Anthropic si sospechas de una brecha                                                                                                                |

<Warning>
  Si un atacante obtiene tu token de túnel **y** una de tus claves privadas TLS, podría suplantar tu proxy y leer las cargas útiles de las solicitudes MCP. Trata ambos como secretos de alto valor. Consulta [Seguridad de los túneles MCP](https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/security) para obtener orientación sobre el endurecimiento.
</Warning>

### Lo que el proveedor de transporte puede observar

Cloudflare proporciona el transporte de salida. No puede leer las cargas útiles de solicitud o respuesta MCP, pero sí recibe los siguientes metadatos de conexión:

* la dirección IP de salida del host que ejecuta cloudflared
* una huella digital del host de cloudflared
* el tiempo de conexión y el volumen de bytes
* el subdominio `*.tunnel.anthropic.com` asignado a tu túnel

El acuerdo de Anthropic con Cloudflare restringe el uso que Cloudflare hace de esta telemetría. Cloudflare actúa como subprocesador para esta vista previa de investigación.

## Desplegar un túnel

Si eres nuevo en los túneles MCP, comienza con el inicio rápido para obtener un túnel funcional localmente antes de configurar un despliegue de producción.

<CardGroup cols={2}>
  <Card title="Inicio rápido" icon="rocket" href="https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/quickstart">
    El camino más corto hacia un túnel funcional: Docker Compose con un servidor MCP de ejemplo.
  </Card>

  <Card title="Desplegar con Helm" icon="stack" href="https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/deploy-helm">
    Instala en un clúster de Kubernetes usando el chart de Helm de Anthropic.
  </Card>

  <Card title="Desplegar con Docker Compose" icon="cube" href="https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/deploy-compose">
    Instala en una VM usando Docker Compose.
  </Card>
</CardGroup>

Cómo elegir entre ellos:

* **Destino de despliegue**

  * **Helm** al desplegar en Kubernetes.
  * **Docker Compose** para un solo host o pruebas locales.

* **Autenticación para la configuración**

  * **Acceso programático** (a través de Workload Identity Federation) cuando tienes un proveedor de identidad OIDC como un clúster de Kubernetes, IAM en la nube o SPIFFE.
  * **Credenciales manuales** cuando no lo tienes, o cuando estás haciendo pruebas.

## Usar los servidores MCP tunelizados

Una vez que tu túnel está activo (tiene un certificado de CA activo y tu stack de túnel está conectado), los servidores MCP upstream son accesibles desde los Agentes Gestionados de Claude y la Messages API.

<Note>
  Los túneles MCP creados a través de la Console no están disponibles como conectores en claude.ai.
</Note>

En ambos casos, el túnel transporta tráfico cifrado a tu servidor MCP pero no se autentica ante él. Si el servidor MCP upstream requiere su propia autenticación (OAuth, bearer token), proporciónala de la misma manera que lo harías para cualquier otro servidor MCP; es independiente del túnel.

### Agentes Gestionados (Console)

1. En la página [Sessions](https://platform.claude.com/sessions) (`platform.claude.com/sessions`) de la Claude Console, crea una sesión y elige **Create new agent** para poder editar la lista de servidores MCP.
2. Haz clic en **+ MCP Server** y abre el menú desplegable. Los túneles en el workspace de la sesión que tienen al menos un certificado activo aparecen en la parte superior de la lista, por encima del catálogo de conectores públicos.
3. Selecciona el túnel y proporciona el **Subdomain** que tu proxy enruta a un servidor MCP específico, y el **Path** que el servidor MCP upstream espera. La línea **Resolves to** muestra la URL exacta.

### Messages API

Pasa la URL del servidor MCP upstream en el array `mcp_servers`, de la misma manera que cualquier otro servidor MCP remoto. El cuerpo de la solicitud y el encabezado `anthropic-beta` siguen el formato estándar del [conector MCP](https://platform.claude.com/docs/es/agents-and-tools/mcp-connector); solo la `url` es específica del túnel. El siguiente ejemplo usa el encabezado beta `mcp-client` del conector MCP, que es independiente del beta `mcp-tunnels` usado por la [Tunnels API](https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/reference). Realiza la solicitud en el workspace en el que se creó el túnel usando una clave de API para ese workspace o, si tu clave tiene acceso a múltiples workspaces, estableciendo el [encabezado `anthropic-workspace-id`](https://platform.claude.com/docs/es/manage-claude/authentication#select-a-workspace) a ese workspace.

El host de la URL es `<subdomain>.<your-tunnel-domain>`. La ruta depende de tu servidor MCP upstream, no del túnel: el transporte `streamable-http` de FastMCP sirve en `/mcp`, y otros servidores pueden usar `/` o una ruta personalizada (consulta la documentación del servidor). El proxy reenvía la ruta sin modificar.

<CodeGroup>
  ```bash cURL
  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-5-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"}]
    }'
  ```

  ```bash CLI
  ant beta:messages create --beta mcp-client-2025-11-20 <<'YAML'
  model: claude-opus-5-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
  YAML
  ```

  ```python Python
  client = anthropic.Anthropic()

  response = client.beta.messages.create(
      model="claude-opus-5-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)
  ```

  ```typescript TypeScript
  const anthropic = new Anthropic();

  const response = await anthropic.beta.messages.create({
    model: "claude-opus-5-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"]
  });

  console.log(response);
  ```

  ```csharp C#
  AnthropicClient client = new();

  var parameters = new MessageCreateParams
  {
      Model = Messages::Model.ClaudeOpus5_5,
      MaxTokens = 1000,
      Messages = new List<BetaMessageParam>
      {
          new() { Role = Role.User, Content = "Use the hello tool to greet tunnel." }
      },
      McpServers = new List<BetaRequestMcpServerUrlDefinition>
      {
          new()
          {
              Url = "https://echo.YOUR_TUNNEL_DOMAIN_HERE/mcp",
              Name = "echo"
          }
      },
      Tools = new List<BetaToolUnion>
      {
          new BetaMcpToolset("echo")
      },
      Betas = ["mcp-client-2025-11-20"]
  };

  var message = await client.Beta.Messages.Create(parameters);
  Console.WriteLine(message);
  ```

  ```go Go
  client := anthropic.NewClient()

  response, err := client.Beta.Messages.New(context.TODO(), anthropic.BetaMessageNewParams{
  	Model:     anthropic.ModelClaudeOpus5_5,
  	MaxTokens: 1000,
  	Messages: []anthropic.BetaMessageParam{
  		anthropic.NewBetaUserMessage(anthropic.NewBetaTextBlock("Use the hello tool to greet tunnel.")),
  	},
  	MCPServers: []anthropic.BetaRequestMCPServerURLDefinitionParam{
  		{
  			URL:  "https://echo.YOUR_TUNNEL_DOMAIN_HERE/mcp",
  			Name: "echo",
  		},
  	},
  	Tools: []anthropic.BetaToolUnionParam{
  		{OfMCPToolset: &anthropic.BetaMCPToolsetParam{
  			MCPServerName: "echo",
  		}},
  	},
  	Betas: []anthropic.AnthropicBeta{
  		anthropic.AnthropicBetaMCPClient2025_11_20,
  	},
  })
  if err != nil {
  	log.Fatal(err)
  }
  fmt.Println(response)
  ```

  ```java Java
  import com.anthropic.models.beta.messages.BetaMcpToolset;
  // ...
  import com.anthropic.models.beta.messages.BetaRequestMcpServerUrlDefinition;
  // ...

  void main() {
      AnthropicClient client = AnthropicOkHttpClient.fromEnv();

      MessageCreateParams params = MessageCreateParams.builder()
          .model(Model.CLAUDE_OPUS_5_5)
          .maxTokens(1000L)
          .addUserMessage("Use the hello tool to greet tunnel.")
          .addMcpServer(BetaRequestMcpServerUrlDefinition.builder()
              .url("https://echo.YOUR_TUNNEL_DOMAIN_HERE/mcp")
              .name("echo")
              .build())
          .addTool(BetaMcpToolset.builder()
              .mcpServerName("echo")
              .build())
          .addBeta("mcp-client-2025-11-20")
          .build();

      BetaMessage response = client.beta().messages().create(params);
      IO.println(response);
  }
  ```

  ```php PHP
  $client = new Client();

  $message = $client->beta->messages->create(
      maxTokens: 1000,
      messages: [
          ['role' => 'user', 'content' => 'Use the hello tool to greet tunnel.']
      ],
      model: 'claude-opus-5-5',
      mcpServers: [
          [
              'type' => 'url',
              'url' => 'https://echo.YOUR_TUNNEL_DOMAIN_HERE/mcp',
              'name' => 'echo',
          ],
      ],
      tools: [
          [
              'type' => 'mcp_toolset',
              'mcpServerName' => 'echo',
          ],
      ],
      betas: ['mcp-client-2025-11-20'],
  );

  echo $message;
  ```

  ```ruby Ruby
  client = Anthropic::Client.new

  response = client.beta.messages.create(
    model: "claude-opus-5-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"]
  )

  puts response
  ```
</CodeGroup>

Para autenticarte ante el servidor MCP upstream (`authorization_token`) y otras opciones de `mcp_servers`, consulta [conector MCP](https://platform.claude.com/docs/es/agents-and-tools/mcp-connector).

## Próximos pasos

<CardGroup cols={2}>
  <Card title="Seguridad" icon="lock" href="https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/security">
    Orientación sobre endurecimiento, rotación de credenciales y respuesta a brechas.
  </Card>

  <Card title="Solución de problemas" icon="wrench" href="https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/troubleshooting">
    Diagnostica problemas de conectividad, TLS y enrutamiento.
  </Card>

  <Card title="Referencia" icon="book" href="https://platform.claude.com/docs/es/agents-and-tools/mcp-tunnels/reference">
    Campos de configuración del proxy, la Tunnels API, requisitos de certificados y el componente de configuración.
  </Card>

  <Card title="Conector MCP" icon="link" href="https://platform.claude.com/docs/es/agents-and-tools/mcp-connector">
    Usa servidores tunelizados desde la Messages API.
  </Card>
</CardGroup>
