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.
Prepare o seu projeto Python
Os passos seguintes descrevem como configurar o seu projeto Python com o gestor de pacotes uv
.
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 Dockerfile 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
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.
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
:
Implemente no Cloud Run
Pode implementar o servidor MCP como uma imagem de contentor ou como código-fonte:
Imagem do contentor
Para implementar um servidor MCP incluído num pacote como uma imagem de contentor, siga estas instruções.
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
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.
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.
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:
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