Les tunnels MCP sont en aperçu de recherche. Demandez l'accès pour les essayer.
Le proxy lit sa configuration depuis /etc/mcp-gateway/config.yaml (Compose) ou depuis le ConfigMap rendu (Helm, alimenté à partir de gateway.config.*).
| Champ | Description | Valeur par défaut |
|---|---|---|
listen_addr | Adresse et port d'écoute. | Requis |
log_level | Niveau de verbosité des journaux : debug, info, warn ou error. | info |
shutdown_timeout | Durée d'attente pour les requêtes en cours lors d'un arrêt progressif. | 30s |
tunnel_domain | Domaine de base attribué au tunnel. Lorsqu'il est défini, la recherche de route supprime ce suffixe des noms d'hôte entrants afin que les clés de routes puissent être de simples sous-domaines (wiki). Lorsqu'il est vide, les clés de routes doivent être des noms d'hôte complets exacts. | Requis lorsque les clés de routes sont de simples sous-domaines |
tls.cert_file | Chemin vers le certificat TLS du serveur. | Requis |
tls.key_file | Chemin vers la clé privée TLS du serveur. | Requis |
routes | Correspondance entre un sous-domaine ou un nom d'hôte complet et une URL en amont. Voir Correspondance des routes. | Requis |
upstream.allowed_ips | Plages CIDR IPv4 ou adresses uniques auxquelles le proxy est autorisé à se connecter. Mutuellement exclusif avec disable_ip_validation. | Plages privées RFC1918 |
upstream.disable_ip_validation | Désactive entièrement la validation des adresses IP en amont. Mutuellement exclusif avec allowed_ips. | false |
upstream.tls.ca_file | Bundle d'autorité de certification pour valider le TLS en amont. | Aucun |
upstream.tls.include_system_cas | Faire également confiance au bundle d'autorités de certification système pour le TLS en amont. | false |
Pour les routes en amont https://, définissez au moins l'un des paramètres upstream.tls.ca_file ou upstream.tls.include_system_cas ; sinon, le proxy ne dispose d'aucune ancre de confiance pour le certificat en amont.
routes est une table de correspondance de chaînes plate (map[string]string), et non une liste. Le proxy recherche d'abord le nom d'hôte entrant par correspondance exacte, puis en supprimant le suffixe tunnel_domain et en faisant correspondre le sous-domaine restant. La correspondance ne prend en compte que le nom d'hôte ; le chemin de la requête et la chaîne de requête sont transmis tels quels au serveur MCP en amont.
Chaque valeur en amont doit être exactement scheme://host:port. Le port est obligatoire. L'inclusion d'un chemin est rejetée au chargement de la configuration avec le message invalid upstream (must be scheme://host:port).
Consultez la référence de l'API d'administration des tunnels MCP pour tous les points de terminaison, les schémas de requête et de réponse, ainsi que des exemples par langage.
Tous les points de terminaison des tunnels MCP nécessitent un jeton bearer avec la portée org:manage_tunnels obtenu via Workload Identity Federation. Les clés API d'administration ne sont pas acceptées.
En-têtes requis pour chaque requête :
| En-tête | Valeur |
|---|---|
Authorization | Bearer <token> (le jeton échangé via WIF) |
anthropic-version | 2023-06-01 |
anthropic-beta | mcp-tunnels-2026-05-19 |
Le composant de configuration génère automatiquement des certificats conformes. Ces exigences ne s'appliquent que si vous émettez des certificats via votre propre PKI.
Téléversez-le avec POST /v1/organizations/tunnels/{tunnel_id}/certificates. Un tunnel peut contenir jusqu'à deux certificats d'autorité de certification actifs à la fois, ce qui permet une rotation sans interruption de service.
BasicConstraints présente avec CA:TRUE, marquée comme critique.SubjectKeyIdentifier présente.KeyUsage inclut keyCertSign.Présenté par le proxy lors du TLS interne.
AuthorityKeyIdentifier présente et correspondant au SubjectKeyIdentifier de l'autorité de certification.<route>.<tunnel-domain>. Un caractère générique *.<tunnel-domain> couvre toutes les routes.ExtendedKeyUsage est présente, elle inclut serverAuth.Le composant de configuration génère une autorité de certification ECDSA P-256 avec une validité de cinq ans et un certificat serveur RSA 4096 bits avec un SAN générique et une validité de 90 jours.
Le composant de configuration est livré dans l'image mcp-proxy sous la forme du binaire setup. Exécutez-le avec docker compose run --rm setup <subcommand> (Compose) ou appuyez-vous sur les hooks et CronJobs du chart (Helm).
setup initS'attache au tunnel que vous avez créé dans la Console, génère une autorité de certification et un certificat serveur, enregistre l'autorité de certification, récupère le jeton du tunnel et écrit toutes les sorties vers la destination.
| Option | Description | Valeur par défaut |
|---|---|---|
--api-url | URL de base de l'API Claude. Également lue depuis API_URL. | Requis |
--tunnel-id | ID du tunnel auquel s'attacher (tnl_...). Également lu depuis TUNNEL_ID. | Requis |
--output | Destination de sortie : dir:/path ou k8s-secret:NAME. Le chart Helm transmet k8s-secret:<release>. | k8s-secret:mcp-tunnel (détecté automatiquement lors de l'exécution dans un pod Kubernetes ; requis sinon) |
--cert-duration | Période de validité du certificat serveur. | 2160h (90 jours) |
--token-version | Chaîne de détection de changement. Une nouvelle valeur déclenche la rotation du jeton lors d'une réexécution. Le chart Helm et l'exemple Compose transmettent tous deux 1 comme valeur initiale. | Aucune |
La commande s'authentifie via Workload Identity Federation. Elle lit ANTHROPIC_FEDERATION_RULE_ID, ANTHROPIC_ORGANIZATION_ID, ANTHROPIC_WORKSPACE_ID (facultatif), et exactement l'une des variables ANTHROPIC_IDENTITY_TOKEN_FILE ou ANTHROPIC_IDENTITY_TOKEN. Consultez la référence WIF pour la sémantique actuelle de ces variables ; le composant de configuration dérive le compte de service à partir de la règle de fédération, il ne nécessite donc pas ANTHROPIC_SERVICE_ACCOUNT_ID séparément.
setup renew-certÉmet un nouveau certificat serveur signé par l'autorité de certification stockée. N'effectue aucun appel d'API.
| Option | Description | Valeur par défaut |
|---|---|---|
--output | Destination de sortie : dir:/path ou k8s-secret:NAME. Le chart Helm transmet k8s-secret:<release>. | k8s-secret:mcp-tunnel (détecté automatiquement lors de l'exécution dans un pod Kubernetes ; requis sinon) |
--cert-duration | Période de validité du nouveau certificat. | 2160h (90 jours) |
--renew-before | Ignorer le renouvellement si le certificat existant dispose de plus que cette durée restante. | 0 (toujours renouveler) |
Définir --renew-before=720h fait de la commande une opération sans effet lorsqu'il reste plus de 30 jours de validité, ce qui permet de l'exécuter en toute sécurité selon un calendrier fixe.
Was this page helpful?