platform-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GCP_PROJECT | No | Target project. Falls back to your ADC default project if unset. Used in single-environment mode when PLATFORM_MCP_ENVIRONMENTS is unset. | |
| PLATFORM_MCP_CONFIG | No | Path to a config file. If unset, uses ~/.config/platform-mcp/config.toml. | |
| BILLING_EXPORT_TABLE | No | Billing export table. Also the fallback for registry entries with no `billing_export_table`. | |
| PLATFORM_MCP_AUDIT_LOG | No | Path for the audit log, or `off` to disable auditing. | |
| PLATFORM_MCP_LOG_LEVEL | No | Log level for diagnostic logs written to stderr. | |
| PLATFORM_MCP_ENVIRONMENTS | No | JSON map of environment name to settings. The recommended way to configure the server. Each entry accepts `project` (required), `impersonate`, `billing_export_table`, and `aliases`. | |
| PLATFORM_MCP_DEFAULT_LIMIT | No | Default max rows for list-style tools (default 50). | 50 |
| IMPERSONATE_SERVICE_ACCOUNT | No | Read-only service account to impersonate. Also the fallback for registry entries with no `impersonate`. | |
| GOOGLE_APPLICATION_CREDENTIALS | No | Path to a read-only service account key file (alternative to impersonation). | |
| PLATFORM_MCP_DEFAULT_ENVIRONMENT | No | Environment used when a tool call omits `environment`. Defaults to `staging` if configured, otherwise the first entry. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_environmentsA | List the GCP environments this server can query and which is the default. Pass one of the returned names as the |
| query_logsA | Query Cloud Logging with an advanced-filter expression. Args: filter: Cloud Logging advanced filter (e.g. 'severity>=WARNING AND resource.type="cloud_run_revision"'). Leave empty to match all logs. freshness: How far back to look, e.g. '30m', '1h', '2d'. Default '1h'. limit: Maximum number of entries to return (newest first). environment: Which configured GCP environment to query, e.g. 'staging' or 'production'. Omit to use the default environment. Call list_environments to see what is configured. |
| get_recent_errorsA | Return recent log entries at severity ERROR or higher. Args: service: Optional service name to narrow to (matched against resource.labels.service_name and logName). hours: How many hours back to search. Default 1. limit: Maximum number of entries to return (newest first). environment: Which configured GCP environment to query, e.g. 'staging' or 'production'. Omit to use the default environment. |
| list_error_groupsA | List grouped application errors from Error Reporting with counts. Args: hours: Lookback window; snapped to the nearest supported period (1h, 6h, 1d, 1w, 30d). Default 24. service: Optional service name filter (Error Reporting "service" label). limit: Maximum number of error groups to return (most frequent first). environment: Which configured GCP environment to query, e.g. 'staging' or 'production'. Omit to use the default environment. |
| query_metricA | Query a Cloud Monitoring metric time series. Args: metric_type: Metric type, e.g. 'compute.googleapis.com/instance/cpu/utilization'. resource_filter: Optional extra filter, e.g. 'resource.labels.instance_id="123"'. window: How far back to query, e.g. '1h', '6h', '1d'. Default '1h'. aligner: Aggregation across the alignment period: MEAN, MAX, MIN, SUM, COUNT, RATE, PERCENTILE_99. Default MEAN. alignment_period: Bucket size for aggregation, e.g. '1m', '5m'. Default '5m'. limit: Maximum number of time series to return. environment: Which configured GCP environment to query, e.g. 'staging' or 'production'. Omit to use the default environment. |
| list_alert_policiesA | List Cloud Monitoring alert policies and whether they are enabled. Args: limit: Maximum number of policies to return. environment: Which configured GCP environment to query, e.g. 'staging' or 'production'. Omit to use the default environment. |
| list_uptime_checksA | List Cloud Monitoring uptime check configurations. Args: limit: Maximum number of uptime checks to return. environment: Which configured GCP environment to query, e.g. 'staging' or 'production'. Omit to use the default environment. |
| list_cost_recommendationsA | Aggregate GCP cost-optimization recommendations (idle/rightsizing/etc). Fans out the cost recommenders across the locations where the project has resources. Recommenders/locations that are empty or not enabled are skipped. Args: locations: Optional comma-separated zones/regions to scan (e.g. 'us-central1,us-central1-a'). If empty, auto-discovers from Asset Inventory (requires the Cloud Asset API). limit_per_call: Max recommendations to pull per recommender+location. environment: Which configured GCP environment to query, e.g. 'staging' or 'production'. Omit to use the default environment. |
| list_recommendationsA | List recommendations from a specific recommender at a specific location. Args: recommender_id: Recommender id, e.g. 'google.compute.instance.MachineTypeRecommender' or 'google.iam.policy.Recommender'. location: Zone (e.g. 'us-central1-a'), region (e.g. 'us-central1'), or 'global' depending on the recommender. Default 'global'. limit: Maximum number of recommendations to return. environment: Which configured GCP environment to query, e.g. 'staging' or 'production'. Omit to use the default environment. |
| get_cost_breakdownA | Summarize recent spend from the BigQuery billing export. By default this reports spend for the selected environment's project only. A billing export table covers every project on the billing account, and several environments commonly share one table, so an unfiltered query would return identical account-wide totals for staging and production. Only the environment holding the export needs 'billing_export_table' set: one billing account exports to one project, and that export already covers every project on the account. Asking any other environment for costs returns an error naming the one that has it. Args: group_by: One of 'service', 'sku', 'project', 'region'. Default 'service'. days: Lookback window in days over usage_start_time. Default 30. limit: Max rows returned (highest net cost first). all_projects: Report the whole billing account instead of just this environment's project. Pair with group_by='project' to compare projects; the totals then are not specific to this environment. environment: Which configured GCP environment to bill against, e.g. 'staging' or 'production'. Omit to use the default environment. |
| get_billing_infoA | Return the billing account linked to the project and its status. Args: environment: Which configured GCP environment to inspect, e.g. 'staging' or 'production'. Omit to use the default environment. |
| search_assetsA | Search all cloud resources in the project via Cloud Asset Inventory. Args: asset_types: Optional comma-separated asset types to filter, e.g. 'compute.googleapis.com/Instance,run.googleapis.com/Service'. query: Optional free-text/structured query, e.g. 'state:RUNNING' or 'location:us-central1'. limit: Maximum number of resources to return. Default 50; raise it when you know you need a full inventory, since each resource costs context. include_labels: Include resource labels. Off by default because deployment labels are usually the largest part of the response and rarely answer the question being asked. environment: Which configured GCP environment to search, e.g. 'staging' or 'production'. Omit to use the default environment. Call list_environments to see what is configured. |
| list_compute_instancesA | List Compute Engine VM instances with location and status. Args: limit: Maximum number of instances to return. environment: Which configured GCP environment to query, e.g. 'staging' or 'production'. Omit to use the default environment. |
| list_cloud_run_servicesA | List Cloud Run services. Args: limit: Maximum number of services to return. environment: Which configured GCP environment to query, e.g. 'staging' or 'production'. Omit to use the default environment. |
| list_gke_clustersA | List GKE (Kubernetes Engine) clusters. Args: limit: Maximum number of clusters to return. environment: Which configured GCP environment to query, e.g. 'staging' or 'production'. Omit to use the default environment. |
| list_sql_instancesA | List Cloud SQL instances. Args: limit: Maximum number of instances to return. environment: Which configured GCP environment to query, e.g. 'staging' or 'production'. Omit to use the default environment. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
Most tools target clearly distinct GCP resources or actions, but query_logs and get_recent_errors overlap as general vs. error-filtered log queries, and list_cost_recommendations vs. list_recommendations could cause some selection uncertainty despite their aggregate/specific distinction.
All tools follow a consistent verb_noun pattern: list_* for enumeration, query_* for log/metric queries, get_* for specific lookups, and search_assets for asset discovery. There are no mixed naming conventions or unpredictable verbs.
At 16 tools, the server is slightly above the ideal 3-15 range, but the count is justified by the broad GCP read-only scope covering logs, errors, metrics, alerts, costs, billing, and multiple resource types. No tool feels redundant enough to remove.
The toolset covers core platform observability, cost, billing, and resource discovery well, with no obvious dead ends for typical read-only queries. Minor gaps exist such as lacking detailed single-resource fetches and specific listings for services like Cloud Storage or BigQuery, though search_assets partially mitigates these.