100+ integrations are ready to connect to your AI.Connect your first MCP

Google Cloud Storage MCP server for your AI

Ask how big a bucket is and which folder is eating the space, read a CSV or look at an image where it sits, save a report to a bucket, bring back a deleted file, and check who can reach your data.

PopMCPGoogle Cloud Storage

List my buckets and tell me which folder in the main one takes up the most space

Supported Google Cloud Storage tools

Every tool in the Cloud Storage JSON API, Storage Transfer, Storage Insights and Storage Batch Operations, plus tools that read and upload files safely, copy large objects and change one person's access without touching anyone else's.

144 tools in the full catalog: 61 read and 83 write. 37 load by default, and the rest are found with tool search.

gcs_bulk_restore_objects

Initiates a long-running bulk restore operation on the specified bucket.

gcs_compose_objects

Concatenates a list of existing objects into a new object in the same bucket.

gcs_delete_object

Deletes an object and its metadata.

gcs_get_object

Retrieves an object or its metadata.

gcs_list_objects

Retrieves a list of objects matching the criteria.

gcs_move_object

Moves the source object to the destination object in the same bucket.

gcs_restore_object

Restores a soft-deleted object.

gcs_update_object

Patches an object's metadata.

gcs_create_bucket

Creates a new bucket.

gcs_delete_bucket

Deletes an empty bucket.

gcs_get_bucket

Returns metadata for the specified bucket.

gcs_get_bucket_iam_policy

Returns an IAM policy for the specified bucket.

gcs_get_bucket_storage_layout

Returns the storage layout configuration for the specified bucket.

gcs_list_buckets

Retrieves a list of buckets for a given project.

gcs_restore_bucket

Restores a soft-deleted bucket.

gcs_test_bucket_iam_permissions

Tests a set of permissions on the given bucket to see which, if any, are held by the caller.

gcs_update_bucket

Patches a bucket.

gcs_copy_object

Copy a file, within a bucket or to another one, of any size.

gcs_delete_objects

Delete up to 100 files from one bucket, and get a result for each, so one missing file does not stop the rest.

gcs_get_object_links

Get links to a file: consoleUrl and browserUrl open for anyone signed in with access to it, and gsUrl names it for other tools.

gcs_grant_bucket_access

Give someone a role on a bucket without touching anyone else's access.

gcs_read_object

Read a file's contents from a bucket.

gcs_revoke_bucket_access

Remove someone's role on a bucket without touching anyone else's access.

gcs_start_resumable_upload

Start an upload of up to 5 TiB and get back uploadUrl.

gcs_summarize_bucket

How big a bucket or folder is: file count and total size, split by top-level folder and storage class.

gcs_upload_object

Create a file in a bucket, or replace one with the same name.

gcs_list_managed_folders

Lists managed folders in the given bucket.

gcs_create_folder

Creates a new folder.

gcs_delete_folder

Permanently deletes a folder.

gcs_list_folders

Retrieves a list of folders matching the criteria.

gcs_rename_folder

Renames a source folder to a destination folder.

gcs_create_notification_config

Creates a notification subscription for a given bucket.

gcs_get_bucket_operation

Gets the latest state of a long-running operation.

gcs_list_bucket_operations

Lists operations that match the specified filter in the request.

gcs_list_hmac_keys

Retrieves a list of HMAC keys matching the criteria.

gcs_list_notification_configs

Retrieves a list of notification subscriptions for a given bucket.

gcs_get_project_service_account

Get the email address of this project's Google Cloud Storage service account.

gcs_copy_object_direct

Copies a source object to a destination object.

gcs_get_object_full_context

Retrieves a specific object context with its extended data for a given object.

gcs_get_object_iam_policy

Returns an IAM policy for the specified object.

gcs_replace_object

Updates an object's metadata.

gcs_rewrite_object

Rewrites a source object to a destination object.

gcs_set_object_iam_policy

Updates an IAM policy for the specified object.

gcs_test_object_iam_permissions

Tests a set of permissions on the given object to see which, if any, are held by the caller.

