Skip to main content
Glama
gcp-mcp

gcp-mcp

by fastmcp-me

Add to Cursor Add to VS Code Add to Claude Add to ChatGPT Add to Codex Add to Gemini

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-mcp

License

MIT License

Your contributions and issues are welcome !

Available Tools

56 tools
add_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

    B3.1/5.0

    Scored across 56 tools

    Disambiguation4/5

    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.

    Naming Consistency3/5

    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.

    Tool Count2/5

    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.

    Completeness2/5

    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

    Related MCP Servers

    • F
      license
      B
      quality
      D
      maintenance
      Enables 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.
      56
      20
      -
    • A
      license
      C
      quality
      D
      maintenance
      Enables 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.
      40
      1
      Apache 2.0
    • A
      license
      C
      quality
      D
      maintenance
      Enables 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.
      9
      1,244 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables 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