• Messages
  • Agents gérés
  • Administration
Search...
⌘K
Premiers pas
Introduction à ClaudeDémarrage rapide
Développer avec Claude
Aperçu des fonctionnalitésUtilisation de l'API MessagesRaisons d'arrêt et repliRefus et repliCrédit de repli
Capacités du modèle
Réflexion étendueRéflexion adaptativeEffortBudgets de tâches (bêta)Mode rapide (aperçu de recherche)Sorties structuréesCitationsMessages en streamingTraitement par lotsRésultats de rechercheRefus en streamingPrise en charge multilingueEmbeddings
Outils
AperçuFonctionnement de l'utilisation d'outilsTutoriel : Créer un agent utilisant des outilsDéfinir des outilsGérer les appels d'outilsUtilisation d'outils en parallèleTool Runner (SDK)Utilisation d'outils stricteUtilisation d'outils avec mise en cache des promptsOutils serveurDépannageOutil de recherche webOutil de récupération webOutil d'exécution de codeOutil conseillerOutil de mémoireOutil BashOutil d'utilisation de l'ordinateurOutil d'éditeur de texte
Infrastructure des outils
Référence des outilsGérer le contexte des outilsCombinaisons d'outilsRecherche d'outilsAppel d'outils programmatiqueStreaming d'outils granulaire
Gestion du contexte
Fenêtres de contexteCompactageÉdition du contexteMise en cache des promptsMessages système en cours de conversationCréer un mode d'orchestrationDiagnostics de cache (bêta)Comptage de tokens
Travailler avec des fichiers
API FilesPrise en charge des PDFImages et vision
Compétences
AperçuDémarrage rapideBonnes pratiquesCompétences pour l'entrepriseCompétences dans l'API
MCP
Serveurs MCP distantsConnecteur MCP
AperçuArchitecture et composantsDémarrage rapideGérer dans la ConsoleDéployer avec HelmDéployer avec Docker ComposeSécuritéDépannageRéférence
Claude sur les plateformes cloud
Amazon BedrockAmazon Bedrock (ancienne version)Claude Platform sur AWSMicrosoft FoundryVertex AI
Log in
Déployer avec Helm
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Amazon Bedrock
  • Google Cloud's Vertex AI

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Messages/Tunnels MCP

Déployer des tunnels MCP avec Helm

Installez la pile de tunnel sur un cluster Kubernetes à l'aide du chart Helm d'Anthropic.

Les tunnels MCP sont en aperçu de recherche. Demandez l'accès pour les essayer.

Le chart Helm d'Anthropic installe la pile de tunnel sous la forme d'un seul Deployment et l'attache au tunnel que vous avez créé dans la Console.

Avant de commencer

Vous avez besoin de :

  • Un tunnel créé dans la Console. Effectuez d'abord l'étape Créer un tunnel et notez l'ID du tunnel (tnl_...). Pour le provisionnement manuel, vous avez également besoin du jeton de tunnel et du domaine de tunnel obtenus à cette étape.
  • Un moyen pour le chart de s'authentifier auprès de l'API Tunnels.
    • Accès programmatique (recommandé). Le composant de configuration s'authentifie via Workload Identity Federation, récupère le jeton de tunnel, génère une autorité de certification (CA), l'enregistre auprès d'Anthropic et stocke le tout dans un Secret. Vous aurez besoin d'une règle de fédération limitée au périmètre org:manage_tunnels.
    • Manuel. Ignorez l'accès programmatique. Vous devrez obtenir le jeton de tunnel depuis la Console, générer vous-même une CA et un certificat serveur, enregistrer la CA dans la Console et fournir les identifiants au cluster sous forme de Secrets.
  • Un cluster Kubernetes sur lequel vous pouvez déployer avec helm et kubectl. L'onglet Sans accès programmatique utilise également openssl (version 1.1.1 ou ultérieure).
  • Une connectivité réseau sortante depuis le cluster vers api.anthropic.com (443 TCP) et le tunnel edge (7844 TCP et UDP). Consultez l'ensemble des exigences réseau.
  • Un ou plusieurs serveurs MCP en cours d'exécution et accessibles depuis le cluster aux adresses que vous configurerez sous gateway.config.routes. Si vous n'en avez pas encore, utilisez le serveur d'exemple.

Facultatif : utiliser un serveur MCP d'exemple

