Este documento descreve as etapas para instrumentar e implantar um servidor do Protocolo de Contexto de Modelo (MCP) auto-hospedado, permitindo a coleta de telemetria. O exemplo neste documento cria um servidor MCP usando o FastMCP e o implanta usando o Cloud Run. O FastMCP inclui a instrumentação do OpenTelemetry que coleta telemetria de todas as operações do MCP.
Este documento descreve as seguintes etapas:
- Prepare seu projeto Python com o gerenciador de pacotes
uv. - Crie um servidor MCP para operações matemáticas.
- Implante no Cloud Run.
- Autentique o cliente MCP.
- Teste o servidor MCP auto-hospedado.
- Acesse seus dados de telemetria.
Antes de começar
- Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
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.
Ative as APIs Artifact Registry, Cloud Run, Cloud Build, Telemetry, Cloud Logging, Cloud Monitoring e Cloud Trace.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.- Configure o ambiente de desenvolvimento do Cloud Run no seu Google Cloud projeto do.
- Verifique se você tem as
permissões adequadas para implantar serviços e os papéis de administrador do Cloud Run (
roles/run.admin) e usuário da conta de serviço (roles/iam.serviceAccountUser) concedidos à sua conta. - Conceda o papel de invocador do Cloud Run (
roles/run.invoker) à sua conta. Esse papel permite que o servidor MCP auto-hospedado acesse o serviço do Cloud Run. -
No Google Cloud console, acesse a página IAM.
Acessar IAM - Selecione o projeto.
- Clique em CONCEDER ACESSO.
-
No campo Novos principais, digite seu identificador de usuário. Normalmente, esse é o endereço de e-mail usado para implantar o serviço do Cloud Run.
- Na lista Selecionar papel, escolha um.
- Para conceder outros papéis, adicione-os clicando em Adicionar outro papel.
- Clique em Salvar.
- PROJECT_ID: o identificador do projeto.
- PRINCIPAL: um identificador para o principal a quem você quer conceder o papel. Os identificadores principais geralmente têm o seguinte formato:
PRINCIPAL-TYPE:ID. Por exemplo,user:my-user@example.com. Para uma lista completa dos formatos quePRINCIPALpode ter, consulte Identificadores de principais. - ROLE: um papel do IAM.
Se você precisa seguir uma política da organização de restrição de domínio que restringe invocações não autenticadas para seu projeto, será necessário acessar o serviço implantado, conforme descrito em Como testar serviços particulares.
- Instale o Uv, um gerenciador de pacotes e projetos do Python.
Saiba como conceder os papéis
Console
gcloud
Para conceder os papéis do IAM necessários à sua conta no seu projeto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
Substitua:
Preparar seu projeto Python
As etapas a seguir descrevem como configurar seu projeto Python com o gerenciador de pacotes uv.
Crie uma pasta chamada
mcp-on-cloudrunpara armazenar o código-fonte da implantação:mkdir mcp-on-cloudrun cd mcp-on-cloudrunCrie um projeto Python com a ferramenta
uvpara gerar um arquivopyproject.toml:uv init --name "mcp-on-cloudrun" --description "Example of deploying an MCP server on Cloud Run" --bare --python 3.10O comando
uv initcria o seguinte arquivopyproject.toml:[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 = []Crie os seguintes novos arquivos adicionais:
server.pypara o código-fonte do servidor MCP.otel_setup.pypara configurar o OpenTelemetry.test_server.pypara testar o servidor auto-hospedado.- Um Dockerfile para implantação no Cloud Run.
touch server.py otel_setup.py test_server.py DockerfileO diretório do projeto precisa conter a seguinte estrutura:
├── mcp-on-cloudrun │ ├── pyproject.toml │ ├── otel_setup.py │ ├── server.py │ ├── test_server.py │ └── Dockerfile
Criar um servidor MCP para operações matemáticas
Nesta seção, você vai configurar um servidor MCP matemático com FastMCP. O FastMCP oferece uma maneira rápida de criar servidores e clientes MCP com Python.
Siga estas etapas para criar um servidor MCP para operações matemáticas, como adição e subtração.
Execute o seguinte comando para adicionar o FastMCP como uma dependência no arquivo
pyproject.toml:uv add fastmcp==2.13.1 --no-syncAdicione o seguinte código de configuração do OpenTelemetry no arquivo
otel_setup.py:Adicione o seguinte código-fonte do servidor MCP matemático no arquivo
server.py:Inclua o seguinte código no Dockerfile para usar a ferramenta
uvpara executar o arquivoserver.py:
Implantar no Cloud Run
É possível implantar o servidor MCP como uma imagem do contêiner ou como código-fonte:
Imagem do contêiner
Para implantar um servidor MCP empacotado como uma imagem de contêiner, siga estas instruções.
Crie um repositório do Artifact Registry para armazenar a imagem do contêiner:
gcloud artifacts repositories create self-hosted-mcp-servers \ --repository-format=docker \ --location=us-central1 \ --description="Repository for self-hosted MCP servers" \ --project=PROJECT_IDCrie a imagem do contêiner e envie-a para o Artifact Registry com o Cloud Build:
gcloud builds submit --region=us-central1 --tag us-central1-docker.pkg.dev/PROJECT_ID/self-hosted-mcp-servers/mcp-server:latestImplante a imagem do contêiner do servidor MCP no 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
Origem
É possível implantar servidores MCP auto-hospedados no Cloud Run das origens deles.
Implante a partir da origem executando o seguinte comando:
gcloud run deploy mcp-server --no-allow-unauthenticated --region=us-central1 --source .
Autenticar o cliente MCP
Se você implantou o serviço com a flag --no-allow-unauthenticated, qualquer cliente MCP que se conectar ao servidor MCP auto-hospedado precisará ser autenticado.
Conceda o papel de invocador do Cloud Run (
roles/run.invoker) à conta de serviço. Essa vinculação de política do Identity and Access Management garante que um mecanismo de segurança forte seja usado para autenticar o cliente MCP local.Execute o proxy do Cloud Run para criar um túnel autenticado para o servidor MCP auto-hospedado na máquina local:
gcloud run services proxy mcp-server --region=us-central1Se o proxy do Cloud Run ainda não estiver instalado, esse comando vai pedir que você faça o download do proxy. Siga as instruções para fazer o download e instalar o proxy.
O Cloud Run autentica todo o tráfego para http://127.0.0.1:8080 e encaminha solicitações para o servidor MCP auto-hospedado.
Testar o servidor MCP auto-hospedado
Você testa e se conecta ao servidor MCP auto-hospedado usando o cliente FastMCP e acessando o URL http://127.0.0.1:8080/mcp.
Para testar e invocar o mecanismo de adição e subtração, siga estas etapas:
Antes de executar o servidor de teste, execute o proxy do Cloud Run.
Crie um arquivo de teste chamado
test_server.pye adicione o seguinte código:Em um novo terminal, execute o servidor de teste:
uv run test_server.pyVocê verá esta resposta:
🛠️ Tool found: add 🛠️ Tool found: subtract 🪛 Calling add tool for 1 + 2 ✅ Result: 3 🪛 Calling subtract tool for 10 - 3 ✅ Result: 7
Acessar seus dados de telemetria
Esta seção descreve como acessar os dados de registro, métrica e trace gerados pelo servidor MCP auto-hospedado.
Antes de começar
Para receber as permissões necessárias para acessar os dados de registro, métrica e trace, peça que o administrador conceda a você os seguintes papéis do IAM no projeto:
-
Leitor de registros (
roles/logging.viewer) -
Leitor do monitoramento (
roles/monitoring.viewer) -
Usuário do Cloud Trace (
roles/cloudtrace.user)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando personalizados papéis ou outros predefinidos papéis.
Acessar a telemetria
Para saber como acessar os dados de registro, métrica e trace, consulte o seguinte:
Dados de registros
No Google Cloud console do, acesse a página Análise de registros:
Acessar a Análise de registros
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.
Para mais informações sobre como usar a página Análise de registros, consulte Acessar e analisar registros.
Dados de métricas
No Google Cloud console, acesse a leaderboard Metrics explorer page:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
Para mais informações sobre como usar a página Metrics Explorer, consulte Criar gráficos com o Metrics Explorer.
Rastrear dados
No Google Cloud console, acesse a página
Explorador de traces:
Acessar o Explorador de traces
Também é possível encontrar essa página usando a barra de pesquisa.
A captura de tela a seguir ilustra o painel Detalhes na página Explorador de traces, que mostra os intervalos de trace gerados pelas operações tools/call:
Para mais informações sobre como usar a página Explorador de traces, consulte Encontrar e explorar traces.
A seguir
Saiba mais sobre as opções disponíveis para acessar, explorar e analisar seus dados de telemetria.
Saiba mais sobre como hospedar servidores MCP no Cloud Run.
Saiba como usar um servidor MCP para implantar código no Cloud Run.