{"name":"com.pulsemcp/gcs","slug":"pulsemcp-gcs","title":null,"description":"MCP server for Google Cloud Storage with fine-grained tool access control.","url":"https://mcp.market/server/pulsemcp-gcs","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":33,"stars":80,"forks":10,"downloads_week":null,"last_push_at":"2026-08-30T15:03:34.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/pulsemcp/mcp-servers","website":null,"version":"0.1.14","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"gcs-google-mcp-server","version":"0.1.14","runtimeHint":"npx","transport":{"type":"stdio"},"runtimeArguments":[{"value":"-y","type":"positional"}],"environmentVariables":[{"description":"Google Cloud project ID.","isRequired":true,"name":"GCS_PROJECT_ID"},{"description":"Path to service account key JSON file.","isSecret":true,"name":"GCS_SERVICE_ACCOUNT_KEY_FILE"},{"description":"Service account key JSON contents (inline).","isSecret":true,"name":"GCS_SERVICE_ACCOUNT_KEY_JSON"},{"description":"Constrain all operations to a single bucket (hides bucket-level tools).","name":"GCS_BUCKET"},{"description":"Comma-separated tool groups to enable (readonly, readwrite, delete).","name":"GCS_ENABLED_TOOLGROUPS"},{"description":"Comma-separated list of specific tools to enable (overrides groups).","name":"GCS_ENABLED_TOOLS"},{"description":"Comma-separated list of specific tools to disable.","name":"GCS_DISABLED_TOOLS"},{"description":"Skip health checks on startup.","default":"false","name":"SKIP_HEALTH_CHECKS"}]}],"tools":[{"name":"copy_object","description":"Copy an object within GCS (same bucket or across buckets). Copies an object from one location to another. Can be used to rename objects or move them between buckets. Example response: { \"success\": true, \"message\": \"Object copied from gs://source-bucket/file.txt to gs://dest-bucket/file.txt\", \"etag\": \"\\\"abc123\\\"\", \"generation\": \"1234567890\" } Use cases: - Create backups of files - Move files betwee","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_bucket","description":"Create a new GCS bucket. Creates an empty bucket with the specified name in the given location. Example response: { \"success\": true, \"message\": \"Bucket created: my-new-bucket\", \"bucket\": \"my-new-bucket\" } Bucket naming rules: - Must be globally unique across all Google Cloud projects - 3-63 characters long - Only lowercase letters, numbers, hyphens, underscores, and dots - Must start and end with ","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_bucket","description":"Delete a GCS bucket. Permanently removes the specified bucket. The bucket must be empty before deletion. Example response: { \"success\": true, \"message\": \"Bucket deleted: my-old-bucket\" } Use cases: - Clean up unused buckets - Remove test/temporary buckets - Decommission old storage Note: The bucket must be completely empty (no objects) before it can be deleted.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_object","description":"Delete an object from GCS. Permanently removes the specified object from the bucket. Example response: { \"success\": true, \"message\": \"Object deleted: gs://my-bucket/path/to/file.txt\" } Use cases: - Remove outdated files - Clean up temporary data - Delete processed files - Remove incorrect uploads Note: This operation is irreversible. For versioned buckets, this creates a delete marker.","write_action":true,"price_micros":0,"input_schema":null},{"name":"download_object","description":"Download a single object to a local file path, writing raw bytes (binary-safe). Unlike get_object (which returns content inline as UTF-8 text and is lossy for binary or large files), this tool streams the object to disk and returns the local path. Example response: { \"bucket\": \"my-bucket\", \"key\": \"exports/archive.tar.gz\", \"localPath\": \"/tmp/gcs-download-my-bucket-1700000000000/exports/archive.tar.","write_action":false,"price_micros":0,"input_schema":null},{"name":"download_prefix","description":"Recursively download every object under a prefix to a local directory, preserving the key path structure as subdirectories. Unlike get_object (which returns a single object inline as UTF-8 text), this tool streams raw bytes to disk and is binary-safe. It is the right tool for bulk-fetching a sub-prefix so you can run local data-wrangling over the files. Returns a manifest: { \"destinationDir\": \"/tm","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_object","description":"Get the contents of an object from GCS. Returns the object content as text along with metadata. Example response: { \"content\": \"{\\\"name\\\": \\\"example\\\", \\\"value\\\": 123}\", \"contentType\": \"application/json\", \"contentLength\": 35, \"lastModified\": \"2024-03-01T10:00:00Z\", \"etag\": \"\\\"abc123\\\"\", \"metadata\": {\"custom-key\": \"custom-value\"} } Use cases: - Read configuration files - Retrieve JSON data - Downlo","write_action":false,"price_micros":0,"input_schema":null},{"name":"head_bucket","description":"Check if a GCS bucket exists and is accessible. Returns whether the bucket exists and the caller has permission to access it. Example response: { \"exists\": true, \"bucket\": \"my-bucket\" } Use cases: - Verify bucket exists before operations - Check bucket accessibility - Validate bucket names","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_buckets","description":"List all GCS buckets in the Google Cloud project. Returns a list of bucket names and their creation dates. Example response: { \"buckets\": [ {\"name\": \"my-app-data\", \"creationDate\": \"2024-01-15T10:30:00Z\"}, {\"name\": \"logs-archive\", \"creationDate\": \"2024-02-20T14:45:00Z\"} ] } Use cases: - Discover available buckets in the project - Audit bucket inventory - Find bucket names for subsequent operations","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_objects","description":"List objects in a GCS bucket with optional prefix filtering and pagination. Example response: { \"objects\": [ {\"key\": \"data/file1.json\", \"size\": 1234, \"lastModified\": \"2024-03-01T10:00:00Z\"}, {\"key\": \"data/file2.json\", \"size\": 5678, \"lastModified\": \"2024-03-02T11:00:00Z\"} ], \"commonPrefixes\": [\"data/subdir/\"], \"isTruncated\": false } Use cases: - Browse bucket contents - Find files matching a prefix","write_action":false,"price_micros":0,"input_schema":null},{"name":"put_object","description":"Upload or update an object in GCS. Creates a new object or overwrites an existing one with the provided content. Example response: { \"etag\": \"\\\"abc123def456\\\"\", \"generation\": \"1234567890\" } Use cases: - Store configuration files - Upload JSON data - Create text files - Save generated content Note: This tool handles text content. For binary files, use base64 encoding or a different approach.","write_action":true,"price_micros":0,"input_schema":null},{"name":"put_object_from_path","description":"Upload a single local file to GCS by streaming it directly from disk (binary-safe). Unlike put_object (which takes the object content inline as a string argument — routing every byte through the model context and requiring base64 for binary data), this tool reads from a local filesystem path and streams the bytes to GCS server-side. It is the right tool for uploading images, archives, or any large","write_action":true,"price_micros":0,"input_schema":null},{"name":"upload_prefix","description":"Recursively upload every file under a local directory to GCS, preserving the directory structure as key paths beneath a destination prefix. Unlike put_object (which takes content inline as a string and routes every byte through the model context), this tool streams each file directly from disk to GCS server-side. It is the right tool for bulk-uploading many files or folders — including binary file","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-26T21:23:14.117Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T21:23:14.062Z","components":{"code":{"score":25,"max":25,"notes":["48 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 27 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"gcs-google-mcp-server","version":"0.1.14","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-06-14T17:36:52.418Z"}],"repo":{"found":true,"owner":"pulsemcp","repo":"mcp-servers","archived":false,"pushedAt":"2026-08-30T15:03:34Z","stars":80,"forks":10,"openIssues":44,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/207101391?v=4","ownerCreatedAt":"2025-04-10T20:55:58Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/207101391?v=4&s=128","source":"github"},"presence":{"stars":80,"forks":10,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-08-30T15:03:34.000Z","score":33}}}},"grade_history":[],"reviews":[]}