Este tutorial mostra-lhe como criar e implementar um servidor do Protocolo de contexto do modelo (MCP) remoto no Cloud Run através do transporte HTTP streamable. Com o transporte HTTP por stream, o servidor MCP funciona como um processo independente que pode processar várias ligações de clientes.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
- Configure o ambiente de programação do Cloud Run no seu Google Cloud projeto.
- Certifique-se de que tem as autorizações adequadas para implementar serviços e as funções Administrador do Cloud Run (
roles/run.admin
) e Utilizador da conta de serviço (roles/iam.serviceAccountUser
) concedidas à sua conta. - Conceda a função Invocador do Cloud Run (
roles/run.invoker
) à sua conta. Esta função permite que o servidor MCP remoto aceda ao serviço do Cloud Run. -
Na Google Cloud consola, aceda à página IAM.
Aceda ao IAM - Selecione o projeto.
- Clique em Conceder acesso.
-
No campo Novos responsáveis, introduza o identificador do utilizador. Normalmente, este é o endereço de email da Conta Google usado para implementar o serviço do Cloud Run.
- Na lista Selecionar uma função, selecione uma função.
- Para conceder funções adicionais, clique em Adicionar outra função e adicione cada função adicional.
- Clique em Guardar.
- PROJECT_NUMBER: o número do seu Google Cloud projeto.
- PROJECT_ID: o ID do seu Google Cloud projeto.
- PRINCIPAL: o endereço de email da conta à qual está a conceder a função.
- ROLE: a função que está a adicionar à conta do implementador.
Se estiver ao abrigo de uma política da organização de restrição de domínio que restringe as invocações não autenticadas para o seu projeto, tem de aceder ao serviço implementado conforme descrito em Testar serviços privados.
- Instale o Uv, um gestor de projetos e pacotes Python.
Crie uma pasta denominada
mcp-on-cloudrun
para armazenar o código-fonte para a implementação:mkdir mcp-on-cloudrun cd mcp-on-cloudrun
Crie um projeto Python com a ferramenta
uv
para gerar um ficheiropyproject.toml
:uv init --name "mcp-on-cloudrun" --description "Example of deploying an MCP server on Cloud Run" --bare --python 3.10
O comando
uv init
cria o seguinte ficheiropyproject.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 ficheiros adicionais:
server.py
para o código-fonte do servidor MCPtest_server.py
para testar o servidor remoto- Um ficheiro Docker para implementação no Cloud Run
touch server.py test_server.py Dockerfile
O diretório do projeto deve conter a seguinte estrutura:
├── mcp-on-cloudrun │ ├── pyproject.toml │ ├── server.py │ ├── test_server.py │ └── Dockerfile
Execute o seguinte comando para adicionar o FastMCP como uma dependência no ficheiro
pyproject.toml
:uv add fastmcp==2.8.0 --no-sync
Adicione o seguinte código-fonte do servidor MCP matemático no ficheiro
server.py
:Inclua o seguinte código no Dockerfile para usar a ferramenta
uv
para executar o ficheiroserver.py
:Crie um repositório do Artifact Registry para armazenar a imagem de contentor:
gcloud artifacts repositories create remote-mcp-servers \ --repository-format=docker \ --location=us-central1 \ --description="Repository for remote MCP servers" \ --project=PROJECT_ID
Crie a imagem de contentor 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:latest
Implemente a imagem do contentor do servidor da MCP no Cloud Run:
gcloud run deploy mcp-server \ --image us-central1-docker.pkg.dev/PROJECT_ID/remote-mcp-servers/mcp-server:latest \ --region=us-central1 \ --no-allow-unauthenticated
Conceda a função Cloud Run Invoker (
roles/run.invoker
) à conta de serviço. Esta associação de políticas de gestão de identidades e acessos garante que é usado um mecanismo de segurança forte para autenticar o seu cliente MCP local.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-central1
Se o proxy do Cloud Run ainda não estiver instalado, este comando pede-lhe que transfira o proxy. Siga as instruções para transferir e instalar o proxy.
Antes de executar o servidor de teste, execute o proxy do Cloud Run.
Crie um ficheiro de teste denominado
test_server.py
e adicione o seguinte código:Num novo terminal, execute o servidor de teste:
uv run test_server.py
Deverá ver o seguinte resultado:
🛠️ Tool found: add 🛠️ Tool found: subtract 🪛 Calling add tool for 1 + 2 ✅ Result: 3 🪛 Calling subtract tool for 10 - 3 ✅ Result: 7
Saiba mais sobre a implementação de aplicações de IA no Cloud Run.
Saiba mais sobre o alojamento de servidores da MCP no Cloud Run.
Saiba como usar um servidor MCP para implementar código no Cloud Run.
Saiba como conceder as funções
Consola
gcloud
Para conceder as funções de IAM necessárias à sua conta no seu projeto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
Substituir:
Prepare o seu projeto Python
Os passos seguintes descrevem como configurar o seu projeto Python com o gestor de pacotes uv
.
Crie um servidor MCP para operações matemáticas
Para fornecer um contexto valioso para melhorar a utilização de MDIs com o MCP, configure um servidor do MCP matemático com o FastMCP. O FastMCP oferece uma forma rápida de criar servidores e clientes MCP com Python.
Siga estes passos para criar um servidor MCP para operações matemáticas, como adição e subtração.
Implemente no Cloud Run
Pode implementar o servidor MCP como uma imagem de contentor ou como código-fonte:
Imagem de contentor
Para implementar um servidor MCP incluído num pacote como uma imagem de contentor, siga estas instruções.
Origem
Pode implementar servidores MCP remotos no Cloud Run a partir das respetivas origens.
Implemente a partir da origem executando o seguinte comando:
gcloud run deploy mcp-server --no-allow-unauthenticated --region=us-central1 --source .
Autentique o cliente do MCP
Se implementou o seu serviço com a flag --no-allow-unauthenticated
, qualquer cliente MCP que se ligue ao seu servidor MCP remoto tem de ser autenticado.
O Cloud Run autentica todo o tráfego para http://127.0.0.1:8080
e encaminha
pedidos para o servidor MCP remoto.
Teste o servidor MCP remoto
Teste e estabeleça ligação ao servidor MCP remoto através do cliente FastMCP e acedendo ao URL http://127.0.0.1:8080/mcp
.
Para testar e invocar o mecanismo de adição e subtração, siga estes passos: