Neste tutorial, mostramos como criar e implantar um servidor remoto do Protocolo de Contexto de Modelo (MCP) no Cloud Run usando o transporte HTTP transmissível. Com o transporte HTTP transmissível, o servidor MCP opera como um processo independente que pode processar várias conexões de clientes.
Objetivos
Com este tutorial, você vai:
Custos
Neste documento, você vai usar os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Antes de começar
- Faça login na sua conta do Google Cloud . 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, API Cloud Run Admin e API Cloud Build, se alguma delas ainda não estiver ativada.
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 pelo papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão pelo 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 remoto 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_NUMBER: o número do projeto do Google Cloud .
- PROJECT_ID: o ID do projeto Google Cloud .
- PRINCIPAL: o endereço de e-mail da conta a que você está concedendo o papel.
- ROLE: o papel que você está adicionando à conta do implantador.
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 uv gerenciador de pacotes.
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 estes novos arquivos adicionais:
server.pypara o código-fonte do servidor MCPtest_server.pypara testar o servidor remoto- Um Dockerfile para implantação no Cloud Run
touch server.py test_server.py DockerfileO diretório do projeto precisa ter a seguinte estrutura:
├── mcp-on-cloudrun │ ├── pyproject.toml │ ├── server.py │ ├── test_server.py │ └── Dockerfile
Criar um servidor MCP para operações matemáticas
Para fornecer um contexto valioso para melhorar o uso de LLMs com o MCP, configure 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 como uma dependência no arquivo
pyproject.toml:uv add fastmcp==2.13.1 --no-syncAdicione 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 remote-mcp-servers \ --repository-format=docker \ --location=us-central1 \ --description="Repository for remote 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/remote-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/remote-mcp-servers/mcp-server:latest \ --functional-type=mcp-server \ --region=us-central1 \ --no-allow-unauthenticated
Origem
É possível implantar servidores MCP remotos no Cloud Run usando as fontes deles.
Implante da origem executando o seguinte comando:
gcloud run deploy mcp-server --functional-type=mcp-server --no-allow-unauthenticated --region=us-central1 --source .
Verificar o registro no Agent Registry
Quando você implanta um serviço com --functional-type=mcp-server, ele é registrado automaticamente no Agent Registry como uma ferramenta.
Para verificar seu registro, acesse a guia Servidores MCP no console do Google Cloud.
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 remoto precisará ser autenticado.
- Conceda o papel Invocador do Cloud Run (
roles/run.invoker) à identidade do seu agente. Para instruções, consulte Autenticar em servidores MCP no Cloud Run. - Use o Identity-Aware Proxy para proteger seus servidores MCP e ativar o OAuth. Para instruções, consulte Autenticar servidores MCP.
Execute o proxy do Cloud Run para criar um túnel autenticado para o servidor MCP remoto 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 ao servidor MCP remoto.
Testar o servidor MCP remoto
Teste e conecte-se ao servidor MCP remoto 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
Limpar
Para evitar cobranças extras na sua conta do Google Cloud , exclua todos os recursos implantados com este tutorial.
Excluir o projeto
Se você criou um novo projeto para este tutorial, exclua-o. Se você usou um projeto atual e precisa mantê-lo sem as mudanças adicionadas neste tutorial, exclua os recursos criados para o tutorial.
O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.
Para excluir o projeto:
- No console Google Cloud , acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
Excluir recursos do tutorial
Exclua o serviço do Cloud Run que você implantou neste tutorial. Os serviços do Cloud Run não geram custos até receberem solicitações.
Para excluir o serviço do Cloud Run, execute o seguinte comando:
gcloud run services delete SERVICE-NAME
SERVICE-NAME pelo nome do serviço;
Também é possível excluir os serviços do Cloud Run no Google Cloud console do.
Remova a configuração de região padrão
gcloudque você adicionou durante a configuração do tutorial:gcloud config unset run/regionRemova a configuração do projeto:
gcloud config unset project
A seguir
Saiba mais sobre como implantar aplicativos de IA no Cloud Run.
Saiba mais sobre hospedar servidores MCP no Cloud Run.
Saiba como usar um servidor MCP para implantar código no Cloud Run.