mcpField
R
remote-filesystem

remote-filesystem

Local
github.com/pulsemcpFiles & Storage81Updated 8w ago

About remote-filesystem

Remote Filesystem is an MCP server for file operations on cloud storage. It currently supports Google Cloud Storage, with S3 and Cloudflare R2 planned. It suits users who need to upload, download and manage files in a bucket from MCP clients.

Key features

  1. 01Upload files with public or private access
  2. 02Download files as text or base64
  3. 03List files and directories by prefix
  4. 04Modify file properties and metadata
  5. 05Toolset groups for read-only or read-write access

Use cases

  1. 01Uploading generated screenshots to GCS and sharing public links
  2. 02Browsing bucket contents in read-only mode

MCP support

This is an MCP server that exposes upload, download, list_files, modify and delete_file tools to MCP clients for managing files in cloud storage.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"com-pulsemcp-remote-filesystem": {
"command": "npx",
"args": [
"-y",
"remote-filesystem-mcp-server"
],
"env": {
"GCS_BUCKET": "<GCS_BUCKET>",
"GCS_PROJECT_ID": "<GCS_PROJECT_ID>",
"GCS_CLIENT_EMAIL": "<GCS_CLIENT_EMAIL>",
"GCS_PRIVATE_KEY": "<GCS_PRIVATE_KEY>",
"GOOGLE_APPLICATION_CREDENTIALS": "<GOOGLE_APPLICATION_CREDENTIALS>",
"GCS_ROOT_PATH": "<GCS_ROOT_PATH>",
"GCS_MAKE_PUBLIC": "<GCS_MAKE_PUBLIC>",
"ENABLED_TOOLGROUPS": "<ENABLED_TOOLGROUPS>"
}
}
}
}
Run commandnpx -y remote-filesystem-mcp-server
Environment variables to set
GCS_BUCKETGoogle Cloud Storage bucket name.
GCS_PROJECT_IDGoogle Cloud project ID.
GCS_CLIENT_EMAILService account email for inline credentials.
GCS_PRIVATE_KEYSecretService account private key for inline credentials.
GOOGLE_APPLICATION_CREDENTIALSSecretPath to Google Cloud service account key file.
GCS_ROOT_PATHRoot path prefix to restrict access within bucket.
GCS_MAKE_PUBLICMake uploaded files publicly accessible.
ENABLED_TOOLGROUPSComma-separated tool groups: readonly or readwrite.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmremote-filesystem-mcp-server0.1.5

Tools

5

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
pathstringYesPath to the file in the remote filesystem (relative to root). Example: "screenshots/pr-123.png"
asBase64booleanNoIf true, return the file contents as a base64-encoded string. Useful for binary files like images. Default: false (returns as text).

Details

From the project README

Remote Filesystem MCP Server

An MCP server for remote filesystem operations on cloud storage providers. Currently supports Google Cloud Storage (GCS), with plans for S3, Cloudflare R2, and more.

Features

  • Upload files to cloud storage with public/private access control
  • Download files as text or base64 (for binary files)
  • List files and directories with prefix filtering
  • Modify file properties (public/private, content type, metadata)
  • Delete files from remote storage
  • Root path constraint to restrict access within bucket
  • Toolset groups for permission-based access control
  • Inline credentials support (no JSON key file needed)
  • Signed URL generation for private files

Installation

npm install remote-filesystem-mcp-server

Or run directly with npx:

npx remote-filesystem-mcp-server

Configuration

Environment Variables
VariableRequiredDescriptionDefault
GCS_BUCKETYesGCS bucket name-
GCS_PROJECT_IDNoGoogle Cloud project IDAuto
GCS_CLIENT_EMAILNo*Service account email (inline creds)-
GCS_PRIVATE_KEYNo*Service account private key (inline)-
GOOGLE_APPLICATION_CREDENTIALSNo*Path to service account key file-
GCS_ROOT_PATHNoRoot path prefix - restricts accessNone
GCS_MAKE_PUBLICNoMake files publicly accessiblefalse
ENABLED_TOOLGROUPSNoTool groups: readonly, readwriteAll

* One authentication method required: inline credentials OR key file OR ADC

Claude Desktop Configuration
{
  "mcpServers": {
    "remote-filesystem": {
      "command": "npx",
      "args": ["-y", "remote-filesystem-mcp-server"],
      "env": {
        "GCS_BUCKET": "your-bucket-name",
        "GCS_CLIENT_EMAIL": "[email protected]",
        "GCS_PRIVATE_KEY": "-----BEGIN PRIVATE KEY-----\n...",
        "GCS_ROOT_PATH": "uploads/"
      }
    }
  }
}

Tools

upload

Upload a file to the remote filesystem.

Parameters:

ParameterTypeRequiredDescription
sourcestringYesFile path (file://...) or base64 data
pathstringNoDestination path (auto-generated if none)
contentTypestringNoMIME type (auto-detected if not provided)
makePublicbooleanNoOverride default public/private setting

Example:

upload({
  source: 'file:///tmp/screenshot.png',
  path: 'screenshots/pr-123.png',
  makePublic: true,
});
download

Download a file from the remote filesystem.

Parameters:

ParameterTypeRequiredDescription
pathstringYesPath to the file
asBase64booleanNoReturn as base64 (for binary data)

Example:

download({
  path: 'screenshots/pr-123.png',
  asBase64: true,
});
list_files

List files and directories in the remote filesystem.

Parameters:

ParameterTypeRequiredDescription
prefixstringNoDirectory prefix to list
maxResultsnumberNoMaximum files to return

Example:

list_files({
  prefix: 'screenshots/',
  maxResults: 100,
});
modify

Modify file properties.

Parameters:

ParameterTypeRequiredDescription
pathstringYesPath to the file
makePublicbooleanNoMake file public
makePrivatebooleanNoMake file private
contentTypestringNoNew MIME type
metadataobjectNoCustom metadata key-value

Example:

modify({
  path: 'reports/doc.pdf',
  makePublic: true,
  metadata: { author: 'claude' },
});
delete_file

Delete a file from the remote filesystem.

Parameters:

ParameterTypeRequiredDescription
pathstringYesPath to the file

Example:

delete_file({
  path: 'temp/old-file.txt',
});

Toolset Groups

The server supports permission-based access control via tool groups:

  • readonly: Only download and list_files tools are available
  • readwrite: All tools are available (includes readonly tools)

Set ENABLED_TOOLGROUPS=readonly to restrict to read-only operations.

Authentication

The server supports multiple authentication methods:

1. Inline Credentials (Recommended)
[email protected]
GCS_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n"
2. Key File
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
3. Application Default Credentials (ADC)
gcloud auth application-default login

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.