Si vous n'avez pas de serveur MCP disponible pour vos tests, utilisez ce serveur minimal :

kubectl create namespace mcp-tunnel --dry-run=client -o yaml | kubectl apply -f -
kubectl -n mcp-tunnel apply -f - <<'EOF'
apiVersion: v1
kind: ConfigMap
metadata:
  name: hello-mcp-src
data:
  hello_server.py: |
    from mcp.server.fastmcp import FastMCP

    mcp = FastMCP("hello-server", host="0.0.0.0", port=9000)


    @mcp.tool()
    def hello(name: str = "world") -> str:
        """Say hello to someone."""
        return f"Hello, {name}!"


    if __name__ == "__main__":
        mcp.run(transport="streamable-http")
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-mcp
spec:
  replicas: 1
  selector:
    matchLabels: { app: hello-mcp }
  template:
    metadata:
      labels: { app: hello-mcp }
    spec:
      containers:
        - name: hello-mcp
          image: python:3.13-slim
          command: ["sh", "-c", "pip install --quiet mcp && python /app/hello_server.py"]
          volumeMounts:
            - { name: src, mountPath: /app }
          ports:
            - { containerPort: 9000 }
      volumes:
        - name: src
          configMap: { name: hello-mcp-src }
---
apiVersion: v1
kind: Service
metadata:
  name: hello-mcp
spec:
  selector: { app: hello-mcp }
  ports:
    - { port: 9000, targetPort: 9000 }
EOF

Les étapes d'installation qui suivent indiquent où ajouter la route correspondante.

Installation

Vérifier le déploiement

Vérifiez de bout en bout depuis le côté d'Anthropic : utilisez https://<route>.<your-tunnel-domain>/<path> dans une session Managed Agent ou une requête à l'API Messages, où <route> est une clé de gateway.config.routes et <path> est ce que le serveur MCP en amont sert à cet emplacement. Avec le serveur MCP d'exemple, il s'agit de https://echo.<your-tunnel-domain>/mcp. Consultez Utiliser les serveurs MCP tunnelisés pour les formats de requête.

En cas d'échec, consultez les logs du pod (kubectl -n mcp-tunnel logs deploy/mcp-tunnel -c mcp-proxy et -c cloudflared) et reportez-vous à Dépannage.

Configuration facultative

Restreindre le trafic sortant avec NetworkPolicy

Le trafic entrant vers le pod proxy est refusé par défaut (networkPolicy.ingress.enabled: true). Pour restreindre en plus le trafic sortant du pod, définissez networkPolicy.egress.enabled: true et renseignez networkPolicy.egress.mcpServers avec des sélecteurs de labels de pod ou des plages CIDR couvrant vos serveurs MCP en amont. Le trafic sortant de cloudflared vers le tunnel edge est autorisé séparément via networkPolicy.egress.cloudflaredEgressCIDRs.

Ajuster le proxy

Les champs sous gateway.config.* sont transmis au fichier de configuration du proxy. Les ajustements courants incluent upstream.allowed_ips, log_level et upstream.tls. Consultez la référence de configuration du proxy pour la liste complète des champs. Le chart définit toujours listen_addr, tls.cert_file et tls.key_file ; les définir dans gateway.config n'a aucun effet.

Fournir votre propre jeton OIDC

Par défaut, le chart projette un jeton ServiceAccount Kubernetes pour le composant de configuration. Pour utiliser un jeton provenant d'un autre fournisseur d'identité (tel que SPIFFE, Vault ou un sidecar de SDK cloud), montez-le avec setup.extraVolumes et setup.extraVolumeMounts. Pointez ensuite api.wif.tokenFile vers le chemin de montage. Le chart définit ANTHROPIC_IDENTITY_TOKEN_FILE sur ce chemin, et le composant de configuration lit le jeton à cet emplacement.

Mises à niveau

Passez toujours --version à helm upgrade afin de ne pas récupérer une version plus récente du chart de manière inattendue.

Modifier la configuration

Pour les modifications courantes telles que les routes, le nombre de réplicas ou la NetworkPolicy :

helm upgrade mcp-tunnel \
  oci://us-docker.pkg.dev/anthropic-public-registry/charts/mcp-tunnel \
  --version 1.0.0 \
  -n mcp-tunnel \
  -f values.yaml

