Ce guide explique comment héberger un serveur MCP (Model Context Protocol) avec un transport HTTP en streaming sur Cloud Run et fournit des conseils pour authentifier les clients MCP. Si vous ne connaissez pas encore MCP, consultez les ressources suivantes :
MCP est un protocole ouvert qui standardise la façon dont les agents IA interagissent avec leur environnement. L'agent IA héberge un client MCP, et les outils et ressources avec lesquels il interagit sont des serveurs MCP. Le client MCP peut communiquer avec le serveur MCP via deux types de transport distincts :
Vous pouvez héberger des clients et des serveurs MCP sur la même machine locale, héberger un client MCP localement et le faire communiquer avec des serveurs MCP distants hébergés sur une plate-forme cloud comme Cloud Run, ou héberger le client et le serveur MCP sur une plate-forme cloud.
Cloud Run est compatible avec l'hébergement de serveurs MCP avec transport HTTP en streaming, mais pas avec les serveurs MCP avec transport stdio.
Le schéma suivant montre comment le client MCP prend l'intention de l'agent IA et envoie une requête standardisée aux serveurs MCP, en spécifiant l'outil à exécuter. Une fois que le serveur MCP a exécuté l'action et récupéré les résultats, il les renvoie au client MCP dans un format cohérent.
Les conseils de cette page s'appliquent si vous développez votre propre serveur MCP ou si vous utilisez un serveur MCP existant.
- Si vous développez votre propre serveur MCP, nous vous recommandons d'utiliser un SDK de serveur MCP, tel que les SDK de langage officiels (TypeScript, Python, Go, Kotlin, Java, C#, Ruby ou Rust) ou FastMCP.
- Si vous utilisez un serveur MCP existant, consultez la liste des serveurs MCP officiels et de la communauté dans le dépôt GitHub des serveurs MCP. Docker Hub fournit également une liste organisée de serveurs MCP.
Avant de commencer
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
- Configurez votre environnement de développement Cloud Run dans votre Cloud de Confiance projet.
- Assurez-vous de disposer des
autorisations appropriées pour déployer des services, et que les rôles Administrateur Cloud Run (
roles/run.admin) et Utilisateur du compte de service (roles/iam.serviceAccountUser) sont attribués à votre compte. -
Dans la console Cloud de Confiance , accédez à la page IAM.
Accéder à IAM - Sélectionnez le projet.
- Cliquez sur Accorder l'accès.
-
Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'adresse e-mail utilisée pour déployer le service Cloud Run.
- Dans la liste Sélectionner un rôle, sélectionnez un rôle.
- Pour accorder des rôles supplémentaires, cliquez sur Add another role , puis ajoutez chaque rôle supplémentaire.
- Cliquez sur Enregistrer.
- PROJECT_NUMBER par le numéro de votre Cloud de Confiance projet
- PROJECT_ID par l'ID de votre Cloud de Confiance projet.
- PRINCIPAL par le compte pour lequel vous ajoutez la liaison. Il s'agit généralement de l'adresse e-mail qui est utilisée pour déployer le service Cloud Run.
- ROLE par le rôle que vous ajoutez au compte du déployeur.
- Consultez la tarification de Cloud Run ou estimez les coûts à l'aide du simulateur de coût.
Découvrez comment attribuer les rôles
Console
gcloud
Pour accorder les rôles IAM requis à votre compte dans votre projet :
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
Remplacez :
Héberger des serveurs MCP SSE ou HTTP en streaming distants
Les serveurs MCP qui utilisent les événements envoyés par le serveur (SSE) ou le transport HTTP en streaming peuvent être hébergés à distance de leurs clients MCP.
Pour déployer ce type de serveur MCP sur Cloud Run, vous pouvez le déployer en tant qu'image de conteneur ou en tant que code source (généralement Node.js ou Python), selon la façon dont il est empaqueté.
Images de conteneurs
Les serveurs MCP distants distribués en tant qu'images de conteneur sont des serveurs Web qui écoutent les requêtes HTTP sur un port spécifique. Cela signifie qu'ils respectent le contrat d'exécution de conteneur de Cloud Run et qu'ils peuvent être déployés sur un service Cloud Run.
Pour déployer un serveur MCP empaqueté en tant qu'image de conteneur, vous devez disposer de l'URL de l'image de conteneur et du port sur lequel il s'attend à recevoir des requêtes. Vous pouvez les déployer à l'aide de la commande gcloud CLI suivante :
gcloud run deploy --image IMAGE_URL --port PORT
Remplacez :
IMAGE_URLpar l'URL de l'image de conteneur, par exempleus-docker.pkg.dev/cloudrun/container/mcp.PORTpar le port sur lequel il écoute, par exemple3000.
Une fois que vous avez déployé votre serveur MCP HTTP sur Cloud Run, le serveur MCP reçoit une URL HTTPS et la communication peut utiliser la prise en charge intégrée de Cloud Run pour le streaming de réponses HTTP.
Authentifier les clients MCP pour les agents IA
Selon l'endroit où vous avez hébergé le client MCP, consultez la section qui vous concerne :
Authentifier les clients MCP locaux
Si l'agent IA hébergeant le client MCP s'exécute sur une machine locale, utilisez l'une des méthodes suivantes pour authentifier le client MCP :
Pour en savoir plus, consultez la spécification MCP sur l'authentification.
Autorisation d'appelant IAM
Par défaut, l'URL des services Cloud Run exige que toutes les requêtes
soient autorisées avec le
rôle IAM Demandeur Cloud Run
(roles/run.invoker). Cette liaison de stratégie IAM garantit qu'un mécanisme de sécurité renforcé est utilisé pour authentifier votre client MCP local.
Après avoir déployé votre serveur MCP sur un service Cloud Run dans une région, exécutez le proxy Cloud Run sur votre machine locale pour exposer de manière sécurisée le serveur MCP distant à votre client à l'aide de vos propres identifiants :
gcloud run services proxy MCP_SERVER_NAME --region REGION --port=3000
Remplacez :
- MCP_SERVER_NAME par le nom de votre service Cloud Run.
- REGION par la Cloud de Confiance by S3NS
région dans laquelle vous avez déployé votre service. Par exemple,
europe-west1.
La commande de proxy Cloud Run crée un proxy local sur le port 3000 qui transfère les requêtes au serveur MCP distant et injecte votre identité.
Mettez à jour le fichier de configuration MCP de votre client MCP avec les éléments suivants :
{
"mcpServers": {
"cloud-run": {
"url": "http://localhost:3000/sse"
}
}
}
Si votre client MCP n'est pas compatible avec l'attribut url, utilisez le
mcp-remote package npm :
{
"mcpServers": {
"cloud-run": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://localhost:3000/sse"
]
}
}
}
Jeton d'ID OIDC
Selon que le client MCP expose des en-têtes ou utilise un moyen de fournir un transport authentifié personnalisé, vous pouvez envisager d'authentifier le client MCP avec un jeton d'ID OIDC.
Vous pouvez utiliser différentes bibliothèques d'authentification Google pour obtenir un jeton d'ID à partir de l'
environnement d'exécution, par exemple la
bibliothèque Google Auth pour Python.
Ce jeton doit comporter la revendication d'audience correcte qui correspond à l'URL du service de réception
*.s3nsrun.fr, sauf si vous utilisez
des audiences personnalisées. Vous devez également
inclure le jeton d'ID dans les requêtes client, par exemple
Authorization: Bearer <token value>.
Si le client MCP n'expose ni en-têtes ni transport, utilisez une autre méthode d'authentification.
Authentifier les clients MCP locaux avec IAP
Cette section explique comment authentifier les clients MCP locaux exécutés sur Cloud Run.
Pour créer la stratégie d'entrée, procédez comme suit :
Attribuez le rôle Demandeur Cloud Run (
roles/run.invoker) à l'agent de service IAP.gcloud run services add-iam-policy-binding SERVICE_NAME \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-iap.s3ns-system.iam.gserviceaccount.com' \ --role='roles/run.invoker'Remplacez les éléments suivants :
SERVICE_NAME: nom du service auquel ajouter la liaison de stratégiePROJECT_NUMBER: numéro du projet contenant le service
Activez IAP sur le service Cloud Run.
Créer
Pour activer l'authentification IAP pour un nouveau service, exécutez la commande suivante :
gcloud run deploy SERVICE_NAME --image=MCP_SERVER_IMAGE --functional-type=MCP_SERVER \ --region=REGION \ --iap
Remplacez les éléments suivants :
SERVICE_NAME: nom du service auquel ajouter la liaison de stratégieMCP_SERVER_IMAGE: chemin d'accès à l'image du serveur MCPREGION: Cloud de Confiance région dans laquelle vous souhaitez déployer votre service, par exempleeurope-west1
Mettre à jour
Pour activer l'authentification IAP pour un service existant, exécutez la commande suivante :
gcloud run services update SERVICE_NAME \ --region=REGION \ --functional-type=MCP_SERVER \ --iap
Remplacez les éléments suivants :
SERVICE_NAME: nom du service à mettre à jourREGION: Cloud de Confiance by S3NS région dans laquelle vous avez déployé votre service, par exempleeurope-west1
Authentifier les clients MCP exécutés sur Cloud Run
Si l'agent IA hébergeant le client MCP s'exécute sur Cloud Run, utilisez l'une des méthodes suivantes pour authentifier le client MCP :
Déployer le serveur MCP en tant que side-car
Le serveur MCP peut être déployé en tant que side-car où le client MCP s'exécute.
Aucune authentification spécifique n'est requise pour ce cas d'utilisation, car le client et le serveur MCP se trouvent sur la même instance. Le client peut se connecter au serveur MCP
à l'aide d'un port sur http://localhost:PORT. Remplacez
PORT par un port différent de celui utilisé pour envoyer
des requêtes au service Cloud Run.
Authentifier un service auprès d'un autre
Si le serveur MCP et le client MCP s'exécutent en tant que services Cloud Run distincts, consultez Authentifier un service auprès d'un autre.
Étape suivante
- Hébergez des agents IA sur Cloud Run.
- Suivez un tutoriel pour créer et déployer un serveur MCP distant sur Cloud Run.
- Suivez ces ateliers de programmation MCP :