gcp-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@gcp-mcp Show me my compute instances"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
GCP MCP Application
Claude Desktop Integration
To enable GCP management capabilities in Claude Desktop, simply add the following configuration to your Claude Desktop MCP configuration:
{
"gcp-mcp": {
"command": "uvx",
"args": [
"gcp-mcp"
]
}
}That's it! No additional setup or credential manipulation is required. When you first ask Claude to interact with your GCP resources, a browser window will automatically open for you to authenticate and grant access. Once you approve the access, Claude will be able to manage your GCP resources through natural language commands.
Here are some example requests you can make:
Basic Operations:
"Could you list my GCP projects?"
"Show me my compute instances"
"What storage buckets do I have?"
Resource Creation:
"Please create a compute instance with 2GB RAM and 10GB storage, name it MCP-engine"
"Create a new storage bucket called my-backup-bucket in us-central1"
"Set up a new VPC network named prod-network with subnet 10.0.0.0/24"
Resource Management:
"Stop all compute instances in the dev project"
"Show me all instances that have been running for more than 24 hours"
"What's the current CPU usage of my instance named backend-server?"
"Create a snapshot of my database disk"
Monitoring and Alerts:
"Set up an alert for when CPU usage goes above 80%"
"Show me all critical alerts from the last 24 hours"
"What's the current status of my GKE clusters?"
Related MCP server: GCP Billing and Monitoring MCP Server
Features
The application provides comprehensive coverage of GCP services:
Resource Management
Projects and quotas management
Asset inventory
IAM permissions
Compute & Infrastructure
Compute Engine instances
Storage buckets and disks
VPC networks and firewall rules
Kubernetes Engine (GKE) clusters
Databases & Storage
Cloud SQL instances
Firestore databases
Cloud Storage
Database backups
Monitoring & Billing
Metrics and alerts
Billing information
Uptime monitoring
Resource usage tracking
Coming Soon
Deployment manager and infrastructure as code
Installation
pip install gcp-mcpLicense
Your contributions and issues are welcome !
Available Tools
56 toolsadd_iam_policy_bindingB
Add an IAM policy binding to a GCP project.
Args:
project_id: The ID of the GCP project
role: The role to grant (e.g., "roles/compute.admin")
member: The member to grant the role to (e.g., "user:email@example.com", "serviceAccount:name@project.iam.gserviceaccount.com")
Returns:
Result of the policy binding operation
Inputs: role (required), member (required), project_id (required).
auth_listA
List active Google Cloud credentials.
Returns:
List of active credentials and the current default account
Inputs: no named parameters.
auth_loginA
Authenticate with Google Cloud Platform using browser-based OAuth flow.
Args:
project_id: Optional project ID to set as default after login
Returns:
Status message indicating whether authentication was successful
Inputs: project_id.
auth_revokeA
Revoke Google Cloud credentials.
Returns:
Status message indicating whether the credentials were revoked
Inputs: no named parameters.
check_iam_permissionsA
Check IAM permissions for the current user in a GCP project.
Args:
project_id: The ID of the GCP project to check permissions for
Returns:
List of IAM permissions for the current user in the specified GCP project
Inputs: project_id (required).
config_listB
List the current Google Cloud configuration.
Returns:
Current configuration settings
Inputs: no named parameters.
config_set_projectA
Set the default Google Cloud project.
Args:
project_id: The ID of the project to set as default
Returns:
Status message indicating whether the project was set
Inputs: project_id (required).
create_alert_policyA
Create a new alert policy in a GCP project.
Args:
project_id: The ID of the GCP project
display_name: The display name for the alert policy
metric_type: The metric type to monitor (e.g., "compute.googleapis.com/instance/cpu/utilization")
filter_str: The filter for the metric data
duration_seconds: The duration in seconds over which to evaluate the condition (default: 60)
threshold_value: The threshold value for the condition (default: 0.0)
comparison: The comparison type (COMPARISON_GT, COMPARISON_LT, etc.) (default: COMPARISON_GT)
notification_channels: Optional list of notification channel IDs
Returns:
Result of the alert policy creation
Inputs: filter_str (required), project_id (required), metric_type (required), display_name (required), +4 more.
create_backupC
Create a backup for a Cloud SQL instance.
Args:
project_id: The ID of the GCP project
instance_id: The ID of the Cloud SQL instance
description: Optional description for the backup
Returns:
Result of the backup operation
Inputs: project_id (required), instance_id (required), description.
create_firewall_ruleA
Create a firewall rule in a GCP project.
Args:
project_id: The ID of the GCP project
name: The name of the firewall rule
network: The name of the network to create the firewall rule for
direction: The direction of traffic to match ('INGRESS' or 'EGRESS')
priority: The priority of the rule (lower number = higher priority, 0-65535)
source_ranges: Optional list of source IP ranges (for INGRESS)
destination_ranges: Optional list of destination IP ranges (for EGRESS)
allowed_protocols: Optional list of allowed protocols, e.g. [{"IPProtocol": "tcp", "ports": ["80", "443"]}]
denied_protocols: Optional list of denied protocols, e.g. [{"IPProtocol": "tcp", "ports": ["22"]}]
target_tags: Optional list of target instance tags
source_tags: Optional list of source instance tags (for INGRESS)
description: Optional description for the firewall rule
Returns:
Result of the firewall rule creation
Inputs: name (required), network (required), priority (required), direction (required), +8 more.
create_instanceB
Create a new Compute Engine instance.
Args:
project_id: The ID of the GCP project
zone: The zone to create the instance in (e.g., "us-central1-a")
instance_name: The name for the new instance
machine_type: The machine type (e.g., "e2-medium")
source_image: The source image for the boot disk (e.g., "projects/debian-cloud/global/images/family/debian-11")
boot_disk_size_gb: The size of the boot disk in GB (default: 10)
network: The network to connect to (default: "default")
subnet: The subnetwork to connect to (optional)
external_ip: Whether to allocate an external IP (default: True)
Returns:
Status message indicating whether the instance was created successfully
Inputs: zone (required), project_id (required), machine_type (required), source_image (required), +5 more.
create_service_accountA
Create a new service account in a GCP project.
Args:
project_id: The ID of the GCP project
account_id: The ID for the service account (must be between 6 and 30 characters)
display_name: A user-friendly name for the service account
description: Optional description for the service account
Returns:
Result of the service account creation
Inputs: account_id (required), project_id (required), display_name (required), description.
create_snapshotB
Create a snapshot of a Compute Engine disk.
Args:
project_id: The ID of the GCP project
zone: The zone where the disk is located (e.g., "us-central1-a")
disk_name: The name of the disk to snapshot
snapshot_name: The name for the new snapshot
description: Optional description for the snapshot
Returns:
Status message indicating whether the snapshot was created successfully
Inputs: zone (required), disk_name (required), project_id (required), snapshot_name (required), +1 more.
delete_instanceB
Delete a Compute Engine instance.
Args:
project_id: The ID of the GCP project
zone: The zone where the instance is located (e.g., "us-central1-a")
instance_name: The name of the instance to delete
Returns:
Status message indicating whether the instance was deleted successfully
Inputs: zone (required), project_id (required), instance_name (required).
delete_objectB
Delete an object from a Cloud Storage bucket.
Args:
project_id: The ID of the GCP project
bucket_name: The name of the bucket to delete from
blob_name: The name of the file to delete
Returns:
Result of the delete operation
Inputs: blob_name (required), project_id (required), bucket_name (required).
download_objectC
Download a file from a Cloud Storage bucket.
Args:
project_id: The ID of the GCP project
bucket_name: The name of the bucket to download from
source_blob_name: The name of the file in the bucket
destination_file_path: The local path to save the file to
Returns:
Result of the download operation
Inputs: project_id (required), bucket_name (required), source_blob_name (required), destination_file_path (required).
get_billing_infoA
Get billing information for a GCP project.
Args:
project_id: The ID of the GCP project to get billing information for
Returns:
Billing information for the specified GCP project
Inputs: project_id (required).
get_bucket_detailsB
Get detailed information about a specific Cloud Storage bucket.
Args:
project_id: The ID of the GCP project
bucket_name: The name of the bucket to get details for
Returns:
Detailed information about the specified Cloud Storage bucket
Inputs: project_id (required), bucket_name (required).
get_cluster_detailsB
Get detailed information about a specific GKE cluster.
Args:
project_id: The ID of the GCP project
cluster_name: The name of the GKE cluster
location: The location (region or zone) of the cluster
Returns:
Detailed information about the specified GKE cluster
Inputs: location (required), project_id (required), cluster_name (required).
get_deployment_detailsA
Get details of a specific Deployment Manager deployment.
Args:
project_id: The ID of the GCP project
deployment_name: The name of the deployment to get details for
Returns:
Details of the specified deployment
Inputs: project_id (required), deployment_name (required).
get_gcp_project_detailsB
Get detailed information about a specific GCP project.
Args:
project_id: The ID of the GCP project to get details for
Returns:
Detailed information about the specified GCP project
Inputs: project_id (required).
get_instance_detailsA
Get detailed information about a specific Compute Engine instance.
Args:
project_id: The ID of the GCP project
zone: The zone where the instance is located (e.g., "us-central1-a")
instance_name: The name of the instance to get details for
Returns:
Detailed information about the specified Compute Engine instance
Inputs: zone (required), project_id (required), instance_name (required).
get_monitoring_alertsA
Get active monitoring alerts for a GCP project.
Args:
project_id: The ID of the GCP project to get alerts for
Returns:
Active alerts for the specified GCP project
Inputs: project_id (required).
get_role_permissionsA
Get detailed information about an IAM role, including its permissions.
Args:
role_name: The name of the role (e.g., "roles/compute.admin" or "projects/my-project/roles/myCustomRole")
project_id: Optional project ID for custom roles. Not needed if role_name is fully qualified.
Returns:
Detailed information about the IAM role
Inputs: role_name (required), project_id.
get_sql_instance_detailsA
Get detailed information about a specific Cloud SQL instance.
Args:
project_id: The ID of the GCP project
instance_id: The ID of the Cloud SQL instance
Returns:
Detailed information about the specified Cloud SQL instance
Inputs: project_id (required), instance_id (required).
get_vpc_detailsB
Get detailed information about a specific VPC network.
Args:
project_id: The ID of the GCP project
network_name: The name of the VPC network
Returns:
Detailed information about the specified VPC network
Inputs: project_id (required), network_name (required).
list_assetsA
List assets in a GCP project using Cloud Asset Inventory API.
Args:
project_id: The ID of the GCP project to list assets for
asset_types: Optional list of asset types to filter by (e.g., ["compute.googleapis.com/Instance"])
page_size: Number of assets to return per page (default: 50, max: 1000)
Returns:
List of assets in the specified GCP project
Inputs: project_id (required), page_size, asset_types.
list_cloud_build_triggersA
List Cloud Build triggers in a GCP project.
Args:
project_id: The ID of the GCP project to list build triggers for
Returns:
List of Cloud Build triggers in the specified GCP project
Inputs: project_id (required).
list_cloud_sql_instancesB
List Cloud SQL instances in a GCP project.
Args:
project_id: The ID of the GCP project to list Cloud SQL instances for
Returns:
List of Cloud SQL instances in the specified GCP project
Inputs: project_id (required).
list_compute_instancesA
List Compute Engine instances in a GCP project.
Args:
project_id: The ID of the GCP project to list instances for
zone: Optional zone to filter instances (e.g., "us-central1-a")
Returns:
List of Compute Engine instances in the specified GCP project
Inputs: project_id (required), zone.
list_databasesA
List databases in a Cloud SQL instance.
Args:
project_id: The ID of the GCP project
instance_id: The ID of the Cloud SQL instance
Returns:
List of databases in the specified Cloud SQL instance
Inputs: project_id (required), instance_id (required).
list_deployment_manager_deploymentsA
List Deployment Manager deployments in a GCP project.
Args:
project_id: The ID of the GCP project to list deployments for
Returns:
List of Deployment Manager deployments in the specified GCP project
Inputs: project_id (required).
list_disksA
List Compute Engine persistent disks in a GCP project.
Args:
project_id: The ID of the GCP project to list disks for
zone: Optional zone to filter disks (e.g., "us-central1-a")
Returns:
List of persistent disks in the specified GCP project
Inputs: project_id (required), zone.
list_firestore_collectionsA
List collections in a Firestore database.
Args:
project_id: The ID of the GCP project
database_id: The ID of the Firestore database (default is "(default)")
Returns:
List of collections in the specified Firestore database
Inputs: project_id (required), database_id.
list_firestore_databasesB
List Firestore databases in a GCP project.
Args:
project_id: The ID of the GCP project to list Firestore databases for
Returns:
List of Firestore databases in the specified GCP project
Inputs: project_id (required).
list_firewall_rulesA
List firewall rules in a GCP project, optionally filtered by network.
Args:
project_id: The ID of the GCP project
network: Optional network name to filter firewall rules by
Returns:
List of firewall rules in the specified GCP project
Inputs: project_id (required), network.
list_gcp_projectsA
List all available GCP projects for the authenticated user.
Returns:
List of project IDs
Inputs: no named parameters.
list_gcp_servicesA
List enabled services/APIs in a GCP project.
Args:
project_id: The ID of the GCP project to list services for
Returns:
List of enabled services in the specified GCP project
Inputs: project_id (required).
list_gke_clustersA
List Google Kubernetes Engine (GKE) clusters in a GCP project.
Args:
project_id: The ID of the GCP project to list GKE clusters for
region: Optional region to filter clusters (e.g., "us-central1")
Returns:
List of GKE clusters in the specified GCP project
Inputs: project_id (required), region.
list_machine_typesA
List available machine types in a specific zone.
Args:
project_id: The ID of the GCP project
zone: The zone to check machine types in (e.g., "us-central1-a")
Returns:
List of available machine types in the specified zone
Inputs: zone (required), project_id (required).
list_monitoring_metricsA
List available monitoring metrics for a GCP project.
Args:
project_id: The ID of the GCP project to list metrics for
filter_str: Optional filter string to narrow down the metrics
Returns:
List of available monitoring metrics in the specified GCP project
Inputs: project_id (required), filter_str.
list_node_poolsA
List node pools in a GKE cluster.
Args:
project_id: The ID of the GCP project
cluster_name: The name of the GKE cluster
location: The location (region or zone) of the cluster
Returns:
List of node pools in the specified GKE cluster
Inputs: location (required), project_id (required), cluster_name (required).
list_objectsA
List objects in a Cloud Storage bucket.
Args:
project_id: The ID of the GCP project
bucket_name: The name of the bucket to list objects from
prefix: Optional prefix to filter objects by
limit: Maximum number of objects to list (default: 100)
Returns:
List of objects in the specified Cloud Storage bucket
Inputs: project_id (required), bucket_name (required), limit, prefix.
list_rolesA
List IAM roles (predefined or custom).
Args:
project_id: Optional project ID for listing custom roles. If not provided, lists predefined roles.
Returns:
List of IAM roles
Inputs: project_id.
list_service_accountsB
List service accounts in a GCP project.
Args:
project_id: The ID of the GCP project
Returns:
List of service accounts in the project
Inputs: project_id (required).
list_snapshotsA
List disk snapshots in a GCP project.
Args:
project_id: The ID of the GCP project to list snapshots for
Returns:
List of disk snapshots in the specified GCP project
Inputs: project_id (required).
list_storage_bucketsA
List Cloud Storage buckets in a GCP project.
Args:
project_id: The ID of the GCP project to list buckets for
Returns:
List of Cloud Storage buckets in the specified GCP project
Inputs: project_id (required).
list_subnetsA
List subnets in a GCP project, optionally filtered by region.
Args:
project_id: The ID of the GCP project
region: Optional region to filter subnets by
Returns:
List of subnets in the specified GCP project
Inputs: project_id (required), region.
list_uptime_checksA
List Uptime checks in a GCP project.
Args:
project_id: The ID of the GCP project to list Uptime checks for
Returns:
List of Uptime checks in the specified GCP project
Inputs: project_id (required).
list_vpc_networksB
List Virtual Private Cloud (VPC) networks in a GCP project.
Args:
project_id: The ID of the GCP project to list VPC networks for
Returns:
List of VPC networks in the specified GCP project
Inputs: project_id (required).
resize_node_poolB
Resize a node pool in a GKE cluster.
Args:
project_id: The ID of the GCP project
cluster_name: The name of the GKE cluster
location: The location (region or zone) of the cluster
node_pool_name: The name of the node pool to resize
node_count: The new node count for the pool
Returns:
Result of the node pool resize operation
Inputs: location (required), node_count (required), project_id (required), cluster_name (required), +1 more.
say_helloB
Say hello to a person.
Inputs: name (required).
set_quota_projectA
Set a quota project for Google Cloud API requests.
This helps resolve the warning: "Your application has authenticated using end user credentials
from Google Cloud SDK without a quota project."
Args:
project_id: The ID of the GCP project to use for quota attribution
Returns:
Confirmation message if successful, error message otherwise
Inputs: project_id (required).
start_instanceA
Start a Compute Engine instance.
Args:
project_id: The ID of the GCP project
zone: The zone where the instance is located (e.g., "us-central1-a")
instance_name: The name of the instance to start
Returns:
Status message indicating whether the instance was started successfully
Inputs: zone (required), project_id (required), instance_name (required).
stop_instanceB
Stop a Compute Engine instance.
Args:
project_id: The ID of the GCP project
zone: The zone where the instance is located (e.g., "us-central1-a")
instance_name: The name of the instance to stop
Returns:
Status message indicating whether the instance was stopped successfully
Inputs: zone (required), project_id (required), instance_name (required).
upload_objectA
Upload a file to a Cloud Storage bucket.
Args:
project_id: The ID of the GCP project
bucket_name: The name of the bucket to upload to
source_file_path: The local file path to upload
destination_blob_name: The name to give the file in GCS (default: filename from source)
content_type: The content type of the file (default: auto-detect)
Returns:
Result of the upload operation
Inputs: project_id (required), bucket_name (required), source_file_path (required), content_type, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 56 tools
Most tools target distinct GCP resources and include the resource type in the name (e.g., list_compute_instances, list_storage_buckets). However, several configuration and auth tools (config_set_project, set_quota_project, auth_login, auth_list) overlap in purpose and could confuse an agent, and get_instance_details vs get_sql_instance_details may be ambiguous without careful attention.
The majority of tools use a consistent verb_noun snake_case pattern (list_*, get_*, create_*, delete_*). But there are notable exceptions like config_set_project, auth_login, auth_list, set_quota_project, and say_hello that break the pattern, mixing noun_verb and generic verbs.
56 tools is excessive for a coherent MCP server. Even though GCP is broad, many tools are repetitive list/get operations across services, making the set feel bloated and hard to navigate. This count pushes beyond the reasonable range for maintainability and agent usability.
The server is heavily read-focused and lacks full lifecycle coverage for many resources. There are no update/delete tools for buckets, service accounts, GKE clusters, SQL instances, firewall rules, alert policies, and many other resources, and no create operations for several listed services. This leaves obvious dead ends for common management workflows.
Related MCP Connectors
Interact with your Google Cloud Firestore resources using natural language commands.
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
Interact with your Google Bigtable resources using natural language commands.
The Google Compute Engine MCP server is a fully-managed Model Context Protocol server that provides tools to manage Google Compute Engine resources through AI agents. It enables capabilities including instance management (creating, starting, stopping, resetting, listing), disk management, handling instance templates and group managers, viewing machine and accelerator types, managing images, and accessing reservation and commitment information. The server operates as a zero-deployment, enterprise-grade endpoint at https://compute.googleapis.com/mcp with built-in IAM-based security.
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables managing Google Cloud Platform resources through natural language commands in Claude Desktop, supporting comprehensive operations across compute, storage, databases, networking, monitoring, and IAM without manual credential setup.5620-
- AlicenseCqualityDmaintenanceEnables interaction with Google Cloud services including billing cost analysis, log querying, and metrics monitoring through natural language commands. Provides comprehensive tools for managing GCP resources, analyzing costs, detecting anomalies, and retrieving operational insights.401Apache 2.0
- AlicenseCqualityDmaintenanceEnables AI assistants to interact with Google Cloud Platform resources through natural language queries. Supports querying and managing GCP services like Compute Engine, Cloud Storage, BigQuery, and more across multiple projects and regions.91,244 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Google Cloud Platform services through gcloud CLI commands via a Cloud Run deployed MCP server. Supports executing gcloud commands and managing GCP resources through natural language.MIT