gcs_lock_bucket_retention_policy

Locks retention policy on a bucket.

gcs_relocate_bucket

Initiates a long-running Relocate Bucket operation on the specified bucket.

gcs_replace_bucket

Updates a bucket.

gcs_set_bucket_iam_policy

Updates an IAM policy for the specified bucket.

gcs_create_managed_folder

Creates a new managed folder.

gcs_delete_managed_folder

Permanently deletes a managed folder.

gcs_get_managed_folder

Returns metadata of the specified managed folder.

gcs_get_managed_folder_iam_policy

Returns an IAM policy for the specified managed folder.

gcs_set_managed_folder_iam_policy

Updates an IAM policy for the specified managed folder.

gcs_test_managed_folder_iam_permissions

Tests a set of permissions on the given managed folder to see which, if any, are held by the caller.

gcs_update_managed_folder

Updates a managed folder using patch semantics.

gcs_create_anywhere_cache

Creates an Anywhere Cache instance.

gcs_create_dataset_config

Creates a dataset configuration in a given project for a given location.

gcs_delete_dataset_config

Deletes a dataset configuration in a given project for a given location.

gcs_disable_anywhere_cache

Disables an Anywhere Cache instance.

gcs_get_anywhere_cache

Returns the metadata of an Anywhere Cache instance.

gcs_get_dataset_config

Gets the dataset configuration in a given project for a given location.

gcs_link_dataset_config

Links a dataset to BigQuery in a given project for a given location.

gcs_list_anywhere_caches

Returns a list of Anywhere Cache instances of the bucket matching the criteria.

gcs_list_dataset_configs

Lists the dataset configurations in a given project for a given location.

gcs_pause_anywhere_cache

Pauses an Anywhere Cache instance.

gcs_resume_anywhere_cache

Resumes a paused or disabled Anywhere Cache instance.

gcs_unlink_dataset_config

Unlinks a dataset from BigQuery in a given project for a given location.

gcs_update_anywhere_cache

Updates the config of an Anywhere Cache instance.

gcs_update_dataset_config

Updates a dataset configuration in a given project for a given location.

gcs_create_bucket_acl

Creates a new ACL entry on the specified bucket.

gcs_create_default_object_acl

Creates a new default object ACL entry on the specified bucket.

gcs_create_object_acl

Creates a new ACL entry on the specified object.

gcs_create_transfer_job

Creates a transfer job that runs periodically.

gcs_delete_bucket_acl

Permanently deletes the ACL entry for the specified entity on the specified bucket.

gcs_delete_default_object_acl

Permanently deletes the default object ACL entry for the specified entity on the specified bucket.

gcs_delete_folder_recursive

Deletes a folder recursively.

gcs_delete_object_acl

Permanently deletes the ACL entry for the specified entity on the specified object.

gcs_delete_transfer_job

Deletes a transfer job.

gcs_get_bucket_acl

Returns the ACL entry for the specified entity on the specified bucket.

gcs_get_default_object_acl

Returns the default object ACL entry for the specified entity on the specified bucket.

gcs_get_folder

Returns metadata for the specified folder.

gcs_get_object_acl

Returns the ACL entry for the specified entity on the specified object.

gcs_get_transfer_job

Gets a transfer job.

gcs_list_bucket_acls

Retrieves ACL entries on the specified bucket.

gcs_list_default_object_acls

Retrieves default object ACL entries on the specified bucket.

gcs_list_object_acls

Retrieves ACL entries on the specified object.

gcs_list_transfer_jobs

Lists transfer jobs.

gcs_replace_bucket_acl

Updates an ACL entry on the specified bucket.

gcs_replace_default_object_acl

Updates a default object ACL entry on the specified bucket.

gcs_replace_object_acl

Updates an ACL entry on the specified object.

gcs_run_transfer_job

Starts a new operation for the specified transfer job.

gcs_update_bucket_acl

Patches an ACL entry on the specified bucket.

gcs_update_default_object_acl

Patches a default object ACL entry on the specified bucket.

gcs_update_object_acl

