Este documento descreve as etapas para instrumentar e implantar um servidor do Protocolo de Contexto de Modelo (MCP) autohospedado, permitindo a coleta de telemetria. O exemplo neste documento cria um servidor MCP usando o FastMCP e implanta o servidor MCP 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.
- Implantar no Cloud Run.
- Autentique o cliente do MCP.
- Teste o servidor MCP auto-hospedado.
- Ver seus dados de telemetria.
Antes de começar
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de 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 APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.- Configure o ambiente de desenvolvimento do Cloud Run no seu projeto do Google Cloud .
- Verifique se você tem as permissões adequadas para implantar serviços e se os papéis Administrador do Cloud Run (
roles/run.admin) e Usuário da conta de serviço (roles/iam.serviceAccountUser) foram concedidos à sua conta. - Conceda o papel Invocador do Cloud Run (
roles/run.invoker) à sua conta. Essa função permite que o servidor MCP autohospedado acesse o serviço do Cloud Run. -
No console do Google Cloud , 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, clique em Adicionar outro papel e adicione cada papel adicional.
- Clique em Salvar.
- PROJECT_ID: o identificador do projeto.
- PRINCIPAL: um identificador do principal a quem você quer
conceder o papel. Os identificadores dos 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 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 projetos e pacotes Python.
Saiba como conceder os papéis
Console
gcloud
Para conceder os papéis do IAM necessários à sua conta no 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 em 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 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 ter 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 de matemática com o 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 comando a seguir para adicionar o FastMCP e as dependências necessárias do OpenTelemetry ao arquivo
pyproject.toml:uv add fastmcp==3.2.0 opentelemetry-api==1.40.0 opentelemetry-sdk==1.40.0 opentelemetry-exporter-otlp-proto-grpc==1.40.0 --no-syncAdicione o seguinte código de configuração do OpenTelemetry ao arquivo
otel_setup.py:Adicione o seguinte código-fonte do servidor MCP de matemática ao arquivo
server.py:Inclua o código a seguir no Dockerfile para usar a ferramenta
uve executar o arquivoserver.py:
Implantar no Cloud Run
Você pode 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 fontes 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 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 seu cliente MCP local.Execute o proxy do Cloud Run para criar um túnel autenticado para o servidor MCP auto-hospedado na sua 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 dele. 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 autohospedado.
Testar o servidor MCP autohospedado
Teste e conecte-se ao seu 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
Ver seus dados de telemetria
Nesta seção, descrevemos como visualizar os dados de registro, métrica e rastreamento gerados pelo seu servidor MCP autohospedado.
Antes de começar
Para ter as permissões necessárias para visualizar seus dados de registros, métricas e rastreamentos, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
- Visualizador de registros (
roles/logging.viewer) - Leitor do Monitoring (
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 papéis personalizados ou outros papéis predefinidos.
Ver telemetria
Para saber como visualizar seus dados de registro, métricas e traces, consulte o seguinte:
Dados de registros
No console do Google Cloud , 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 Ver e analisar registros.
Dados de métricas
No console Google Cloud , acesse a página do leaderboard Metrics explorer:
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 console Google Cloud , 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 intervalos de trace gerados
de 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 como investigar chamadas de MCP usando o Cloud Trace.
Saiba mais sobre as opções para ver, analisar e explorar seus dados de telemetria.
Saiba mais sobre hospedar servidores MCP no Cloud Run.
Saiba como usar um servidor MCP para implantar código no Cloud Run.