platform-mcp
platform-mcp
Только чтение Model Context Protocol сервер, который превращает AI-агента (Claude Code, Claude Desktop или любого MCP-клиента) в инженера платформы GCP. Укажите ему ваши проекты Google Cloud и попросите расследовать инциденты, провести инвентаризацию и выявить возможности оптимизации затрат — всё это без какой-либо возможности изменить вашу инфраструктуру.
Только наблюдение. Ни один инструмент в этом сервере не изменяет состояние. В сочетании с идентичностью только для просмотра (ниже) это даёт вам жёсткую гарантию защиты в глубину: агент может смотреть, но никогда не трогать.
Что он умеет
Область | Инструменты |
Окружения |
|
Логи и ошибки |
|
Метрики и оповещения |
|
Затраты и рекомендации |
|
Инвентаризация ресурсов |
|
Типичные запросы после подключения:
«Какие группы ошибок самые частые за последние 24 часа, и какая из них самая новая?»
«Какие пулы узлов GKE избыточно обеспечены? Покажи среднее использование CPU по типу машины.»
«Где я могу сократить расходы в этом проекте?»
Related MCP server: k8s-readonly-mcp
Несколько окружений
Один сервер может работать с несколькими проектами. Определите их в
PLATFORM_MCP_ENVIRONMENTS (см. Конфигурация), и агент
выберет нужное по формулировке вашего запроса:
«Есть ли ошибки в staging за последний час?»
«Сравни сервисы Cloud Run между staging и prod»
Каждый инструмент принимает необязательный аргумент environment. Если его опустить, используется окружение по умолчанию; передайте environment="production", чтобы обратиться к другому. Имена, любые заданные вами псевдонимы, распространённые сокращения (prod, stg, qa, …) и просто идентификаторы проектов — всё распознаётся. Неизвестное имя вызывает ошибку с перечислением допустимых вариантов — опечатка никогда не приведёт к тихому перенаправлению на неверный проект.
Каждое окружение использует собственный сервисный аккаунт, поэтому staging и production доступны через отдельные идентичности из одного процесса, и каждый результат возвращает environment и project, из которых он получен.
Требования
Python 3.11+
Проект Google Cloud и учётные данные (ваш собственный вход или сервисный аккаунт)
CLI
gcloudдля разовой настройки
Установка
git clone https://github.com/deBilla/platform-mcp.git
cd platform-mcp
python3 -m venv .venv
./.venv/bin/pip install -e .Разовая настройка GCP
Выполните эти шаги один раз для каждого проекта, к которому хотите получить доступ — для staging и production нужны свои включённые API и свой сервисный аккаунт только для чтения.
1. Включите API, от которых зависят инструменты:
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. Предоставьте доступ только для чтения идентичности, под которой работает сервер.
Для локальной разработки с вашим собственным входом (Application Default Credentials):
gcloud auth application-default loginЭтой идентичности нужны следующие роли просмотра на проекте, плюс roles/billing.viewer на биллинговом аккаунте:
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. (Рекомендуется) Используйте выделенный сервисный аккаунт только для чтения вместо вашего входа:
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 $PROJECTЗатем укажите его как значение impersonate для этого окружения в
PLATFORM_MCP_ENVIRONMENTS (предпочтительно — без файла ключа) или укажите путь к скачанному ключу через GOOGLE_APPLICATION_CREDENTIALS.
Имперсонация выполняется той идентичностью, в которую разрешается ваш ADC. Если ваш ADC сам является имперсонализированным сервисным аккаунтом, то этому SA — а не вашему пользователю — нужна роль
roles/iam.serviceAccountTokenCreatorна каждомplatform-mcp-ro.
Модель безопасности
Только чтение обеспечивается IAM, а не областью OAuth. Сервер запрашивает широкую область cloud-platform и остаётся только для чтения исключительно потому, что никогда не вызывает изменяющий API. Не полагайтесь только на код — запускайте его под идентичностью только для просмотра (шаг 3 выше), чтобы сами учётные данные были неспособны на запись, независимо от того, какой код выполняется. Это даёт два независимых уровня: сервер не пытается писать, а идентичность не смогла бы, даже если бы попыталась.
С несколькими окружениями это остаётся по-проектным: каждое окружение аутентифицируется как собственный сервисный аккаунт, поэтому идентичность staging никогда не используется для доступа к production. Предоставьте каждому доступ только для просмотра только к своему проекту.
Конфигурация
Скопируйте пример конфигурации и заполните свои значения:
cp .mcp.json.example .mcp.json.mcp.json игнорируется git, поэтому ваши идентификаторы проектов и адреса сервисных аккаунтов остаются локальными. Переменные окружения, которые он (или ваша оболочка) может задать:
Переменная | Назначение |
| JSON-карта имя окружения → настройки. Рекомендуемый способ настройки сервера. |
| Окружение, используемое, когда вызов инструмента опускает |
| Путь к файлу ключа SA только для чтения (альтернатива имперсонации). |
| Максимальное количество строк по умолчанию для инструментов спискового типа (по умолчанию 50). |
PLATFORM_MCP_ENVIRONMENTS содержит JSON-объект; каждая запись принимает:
Ключ | Назначение |
| Обязательно. Идентификатор проекта GCP. |
| SA только для чтения для имперсонации в этом окружении (файл ключа не нужен). |
| Полностью квалифицированная таблица экспорта биллинга BigQuery, требуется только для |
| Дополнительные имена, которые агент может использовать для этого окружения. |
Простое строковое значение — это сокращение для {"project": "..."}. Как JSON внутри
.mcp.json кавычки должны быть экранированы; без экранирования это выглядит так:
{
"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"
}
}Режим одного окружения. Если PLATFORM_MCP_ENVIRONMENTS не задан, сервер
ведёт себя как раньше, предоставляя одно окружение с именем default:
Переменная | Назначение |
| Целевой проект. Если не задан, используется проект по умолчанию из вашего ADC. |
| SA только для чтения для имперсонации. Также используется как запасной вариант для записей реестра без |
| Таблица экспорта биллинга. Также используется как запасной вариант для записей реестра без |
Регистрация в клиенте
Claude Code / Claude Desktop — добавьте блок из .mcp.json.example в вашу
MCP-конфигурацию (.mcp.json в проекте для Claude Code, или
claude_desktop_config.json для Desktop), указав command на консольный скрипт
venv, чтобы не требовалась глобальная установка:
{
"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 — для интерактивного тестирования:
./.venv/bin/mcp dev src/platform_mcp/server.pyПримечания
Все инструменты ограничивают количество результатов и усекают длинные полезные нагрузки, чтобы оставаться дружелюбными к токенам.
GCP-клиенты создаются лениво и кэшируются для каждого окружения, поэтому переключение между staging и production в середине разговора стоит одного создания клиента.
Рекомендатели затрат являются зональными/региональными;
list_cost_recommendationsавтоматически обнаруживает местоположения, где у вас есть ресурсы (через Asset Inventory), и рассылает запросы, пропуская пустые или недоступные местоположения и рекомендателей.get_cost_breakdownиспользует параметризованные запросы BigQuery с белым списком столбцов для группировки.
Лицензия
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