Maintenez un fichier values.yaml complet plutôt que de vous appuyer sur --reuse-values. Le comportement de fusion profonde de Helm peut silencieusement échouer à supprimer les routes retirées.

Effectuer la rotation du jeton de tunnel

Avec l'accès programmatique, incrémentez tunnel.tokenVersion dans values.yaml et effectuez la mise à niveau avec --set setup.force=true. Le composant de configuration ne se réexécute lors des mises à niveau que lorsqu'il est forcé :

helm upgrade mcp-tunnel \
  oci://us-docker.pkg.dev/anthropic-public-registry/charts/mcp-tunnel \
  --version 1.0.0 \
  -n mcp-tunnel \
  -f values.yaml \
  --set setup.force=true

Le composant de configuration s'authentifie avec Workload Identity Federation ; il n'y a pas de jeton d'API à révoquer.

Sans accès programmatique, cliquez sur Rotate token sur la page de détails du tunnel dans la Console, puis mettez à jour le Secret mcp-tunnel-token :

kubectl -n mcp-tunnel create secret generic mcp-tunnel-token \
  --from-literal=tunnel-token='eyJ...' --dry-run=client -o yaml | kubectl apply -f -
kubectl -n mcp-tunnel rollout restart deploy/mcp-tunnel

Cliquer sur Rotate token invalide immédiatement le jeton actuel. Tant que le Secret n'est pas mis à jour et que le déploiement n'est pas terminé, tout pod qui redémarre avec l'ancien jeton (éviction, drainage de nœud, OOM) ne peut pas se reconnecter. Mettez à jour le Secret rapidement après la rotation ; pour des exigences de disponibilité plus strictes, utilisez l'accès programmatique afin que le chart gère la rotation de manière atomique.

Renouvellement des certificats

Le chart fournit l'automatisation, mais vous restez responsable de la surveillance de l'expiration et de la confirmation que le renouvellement s'effectue correctement.

Avec l'accès programmatique, le renouvellement des certificats est automatique. Le chart déploie un CronJob (nommé d'après le fullname Helm, avec le suffixe -cert-renew) qui exécute setup renew-cert quotidiennement (à serverCert.cronSchedule, par défaut 0 0 * * * UTC). Le job est sans effet sauf si le certificat est à moins de serverCert.renewBefore de son expiration (30 jours par défaut). Le renouvellement est local : le job signe un nouveau certificat avec la CA déjà stockée dans le Secret, n'effectue aucun appel d'API et n'a besoin que du RBAC Kubernetes accordé par le chart. Le proxy recharge à chaud le certificat depuis le montage du Secret, donc aucun redémarrage du Deployment n'est nécessaire.

Sans accès programmatique, il n'y a pas de CronJob. Depuis le répertoire mcp-tunnel/ que vous avez conservé après l'installation, signez un nouveau certificat serveur avec la CA existante (ne régénérez pas la CA) :

export TUNNEL_DOMAIN=YOUR_TUNNEL_DOMAIN_HERE
openssl req -new -key data/tls.key -out /tmp/server.csr \
  -subj "/CN=${TUNNEL_DOMAIN}"
openssl x509 -req -in /tmp/server.csr \
  -CA data/ca.crt -CAkey data/ca.key -CAcreateserial \
  -out data/tls.crt -days 90 -extfile data/tls.ext

kubectl -n mcp-tunnel create secret generic mcp-tunnel-cert \
  --from-file=tls.crt=data/tls.crt --from-file=tls.key=data/tls.key \
  --dry-run=client -o yaml | kubectl apply -f -

Le proxy recharge à chaud le certificat depuis le montage du Secret.

Étapes suivantes

Utiliser les serveurs MCP tunnelisés

Attachez un serveur MCP en amont à un Managed Agent ou à l'API Messages.

Sécurité

Conseils de durcissement, rotation des identifiants et réponse aux violations.

Dépannage

Diagnostiquez les problèmes de connectivité, de TLS et de routage.

Was this page helpful?

  • Avant de commencer
  • Facultatif : utiliser un serveur MCP d'exemple
  • Installation
  • Vérifier le déploiement
  • Configuration facultative
  • Restreindre le trafic sortant avec NetworkPolicy
  • Ajuster le proxy
  • Fournir votre propre jeton OIDC
  • Mises à niveau
  • Modifier la configuration
  • Effectuer la rotation du jeton de tunnel
  • Renouvellement des certificats
  • Étapes suivantes