GCP MCP Host on Cloud Run
GCP Stateless MCP Server
Tilaton Model Context Protocol (MCP) -palvelin Google Cloud Run -alustalle. Toimii dynaamisena välityspalvelimena GCP:n kaikkiin REST API -rajapintoihin Discovery Servicen kautta.
Arkkitehtuuri
Palvelin käyttää tilatonta Streamable HTTP -transporttia (StreamableHTTPServerTransport). Tilattomuus tarkoittaa, ettei pyyntöjen välillä säily tilaa — jokainen HTTP-pyyntö on itsenäinen. Tämä mahdollistaa Cloud Runin scale-to-zero -käytön ilman session affinity -vaatimusta.
JSON-RPC-viestit reititetään manuaalisesti ilman SDK:n McpServer-luokkaa, mikä antaa täyden kontrollin protokollan käsittelystä.
Tarjotut työkalut
Työkalu | Kuvaus |
| Listaa saatavilla olevat GCP REST API:t Discovery Serviceltä. Tukee valinnaista filtteröintiä. |
| Palauttaa yksittäisen API-version kaikki metodit polkutemplaatteineen ja parametreineen. |
| Suorittaa minkä tahansa GCP REST -metodin dynaamisesti palvelun service accountin oikeuksilla. |
Tyypillinen käyttöketju
1. list_gcp_apis { filter: "run" }
→ [{ name: "run", version: "v2", ... }]
2. describe_gcp_api { api: "run", version: "v2" }
→ [{ id: "projects.locations.services.list", httpMethod: "GET", ... }]
3. call_gcp_api {
api: "run", version: "v2",
method_id: "projects.locations.services.list",
path_params: { projectsId: "my-project", locationsId: "europe-north1" }
}
→ { services: [...] }Tiedostorakenne
gcp-stateless-mcp/
├── mcp-gcp-server.ts — palvelimen pääkoodi (TypeScript)
├── Dockerfile — monivaiheinen konttikuva
├── service.yaml — Cloud Run -palvelun Knative-määritys
├── deploy-mcp.sh — automaattinen deploy-skripti
├── package.json — riippuvuudet
├── tsconfig.json — TypeScript-konfiguraatio
├── README.md — tämä tiedosto
└── INTEGRATION.md — asiakasintegraation ohjeetKäyttöönotto
Aja deploy suorittamalla:
./deploy-mcp.shSkripti suorittaa seuraavat vaiheet:
Varmistaa pääsyn GCP-projektiin
uutisseuranta-activitystreams.Kääntää TypeScript-lähdekoodin ja rakentaa Docker-konttikuvan.
Lataa konttikuvan Artifact Registryn
mcp-servers-repositorioon.Päivittää Cloud Run -palvelun
service.yaml-määrityksen mukaisesti.
IAM-oikeudet
Palvelu on yksityinen (--no-allow-unauthenticated). Kutsujilla täytyy olla roles/run.invoker -rooli.
Oikeuden lisääminen kehittäjälle:
gcloud run services add-iam-policy-binding mcp-gcp-server \
--region europe-north1 \
--member="user:jaakko.korhonen@gmail.com" \
--role="roles/run.invoker" \
--project=uutisseuranta-activitystreamsPalvelun service accountille tarvitaan oikeudet niihin GCP-resursseihin joita call_gcp_api kutsuu. Esimerkiksi Cloud Run -palveluiden listaukseen:
gcloud projects add-iam-policy-binding uutisseuranta-activitystreams \
--member="serviceAccount:<SERVICE_ACCOUNT_EMAIL>" \
--role="roles/run.viewer"Lokaalikehitys ja testaus
Ks. INTEGRATION.md asiakasintegraation ohjeista ja lokaalitestauksesta.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jaakkokorhonen/gcp-stateless-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server