Patches an ACL entry on the specified object.

gcs_update_transfer_job

Updates a transfer job.

gcs_cancel_batch_job

Cancels a batch job.

gcs_cancel_transfer_operation

Cancels a transfer.

gcs_create_agent_pool

Creates an agent pool resource.

gcs_create_batch_job

Creates a batch job.

gcs_create_rapid_cache

Creates a Rapid Cache instance.

gcs_create_report_config

Creates a new inventory report configuration in a given project for a given location.

gcs_delete_agent_pool

Deletes an agent pool.

gcs_delete_batch_job

Deletes a batch job.

gcs_delete_report_config

Deletes an existing inventory report configuration in a given project for a given location.

gcs_disable_rapid_cache

Disables a Rapid Cache instance.

gcs_get_agent_pool

Gets an agent pool.

gcs_get_batch_job

Gets a batch job.

gcs_get_rapid_cache

Returns the metadata of a Rapid Cache instance.

gcs_get_report_config

Gets the inventory report configuration in a given project for a given location.

gcs_get_transfer_operation

Gets the latest state of a long-running operation.

gcs_list_agent_pools

Lists agent pools.

gcs_list_batch_jobs

Lists Jobs in a given project.

gcs_list_rapid_caches

Returns a list of Rapid Cache instances of the bucket.

gcs_list_report_configs

Lists the inventory report configurations in a given project for a given location.

gcs_list_transfer_operations

Lists transfer operations.

gcs_pause_transfer_operation

Pauses a transfer operation.

gcs_resume_transfer_operation

Resumes a transfer operation that is paused.

gcs_update_agent_pool

Updates an existing agent pool resource.

gcs_update_rapid_cache

Updates the configuration of a Rapid Cache instance.

gcs_update_report_config

Updates an existing inventory report configuration in a given project for a given location.

gcs_advance_bucket_relocation

Starts asynchronous advancement of the relocate bucket operation in the case of required write downtime, to allow it to lock the bucket at the source location, and proceed with the bucket location swap.

gcs_cancel_batch_long_running_operation

Starts asynchronous cancellation on a long-running operation.

gcs_cancel_bucket_operation

Starts asynchronous cancellation on a long-running operation.

gcs_cancel_insights_operation

Starts asynchronous cancellation on a long-running operation.

gcs_delete_batch_long_running_operation

Deletes a long-running operation.

gcs_delete_hmac_key

Deletes an HMAC key.

gcs_delete_insights_operation

Deletes a long-running operation.

gcs_delete_notification_config

Permanently deletes a notification subscription.

gcs_get_batch_long_running_operation

Gets the latest state of a long-running operation.

gcs_get_hmac_key

Retrieves an HMAC key's metadata

gcs_get_insights_operation

Gets the latest state of a long-running operation.

gcs_get_notification_config

View a notification configuration.

gcs_list_batch_long_running_operations

Lists operations that match the specified filter in the request.

gcs_list_insights_operations

Lists operations that match the specified filter in the request.

gcs_update_hmac_key

Updates the state of an HMAC key.

gcs_get_batch_bucket_operation

Gets a BucketOperation.

gcs_get_batch_location

Gets information about a location.

gcs_get_insights_location

Gets information about a location.

gcs_get_report_detail

Gets an existing inventory report in a given project for a given location.

gcs_list_batch_bucket_operations

Lists BucketOperations in a given project and job.

gcs_list_batch_locations

Lists information about the supported locations for this service.

gcs_list_insights_locations

Lists information about the supported locations for this service.

gcs_list_report_details

Lists the inventory reports in a given project for a given location.

gcs_get_transfer_service_account

Returns the Google service account that is used by Storage Transfer Service to access buckets in the project where transfers run or in other projects.

Connect Google Cloud Storage to Claude, ChatGPT and Claude Code

Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the Google Cloud Storage side.

Make a service account in Google Cloud with a Storage role and copy its JSON key file into the connect form. The project comes from the file and there is no consent screen. If your organization blocks these keys, use your own OAuth client under More options.

