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 dal ConfigMap renderizzato (Helm, popolato 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 ha alcun 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 per 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).
L'API REST Tunnels si trova su /v1/tunnels e supporta la creazione, l'elenco e l'archiviazione dei tunnel, la registrazione dei certificati CA e la visualizzazione o rotazione del token del tunnel. Consulta il riferimento dell'API Tunnels per tutti gli endpoint, gli schemi di richiesta e risposta e gli esempi.
La precedente superficie dell'Admin API su /v1/organizations/tunnels (header beta
mcp-tunnels-2026-05-19, scope org:manage_tunnels) continua a funzionare
durante una finestra di migrazione e rimane documentata nel
riferimento dell'Admin API con un avviso di
deprecazione. Per migrare, aggiorna il percorso a /v1/tunnels, l'header beta a
mcp-tunnels-2026-06-22 e lo scope del tuo token WIF a
workspace:manage_tunnels.
Tutti gli endpoint dei tunnel MCP richiedono un bearer token con lo scope workspace:manage_tunnels ottenuto tramite Workload Identity Federation. Le chiavi API Admin non sono accettate.
Header obbligatori su ogni richiesta:
| Header | Valore |
|---|---|
Authorization | Bearer <token> (il token ottenuto tramite scambio WIF) |
anthropic-version | 2023-06-01 |
anthropic-beta | mcp-tunnels-2026-06-22 |
Il componente di setup genera automaticamente certificati conformi. Questi requisiti si applicano solo se emetti certificati tramite la tua PKI.
Carica con POST /v1/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 a un tunnel esistente (o ne crea uno quando non viene fornito alcun ID tunnel), quindi 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 Claude. Letto anche da API_URL. | Obbligatorio |
--tunnel-id | ID del tunnel a cui collegarsi (tnl_...). Letto anche da TUNNEL_ID. Quando omesso, viene creato un nuovo tunnel; un ID tunnel già memorizzato nell'output viene riutilizzato nelle esecuzioni successive. | Nessuno (crea un tunnel) |
--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 rimanente. | 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?