platform-mcp
platform-mcp
Ein schreibgeschützter Model Context Protocol-Server, der einen KI-Agenten (Claude Code, Claude Desktop oder einen beliebigen MCP-Client) in einen GCP-Plattformingenieur verwandelt. Richten Sie ihn auf Ihre Google-Cloud-Projekte aus und bitten Sie ihn, Vorfälle zu untersuchen, Bestandsaufnahmen zu machen und Kostenoptimierungsmöglichkeiten aufzuzeigen – ganz ohne die Möglichkeit, Ihre Infrastruktur zu verändern.
Nur Beobachtung. Kein Tool in diesem Server verändert den Zustand. In Kombination mit einer Nur-Ansicht-Identität (unten) ergibt das eine harte Defense-in-Depth-Garantie, dass ein Agent schauen, aber niemals anfassen kann.
Was es kann
Bereich | Werkzeuge |
Umgebungen |
|
Logs & Fehler |
|
Metriken & Alarmierung |
|
Kosten & Empfehlungen |
|
Ressourceninventar |
|
Typische Prompts, sobald es verbunden ist:
"Was sind die häufigsten Fehlergruppen der letzten 24 Stunden und welche ist die neueste?"
"Welche GKE-Knotenpools sind überdimensioniert? Zeige die durchschnittliche CPU im Vergleich zum Maschinentyp."
"Wo kann ich in diesem Projekt Ausgaben reduzieren?"
Related MCP server: k8s-readonly-mcp
Mehrere Umgebungen
Ein Server kann mehrere Projekte erreichen. Definieren Sie sie unter
PLATFORM_MCP_ENVIRONMENTS (siehe Konfiguration) und der Agent
wählt anhand der Formulierung Ihres Prompts eines aus:
"Gibt es in der letzten Stunde Fehler in staging?"
"Vergleiche Cloud Run-Dienste zwischen staging und prod."
Jedes Tool akzeptiert ein optionales environment-Argument. Lassen Sie es weg und die Standardumgebung wird verwendet; übergeben Sie environment="production", um eine andere anzusprechen. Namen, von Ihnen definierte Aliase, gebräuchliche Kurzformen (prod, stg, qa, …) und nackte Projekt-IDs werden alle aufgelöst. Ein nicht erkannter Name ist ein Fehler, der die gültigen Optionen auflistet – ein Tippfehler kann niemals stillschweigend das falsche Projekt anvisieren.
Jede Umgebung hat ihr eigenes Dienstkonto, sodass Staging und Produktion über getrennte Identitäten aus demselben Prozess erreicht werden, und jedes Ergebnis gibt die environment und das project, aus denen es stammt, zurück.
Voraussetzungen
Python 3.11+
Ein Google-Cloud-Projekt und Anmeldedaten (eigener Login oder ein Dienstkonto)
Installation
git clone https://github.com/deBilla/platform-mcp.git
cd platform-mcp
python3 -m venv .venv
./.venv/bin/pip install -e .Einmalige GCP-Einrichtung
Führen Sie diese einmal pro Projekt aus, das Sie erreichen möchten – Staging und Produktion benötigen jeweils ihre eigenen aktivierten APIs und ihr eigenes schreibgeschütztes Dienstkonto.
1. Aktivieren Sie die APIs, von denen die Tools abhängen:
gcloud services enable \
logging.googleapis.com monitoring.googleapis.com clouderrorreporting.googleapis.com \
recommender.googleapis.com cloudasset.googleapis.com cloudbilling.googleapis.com \
bigquery.googleapis.com \
--project YOUR_PROJECT_ID2. Gewähren Sie der Identität, unter der der Server läuft, schreibgeschützten Zugriff.
Für die lokale Entwicklung mit Ihrem eigenen Login (Application Default Credentials):
gcloud auth application-default loginDie Identität benötigt diese Viewer-Rollen auf dem Projekt sowie roles/billing.viewer
auf dem Abrechnungskonto:
roles/viewer # broad read (compute, run, gke, sql via Asset Inventory)
roles/logging.viewer
roles/monitoring.viewer
roles/errorreporting.viewer
roles/recommender.viewer
roles/cloudasset.viewer
roles/bigquery.dataViewer # only for get_cost_breakdown
roles/bigquery.jobUser # only for get_cost_breakdown3. (Empfohlen) Verwenden Sie ein dediziertes schreibgeschütztes Dienstkonto anstelle Ihres Logins:
PROJECT=YOUR_PROJECT_ID
gcloud iam service-accounts create platform-mcp-ro \
--display-name "platform-mcp read-only" --project $PROJECT
SA=platform-mcp-ro@$PROJECT.iam.gserviceaccount.com
for ROLE in roles/viewer roles/logging.viewer roles/monitoring.viewer \
roles/errorreporting.viewer roles/recommender.viewer roles/cloudasset.viewer; do
gcloud projects add-iam-policy-binding $PROJECT \
--member="serviceAccount:$SA" --role="$ROLE"
done
# Let your own login impersonate it (no key file to manage):
gcloud iam service-accounts add-iam-policy-binding $SA \
--member="user:you@example.com" \
--role="roles/iam.serviceAccountTokenCreator" --project $PROJECTReferenzieren Sie es dann als impersonate-Wert dieser Umgebung in
PLATFORM_MCP_ENVIRONMENTS (bevorzugt – keine Schlüsseldatei) oder zeigen Sie über
GOOGLE_APPLICATION_CREDENTIALS auf einen heruntergeladenen Schlüssel.
Die Impersonation wird von der Identität durchgeführt, auf die Ihre ADC aufgelöst wird. Wenn Ihre ADC selbst ein impersoniertes Dienstkonto ist, benötigt dieses SA – nicht Ihr Benutzer –
roles/iam.serviceAccountTokenCreatorauf jedemplatform-mcp-ro.
Sicherheitsmodell
Schreibgeschützt wird durch IAM, nicht durch OAuth-Bereiche erzwungen. Der Server fordert den
breiten cloud-platform-Bereich an und bleibt nur deshalb schreibgeschützt, weil er nie eine
mutierende API aufruft. Verlassen Sie sich nicht allein auf den Code – führen Sie ihn unter einer
Nur-Ansicht-Identität (Schritt 3 oben) aus, sodass die Anmeldedaten selbst nicht schreiben können,
unabhängig davon, welcher Code ausgeführt wird. Das ergibt zwei unabhängige Ebenen: Der
Server versucht nicht zu schreiben, und die Identität könnte es nicht, selbst wenn sie es wollte.
Bei mehreren Umgebungen bleibt dies pro Projekt: Jede Umgebung authentifiziert sich mit ihrem eigenen Dienstkonto, sodass eine Staging-Identität niemals verwendet wird, um die Produktion zu erreichen. Gewähren Sie jeder nur Ansichtszugriff auf ihr eigenes Projekt.
Konfiguration
Kopieren Sie die Beispielkonfiguration und füllen Sie Ihre Werte aus:
cp .mcp.json.example .mcp.json.mcp.json ist git-ignoriert, sodass Ihre Projekt-IDs und Dienstkonto-E-Mails lokal bleiben. Umgebungsvariablen, die es (oder Ihre Shell) setzen kann:
Variable | Zweck |
| JSON-Zuordnung von Umgebungsname → Einstellungen. Die empfohlene Methode zur Konfiguration des Servers. |
| Umgebung, die verwendet wird, wenn ein Toolaufruf |
| Pfad zu einer schreibgeschützten SA-Schlüsseldatei (Alternative zur Impersonation). |
| Standardmäßige maximale Zeilenanzahl für listenartige Tools (Standard 50). |
PLATFORM_MCP_ENVIRONMENTS enthält ein JSON-Objekt; jeder Eintrag akzeptiert:
Schlüssel | Zweck |
| Erforderlich. GCP-Projekt-ID. |
| Schreibgeschütztes SA, das für diese Umgebung impersoniert werden soll (keine Schlüsseldatei erforderlich). |
| Vollqualifizierte BigQuery-Abrechnungsexporttabelle, nur für |
| Zusätzliche Namen, die der Agent für diese Umgebung verwenden kann. |
Ein nackter Zeichenfolgenwert ist eine Kurzform für {"project": "..."}. Als JSON innerhalb
von .mcp.json müssen die Anführungszeichen maskiert werden; ohne Maskierung lautet es:
{
"staging": {
"project": "my-app-staging",
"impersonate": "platform-mcp-ro@my-app-staging.iam.gserviceaccount.com"
},
"production": {
"project": "my-app",
"impersonate": "platform-mcp-ro@my-app.iam.gserviceaccount.com",
"billing_export_table": "my-app.billing.gcp_billing_export_v1_XXXXXX"
}
}Einzelumgebungsmodus. Wenn PLATFORM_MCP_ENVIRONMENTS nicht gesetzt ist, verhält sich der Server
wie zuvor und stellt eine Umgebung namens default bereit:
Variable | Zweck |
| Zielprojekt. Fällt auf Ihr ADC-Standardprojekt zurück, wenn nicht gesetzt. |
| Schreibgeschütztes SA, das impersoniert werden soll. Auch der Fallback für Registry-Einträge ohne |
| Abrechnungsexporttabelle. Auch der Fallback für Registry-Einträge ohne |
Bei einem Client registrieren
Claude Code / Claude Desktop – fügen Sie den Block aus .mcp.json.example zu Ihrer
MCP-Konfiguration hinzu (.mcp.json in einem Projekt für Claude Code oder
claude_desktop_config.json für Desktop) und zeigen Sie mit command auf das
Konsolenskript des venv, sodass keine globale Installation erforderlich ist:
{
"mcpServers": {
"platform-mcp": {
"command": "/absolute/path/to/platform-mcp/.venv/bin/platform-mcp",
"env": {
"PLATFORM_MCP_DEFAULT_ENVIRONMENT": "staging",
"PLATFORM_MCP_ENVIRONMENTS": "{\"staging\":{\"project\":\"YOUR_STAGING_PROJECT_ID\",\"impersonate\":\"platform-mcp-ro@YOUR_STAGING_PROJECT_ID.iam.gserviceaccount.com\"},\"production\":{\"project\":\"YOUR_PROD_PROJECT_ID\",\"impersonate\":\"platform-mcp-ro@YOUR_PROD_PROJECT_ID.iam.gserviceaccount.com\"}}"
}
}
}
}MCP Inspector – für interaktive Tests:
./.venv/bin/mcp dev src/platform_mcp/server.pyHinweise
Alle Tools begrenzen die Anzahl der Ergebnisse und kürzen lange Nutzlasten, um tokenfreundlich zu bleiben.
GCP-Clients werden lazy erstellt und pro Umgebung zwischengespeichert, sodass ein Wechsel zwischen Staging und Produktion mitten im Gespräch jeweils nur eine Client-Erstellung kostet.
Kostenempfehlungen sind zonal/regional;
list_cost_recommendationsentdeckt automatisch die Standorte, an denen Sie Ressourcen haben (über Asset Inventory), und verteilt sich, wobei Standorte und Empfehlungsgeber übersprungen werden, die leer oder nicht verfügbar sind.get_cost_breakdownverwendet parametrisierte BigQuery-Abfragen mit einer Whitelist von Group-by-Spalten.
Lizenz
MIT © 2026 Dimuthu Wickramanayake
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA read-only MCP server for AI coding agents to inspect repositories, audit code quality, route engineering skills, and plan safe issue/PR workflows.1MIT
- AlicenseAqualityCmaintenanceA read-only MCP server for inspecting Kubernetes clusters, allowing LLMs to list resources, describe pods, and read logs without mutation.5MIT
- AlicenseNot gradedqualityCmaintenanceA read-only MCP server that lets an LLM inspect an AWS account — list EC2 instances, S3 buckets, IAM users, and cost — with a structural guarantee against any mutations.MIT
- FlicenseAqualityCmaintenanceA secure, read-only MCP server for AI-powered system monitoring. It provides real-time OS metrics, config discovery, and safe log tailing to enable autonomous infrastructure audits without shell access risks.4
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
Read-only Remote MCP for externally grounded AI agent trust receipts.
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/deBilla/platform-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server