Ce document décrit les étapes à suivre pour instrumenter et déployer un serveur MCP (Model Context Protocol) auto-hébergé, ce qui permet de collecter des données de télémétrie. L'exemple de ce document crée un serveur MCP à l'aide de FastMCP et déploie le serveur MCP à l'aide de Cloud Run. FastMCP inclut l'instrumentation OpenTelemetry qui collecte la télémétrie de toutes les opérations MCP.
Ce document décrit les étapes suivantes :
- Préparez votre projet Python avec le gestionnaire de paquets
uv. - Créez un serveur MCP pour les opérations mathématiques.
- Déployer sur Cloud Run
- Authentifiez le client MCP.
- Testez le serveur MCP auto-hébergé.
- Consultez vos données de télémétrie.
Avant de commencer
- Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud 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 Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud 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 Google Cloud project.
Activez les API Artifact Registry, Cloud Run, Cloud Build, Telemetry, Cloud Logging, Cloud Monitoring et Cloud Trace.
Rôles requis pour activer les API
Pour activer les API, vous avez besoin du rôle IAM Administrateur Service Usage (
roles/serviceusage.serviceUsageAdmin), qui contient l'autorisationserviceusage.services.enable. Découvrez comment attribuer des rôles.- Configurez votre environnement de développement Cloud Run dans votre projet Google Cloud .
- 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) vous ont été attribués. - Attribuez le rôle Demandeur Cloud Run (
roles/run.invoker) à votre compte. Ce rôle permet au serveur MCP auto-hébergé d'accéder au service Cloud Run. -
Dans la console Google Cloud , 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 attribuer des rôles supplémentaires, cliquez sur Ajouter un autre rôle et ajoutez tous les rôles supplémentaires.
- Cliquez sur Enregistrer.
- PROJECT_ID : identifiant du projet.
- PRINCIPAL : identifiant du compte principal auquel vous souhaitez accorder le rôle. Les identifiants des comptes principaux se présentent généralement sous la forme suivante :
PRINCIPAL-TYPE:ID. Par exemple,user:my-user@example.com. Pour obtenir la liste complète des formats que peut avoirPRINCIPAL, consultez Identifiants principaux. - ROLE : rôle IAM.
Si vous êtes soumis à une règle d'administration de restriction de domaine limitant les appels non authentifiés pour votre projet, vous devez accéder au service déployé comme décrit dans Tester les services privés.
- Installez Uv, un gestionnaire de packages et de projets Python.
Découvrez comment attribuer les rôles.
Console
gcloud
Pour attribuer les rôles IAM requis à votre compte dans votre projet :
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
Remplacez :
Préparer votre projet Python
Les étapes suivantes décrivent comment configurer votre projet Python avec le gestionnaire de packages uv.
Créez un dossier nommé
mcp-on-cloudrunpour stocker le code source à déployer :mkdir mcp-on-cloudrun cd mcp-on-cloudrunCréez un projet Python avec l'outil
uvpour générer un fichierpyproject.toml:uv init --name "mcp-on-cloudrun" --description "Example of deploying an MCP server on Cloud Run" --bare --python 3.10La commande
uv initcrée le fichierpyproject.tomlsuivant :[project] name = "mcp-server" version = "0.1.0" description = "Example of deploying an MCP server on Cloud Run" readme = "README.md" requires-python = ">=3.10" dependencies = []Créez les fichiers supplémentaires suivants :
server.pypour le code source du serveur MCP.otel_setup.pypour configurer OpenTelemetry.test_server.pypour tester le serveur auto-hébergé.- Un fichier Dockerfile pour le déploiement sur Cloud Run.
touch server.py otel_setup.py test_server.py DockerfileLe répertoire de votre projet doit contenir la structure suivante :
├── mcp-on-cloudrun │ ├── pyproject.toml │ ├── otel_setup.py │ ├── server.py │ ├── test_server.py │ └── Dockerfile
Créer un serveur MCP pour les opérations mathématiques
Dans cette section, vous allez configurer un serveur MCP mathématique avec FastMCP. FastMCP permet de créer rapidement des serveurs et des clients MCP avec Python.
Suivez ces étapes pour créer un serveur MCP pour les opérations mathématiques telles que l'addition et la soustraction.
Exécutez la commande suivante pour ajouter FastMCP en tant que dépendance dans le fichier
pyproject.toml:uv add fastmcp==2.13.1 --no-syncAjoutez le code de configuration OpenTelemetry suivant dans le fichier
otel_setup.py:Ajoutez le code source du serveur MCP mathématique suivant dans le fichier
server.py:Incluez le code suivant dans le fichier Dockerfile pour utiliser l'outil
uvafin d'exécuter le fichierserver.py:
Déployer dans Cloud Run
Vous pouvez déployer le serveur MCP en tant qu'image de conteneur ou en tant que code source :
Image de conteneur
Pour déployer un serveur MCP empaqueté en tant qu'image de conteneur, suivez ces instructions.
Créez un dépôt Artifact Registry pour stocker l'image de conteneur :
gcloud artifacts repositories create self-hosted-mcp-servers \ --repository-format=docker \ --location=us-central1 \ --description="Repository for self-hosted MCP servers" \ --project=PROJECT_IDCréez l'image de conteneur et transférez-la vers Artifact Registry avec Cloud Build :
gcloud builds submit --region=us-central1 --tag us-central1-docker.pkg.dev/PROJECT_ID/self-hosted-mcp-servers/mcp-server:latestDéployez l'image de conteneur du serveur MCP sur Cloud Run :
gcloud run deploy mcp-server \ --image us-central1-docker.pkg.dev/PROJECT_ID/self-hosted-mcp-servers/mcp-server:latest \ --region=us-central1 \ --no-allow-unauthenticated
Source
Vous pouvez déployer des serveurs MCP auto-hébergés sur Cloud Run à partir de leurs sources.
Déployez votre code depuis la source en exécutant la commande suivante :
gcloud run deploy mcp-server --no-allow-unauthenticated --region=us-central1 --source .
Authentifier le client MCP
Si vous avez déployé votre service avec l'option --no-allow-unauthenticated, tout client MCP qui se connecte à votre serveur MCP auto-hébergé doit s'authentifier.
Attribuez le rôle Demandeur Cloud Run (
roles/run.invoker) au compte de service. Cette association de règles Identity and Access Management garantit qu'un mécanisme de sécurité renforcé est utilisé pour authentifier votre client MCP local.Exécutez le proxy Cloud Run pour créer un tunnel authentifié vers le serveur MCP auto-hébergé sur votre machine locale :
gcloud run services proxy mcp-server --region=us-central1Si le proxy Cloud Run n'est pas encore installé, cette commande vous invite à le télécharger. Suivez les instructions pour télécharger et installer le proxy.
Cloud Run authentifie tout le trafic vers http://127.0.0.1:8080 et transfère les requêtes vers le serveur MCP auto-hébergé.
Tester le serveur MCP auto-hébergé
Vous testez votre serveur MCP auto-hébergé et vous vous y connectez à l'aide du client FastMCP et en accédant à l'URL http://127.0.0.1:8080/mcp.
Pour tester et appeler le mécanisme d'addition et de soustraction, procédez comme suit :
Avant d'exécuter le serveur de test, exécutez le proxy Cloud Run.
Créez un fichier de test appelé
test_server.pyet ajoutez le code suivant :Dans un nouveau terminal, exécutez le serveur de test :
uv run test_server.pyVous devriez obtenir le résultat suivant :
🛠️ Tool found: add 🛠️ Tool found: subtract 🪛 Calling add tool for 1 + 2 ✅ Result: 3 🪛 Calling subtract tool for 10 - 3 ✅ Result: 7
Afficher vos données de télémétrie
Cette section explique comment afficher les données de journaux, de métriques et de traces générées par votre serveur MCP auto-hébergé.
Avant de commencer
Pour obtenir les autorisations nécessaires pour afficher vos données de journaux, de métriques et de traces, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :
-
Lecteur de journaux (
roles/logging.viewer) -
Lecteur Monitoring (
roles/monitoring.viewer) -
Utilisateur Cloud Trace (
roles/cloudtrace.user)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Afficher la télémétrie
Pour savoir comment afficher vos données de journaux, de métriques et de traces, consultez les pages suivantes :
Données des journaux
Dans la console Google Cloud , accédez à la pageExplorateur de journaux :
Accéder à l'explorateur de journaux
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Logging.
Pour en savoir plus sur l'utilisation de la page Explorateur de journaux, consultez Afficher et analyser les journaux.
Données de métriques
Dans la console Google Cloud , accédez à la page leaderboard Explorateur de métriques.
Accéder à l'Explorateur de métriques
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.
Pour en savoir plus sur l'utilisation de la page Explorateur de métriques, consultez Créer des graphiques avec l'explorateur de métriques.
Données de trace
Dans la console Google Cloud , accédez à la page
Explorateur Trace :
Vous pouvez également accéder à cette page à l'aide de la barre de recherche.
La capture d'écran suivante illustre le volet Détails de la page Explorateur de traces, qui affiche les étendues de trace générées à partir des opérations tools/call :
Pour en savoir plus sur l'utilisation de la page Explorateur de traces, consultez Rechercher et explorer des traces.
Étapes suivantes
Découvrez les options dont vous disposez pour afficher, explorer et analyser vos données de télémétrie.
Découvrez comment héberger des serveurs MCP sur Cloud Run.
Découvrez comment utiliser un serveur MCP pour déployer du code sur Cloud Run.