# gcs

Google Cloud Storage integration for bucket and object tasks. Moves files directly between disk and cloud buckets without cluttering prompt context.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 81
- Author: pulsemcp
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/pulsemcp/mcp-servers/tree/HEAD/experimental/gcs
- Updated: 2026-10-09
- HTML: https://affpapa.org/en/nevibecode/mcp/gcs

## What it does

This server connects AI assistants directly to Google Cloud Storage. It handles inspecting buckets, reading text contents, transferring objects, and removing stale data. Tool availability is partitioned into `readonly`, `readwrite`, and `delete` permission sets, controlled via the `GCS_ENABLED_TOOLGROUPS` environment setting.

While simple inspection tools return inline strings, disk-oriented handlers stream raw bytes straight to local storage. Running `download_prefix` or `put_object_from_path` processes nested directory structures and binary files without forcing payloads through the LLM context window.

Setting `GCS_BUCKET` confines all file operations to a single bucket, while missing Google Cloud service account credentials will stop the server from launching.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `GCS_PROJECT_ID`, `GCS_SERVICE_ACCOUNT_KEY_FILE`, `GCS_SERVICE_ACCOUNT_KEY_JSON`, `GCS_BUCKET`, `GCS_ENABLED_TOOLGROUPS`, `GCS_ENABLED_TOOLS`, `GCS_DISABLED_TOOLS`, `SKIP_HEALTH_CHECKS` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env GCS_PROJECT_ID=<GCS_PROJECT_ID> --env GCS_SERVICE_ACCOUNT_KEY_FILE=<GCS_SERVICE_ACCOUNT_KEY_FILE> --env GCS_SERVICE_ACCOUNT_KEY_JSON=<GCS_SERVICE_ACCOUNT_KEY_JSON> --env GCS_BUCKET=<GCS_BUCKET> --env GCS_ENABLED_TOOLGROUPS=<GCS_ENABLED_TOOLGROUPS> --transport stdio gcs -- npx -y gcs-google-mcp-server
```
Replace <…> with your own values. 3 more environment variables are in the server README

### Codex

**Platform CLI**
```bash
codex mcp add gcs --env GCS_PROJECT_ID=<GCS_PROJECT_ID> --env GCS_SERVICE_ACCOUNT_KEY_FILE=<GCS_SERVICE_ACCOUNT_KEY_FILE> --env GCS_SERVICE_ACCOUNT_KEY_JSON=<GCS_SERVICE_ACCOUNT_KEY_JSON> --env GCS_BUCKET=<GCS_BUCKET> --env GCS_ENABLED_TOOLGROUPS=<GCS_ENABLED_TOOLGROUPS> -- npx -y gcs-google-mcp-server
```
Replace <…> with your own values. 3 more environment variables are in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "gcs": {
            "command": "npx",
            "args": [
                "-y",
                "gcs-google-mcp-server"
            ],
            "env": {
                "GCS_PROJECT_ID": "<GCS_PROJECT_ID>",
                "GCS_SERVICE_ACCOUNT_KEY_FILE": "<GCS_SERVICE_ACCOUNT_KEY_FILE>",
                "GCS_SERVICE_ACCOUNT_KEY_JSON": "<GCS_SERVICE_ACCOUNT_KEY_JSON>",
                "GCS_BUCKET": "<GCS_BUCKET>",
                "GCS_ENABLED_TOOLGROUPS": "<GCS_ENABLED_TOOLGROUPS>"
            }
        }
    }
}
```
Replace <…> with your own values. 3 more environment variables are in the server README

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "gcs": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "gcs-google-mcp-server"
            ],
            "env": {
                "GCS_PROJECT_ID": "<GCS_PROJECT_ID>",
                "GCS_SERVICE_ACCOUNT_KEY_FILE": "<GCS_SERVICE_ACCOUNT_KEY_FILE>",
                "GCS_SERVICE_ACCOUNT_KEY_JSON": "<GCS_SERVICE_ACCOUNT_KEY_JSON>",
                "GCS_BUCKET": "<GCS_BUCKET>",
                "GCS_ENABLED_TOOLGROUPS": "<GCS_ENABLED_TOOLGROUPS>"
            }
        }
    }
}
```
Replace <…> with your own values. 3 more environment variables are in the server README

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e GCS_PROJECT_ID=<GCS_PROJECT_ID> -e GCS_SERVICE_ACCOUNT_KEY_FILE=<GCS_SERVICE_ACCOUNT_KEY_FILE> -e GCS_SERVICE_ACCOUNT_KEY_JSON=<GCS_SERVICE_ACCOUNT_KEY_JSON> -e GCS_BUCKET=<GCS_BUCKET> -e GCS_ENABLED_TOOLGROUPS=<GCS_ENABLED_TOOLGROUPS> gcs npx -y gcs-google-mcp-server
```
Replace <…> with your own values. 3 more environment variables are in the server README

## When to use it
- stream binary files to Google Cloud Storage without token overhead
- mirror remote storage prefixes directly to local folders
- restrict agent capabilities to read-only bucket interactions
- transfer objects between Google Cloud buckets

## Example prompts
- List all storage buckets accessible in the current Google Cloud project.
- Upload the local archive `dataset.zip` into the bucket `backups` via streaming.
- Download every object under the prefix `exports/2024/` straight to local disk.

## Similar
- [google-cloud-storage-basics](https://affpapa.org/en/nevibecode/skills/google-cloud-storage-basics.md) — skill · 5516 installs
- [google-cloud-storage-fuse](https://affpapa.org/en/nevibecode/skills/google-cloud-storage-fuse.md) — skill · 3900 installs
- [c-files](https://affpapa.org/en/nevibecode/skills/c-files.md) — skill · ★ 173
- [backup-recovery](https://affpapa.org/en/nevibecode/skills/backup-recovery.md) — skill · 406 installs
- [gcp-expert](https://affpapa.org/en/nevibecode/skills/gcp-expert.md) — skill · 547 installs
- [mcp-neo4j-aura-manager](https://affpapa.org/en/nevibecode/mcp/mcp-neo4j-aura-manager.md) — MCP server · ★ 989

From the same set: [pulsemcp/mcp-servers](https://affpapa.org/en/nevibecode/by/pulsemcp/mcp-servers.md) — 28 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
