Neste tutorial, mostramos como criar e implantar um servidor remoto do Model Context Protocol (MCP) no Cloud Run usando o transporte HTTP transmitível. Com o transporte HTTP de streaming, o servidor MCP opera como um processo independente que pode processar várias conexões de clientes.
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-cloudrun
para armazenar o código-fonte para implantação:mkdir mcp-on-cloudrun cd mcp-on-cloudrun
Crie um projeto em Python com a ferramenta
uv
para gerar um arquivopyproject.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 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.py
para o código-fonte do servidor MCPtest_server.py
para testar o servidor remoto- Um Dockerfile para implantação no Cloud Run
touch server.py test_server.py Dockerfile
O 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.8.0 --no-sync
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
uv
e executar o arquivoserver.py
:
Implantar no Cloud Run
É possível implantar o servidor MCP como uma imagem de 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_ID
Crie 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:latest
Implante 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 \ --region=us-central1 \ --no-allow-unauthenticated
Origem
É possível implantar servidores MCP remotos 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 remoto precisará se autenticar.
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 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, 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 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.py
e adicione o seguinte código:Em um novo terminal, execute o servidor de teste:
uv run test_server.py
Você 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