I tunnel MCP sono in anteprima di ricerca. Richiedi l'accesso per provarli.
Il proxy legge la propria configurazione da /etc/mcp-gateway/config.yaml (Compose) o dalla ConfigMap renderizzata (Helm, popolata da gateway.config.*).
| Campo | Descrizione | Predefinito |
|---|---|---|
listen_addr | Indirizzo e porta su cui rimanere in ascolto. | Obbligatorio |
log_level | Livello di dettaglio dei log: debug, info, warn o error. | info |
shutdown_timeout | Tempo di attesa per le richieste in corso durante l'arresto controllato. | 30s |
tunnel_domain | Dominio base assegnato al tunnel. Quando impostato, la ricerca delle route rimuove questo suffisso dagli hostname in ingresso, così le chiavi di routes possono essere semplici sottodomini (wiki). Quando vuoto, le chiavi di routes devono essere hostname completi esatti. | Obbligatorio quando le chiavi di routes sono semplici sottodomini |
tls.cert_file | Percorso del certificato TLS del server. | Obbligatorio |
tls.key_file | Percorso della chiave privata TLS del server. | Obbligatorio |
routes | Mappa da sottodominio o hostname completo a URL upstream. Vedi Corrispondenza delle route. | Obbligatorio |
upstream.allowed_ips | Intervalli CIDR IPv4 o singoli indirizzi a cui il proxy è autorizzato a connettersi. Mutuamente esclusivo con disable_ip_validation. | Intervalli privati RFC1918 |
upstream.disable_ip_validation | Disabilita completamente la validazione degli IP upstream. Mutuamente esclusivo con allowed_ips. | false |
upstream.tls.ca_file | Bundle CA per la validazione del TLS upstream. | Nessuno |
upstream.tls.include_system_cas | Considera attendibile anche il bundle CA di sistema per il TLS upstream. | false |
Per le route upstream https://, imposta almeno uno tra upstream.tls.ca_file o upstream.tls.include_system_cas; altrimenti il proxy non dispone di alcuna trust anchor per il certificato upstream.
routes è una mappa piatta di stringhe (map[string]string), non una lista. Il proxy cerca l'hostname in ingresso prima tramite corrispondenza esatta, poi rimuovendo il suffisso tunnel_domain e confrontando il sottodominio rimanente. La corrispondenza considera solo l'hostname; il percorso della richiesta e la query string vengono inoltrati al server MCP upstream senza modifiche.
Ogni valore upstream deve essere esattamente scheme://host:port. La porta è obbligatoria. L'inclusione di un percorso viene rifiutata al caricamento della configurazione con invalid upstream (must be scheme://host:port).
Consulta il riferimento dell'Admin API per i tunnel MCP per tutti gli endpoint, gli schemi di richiesta e risposta e gli esempi per ciascun linguaggio.
Tutti gli endpoint dei tunnel MCP richiedono un bearer token con lo scope org:manage_tunnels ottenuto tramite Workload Identity Federation. Le chiavi Admin API non sono accettate.
Header obbligatori su ogni richiesta:
| Header | Valore |
|---|---|
Authorization | Bearer <token> (il token scambiato tramite WIF) |
anthropic-version | 2023-06-01 |
anthropic-beta | mcp-tunnels-2026-05-19 |
Il componente di setup genera automaticamente certificati conformi. Questi requisiti si applicano solo se emetti i certificati tramite la tua PKI.
Caricalo con POST /v1/organizations/tunnels/{tunnel_id}/certificates. Un tunnel può contenere fino a due certificati CA attivi contemporaneamente, il che consente la rotazione senza tempi di inattività.
BasicConstraints presente con CA:TRUE, contrassegnata come critica.SubjectKeyIdentifier presente.KeyUsage include keyCertSign.Presentato dal proxy durante l'inner TLS.
AuthorityKeyIdentifier presente e corrispondente al SubjectKeyIdentifier della CA.<route>.<tunnel-domain>. Un wildcard *.<tunnel-domain> copre tutte le route.ExtendedKeyUsage è presente, include serverAuth.Il componente di setup genera una CA ECDSA P-256 con validità di cinque anni e un certificato server RSA a 4096 bit con un SAN wildcard e validità di 90 giorni.
Il componente di setup è incluso nell'immagine mcp-proxy come binario setup. Eseguilo con docker compose run --rm setup <subcommand> (Compose) oppure affidati agli hook e ai CronJob del chart (Helm).
setup initSi collega al tunnel creato nella Console, genera una CA e un certificato server, registra la CA, recupera il token del tunnel e scrive tutti gli output nella destinazione.
| Flag | Descrizione | Predefinito |
|---|---|---|
--api-url | URL base dell'API di Claude. Letto anche da API_URL. | Obbligatorio |
--tunnel-id | ID del tunnel a cui collegarsi (tnl_...). Letto anche da TUNNEL_ID. | Obbligatorio |
--output | Destinazione dell'output: dir:/path o k8s-secret:NAME. Il chart Helm passa k8s-secret:<release>. | k8s-secret:mcp-tunnel (rilevato automaticamente quando in esecuzione in un pod Kubernetes; obbligatorio altrimenti) |
--cert-duration | Periodo di validità del certificato server. | 2160h (90 giorni) |
--token-version | Stringa di rilevamento delle modifiche. Un nuovo valore attiva la rotazione del token alla riesecuzione. Sia il chart Helm che l'esempio Compose passano 1 come valore iniziale. | Nessuno |
Il comando si autentica tramite Workload Identity Federation. Legge ANTHROPIC_FEDERATION_RULE_ID, ANTHROPIC_ORGANIZATION_ID, ANTHROPIC_WORKSPACE_ID (opzionale) ed esattamente uno tra ANTHROPIC_IDENTITY_TOKEN_FILE o ANTHROPIC_IDENTITY_TOKEN. Consulta il riferimento WIF per la semantica attuale di queste variabili; il componente di setup deriva il service account dalla regola di federazione, quindi non richiede ANTHROPIC_SERVICE_ACCOUNT_ID separatamente.
setup renew-certEmette un nuovo certificato server firmato dalla CA memorizzata. Non effettua chiamate API.
| Flag | Descrizione | Predefinito |
|---|---|---|
--output | Destinazione dell'output: dir:/path o k8s-secret:NAME. Il chart Helm passa k8s-secret:<release>. | k8s-secret:mcp-tunnel (rilevato automaticamente quando in esecuzione in un pod Kubernetes; obbligatorio altrimenti) |
--cert-duration | Periodo di validità del nuovo certificato. | 2160h (90 giorni) |
--renew-before | Salta il rinnovo se il certificato esistente ha più di questa durata residua. | 0 (rinnova sempre) |
Impostare --renew-before=720h rende il comando un no-op quando rimangono più di 30 giorni di validità, quindi è sicuro eseguirlo con una pianificazione fissa.
Was this page helpful?