Service account key{ "type": "service_account", "project_id": "…", "private_key": "…", … }
OAuth Client ID1234567890-abc.apps.googleusercontent.com
OAuth Client Secret••••••••••••3f7a
Authorize PopMCP on Google Cloud StorageAuthorize

Then just ask for the work

  • “List my buckets and tell me which folder in the main one takes up the most space”

    • list_buckets
    • summarize_bucket
  • “Open reports/2026/q3.csv in the finance bucket and summarize the totals”

    • list_objects
    • read_object
  • “Save this summary as notes/october.md in the team bucket, but don't overwrite anything”

    • upload_object
  • “Find the files deleted from the invoices folder this week and bring them back”

    • list_objects
    • restore_object
  • “Who has access to the client-assets bucket? Give sam@example.com read access too”

    • get_bucket_iam_policy
    • grant_bucket_access

Use Google Cloud Storage from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Google Cloud Storage MCP server questions

What teams ask before putting Google Cloud Storage behind an AI client.

What is the easiest way to connect it?

A service account key. Create a service account in the Google Cloud console, give it a Storage role, download a JSON key and copy the file into the connect form. There is no OAuth client to set up, no consent screen and no 7 day expiry, and the connection reaches only what that role allows. Google blocks these keys by default in organizations created on or after May 3, 2024. If yours does, ask an admin to allow them, or use your own OAuth client under More options.

Can I limit it to one bucket?

Yes, with Google's own permissions. Grant the service account a role on that one bucket from the bucket's Permissions tab rather than on the project, and it reaches nothing else. It cannot list buckets then, so tell the AI the bucket name or set it as the default bucket under More options. The connection's project is only a default for listing and creating buckets, not a lock: any bucket the account can reach works by name.

Can the AI read my files?

Yes. read_object returns text in pieces, so a large log or CSV can be paged through without loading all of it, shows PNG, JPEG, GIF and WebP images, and says plainly when a file is binary, with links to open it. Small binary files can come back as base64 when asked for.

How big a file can it upload?

upload_object takes text, base64 or a public https link, up to 25 MiB. For anything larger, up to Google's 5 TiB limit, start_resumable_upload gives you a URL to send the file to directly, which lasts 7 days. Whoever holds that URL can upload to that one object, so treat it like a password. Uploading replaces a file with the same name unless ifNotExists is set.

Can it make my data public by accident?

PopMCP refuses any change that grants allUsers or allAuthenticatedUsers, or uses a public predefined ACL, until the AI confirms you agreed. It tells you what would become public first. New connections are read-only anyway, and a bucket with public access prevention turned on is refused by Google regardless.

Can it create a link I can send to someone?

On a connection made with a service account key, get_object_links makes a signed link anyone can open until it expires, from a minute up to 7 days. It cannot be taken back early except by deleting the key. On an OAuth connection, Google does not allow signing, so you get console and browser links that open for people signed in with access.

Which actions need more than a Storage role?

Storage Transfer Service, Storage Insights and Storage Batch Operations only accept Google's broad Google Cloud permission. A service account key works as long as it holds the roles those services need. On your own OAuth client, tick Transfers, inventory reports and batch jobs under More options when you connect.

Why can't it create HMAC keys?

Google returns the secret once, in the answer to that call, so it would land in your chat history and outlive the connection. Create HMAC keys in the Google Cloud console. Listing them, switching them off and deleting them all work here.

Do I have to run or host the Google Cloud Storage MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

How do I connect Google Cloud Storage to Claude Code?

Connect Google Cloud Storage in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Google Cloud Storage on the consent screen. The Google Cloud Storage tools are then available in that session, and no Google Cloud Storage credential is stored on your machine.

Why do only 37 of the 144 tools load by default?

Loading 144 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 37-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.

What is the difference between a tool and a trigger?

A tool is something your AI calls, and there are 144 here. A trigger is something PopMCP watches for you: 2 Google Cloud Storage events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Google Cloud Storage.

Connect Google Cloud Storage to your AI in minutes

Launch a hosted MCP endpoint for Google Cloud Storage, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP