
Mcp Server Cloud Fs
io.github.nogoo9由 GitHub 账号 nogoo9 发布v0.7.0更新于 Oct 25, 2026
Cloud replacement for mcp-server-filesystem — 20 tools for S3, Azure Blob, and GCS
概览
一个本地 MCP 服务器,让 AI 助手通过 S3、Azure Blob、Google Cloud Storage 等云对象存储使用文件工具。
- 可以做什么
- 读取文件、文本、媒体以及按字节或行范围读取,列出目录或递归目录树(含大小和 glob 排除),路径均为配置根目录下的云 URI。写入、编辑和打补丁文件,创建目录,复制或移动对象,并可选删除。按 glob 搜索对象键,对单个或多个文件做正则 grep,并按标签筛选对象。查看元数据、标签、版本历史和预签名 URL,并恢复旧版本。从 CSV、JSON 和文本文件提取结构或摘要以节省上下文。启用 shell 工具后可对存储执行 ls、cat、grep、jq 及管道等类 POSIX 命令。
- 适用场景
- 适合希望助手直接操作 S3、Azure Blob、GCS 或兼容 S3 存储中的文件而非本地磁盘的场景,例如检查数据文件、应用修改或在桶内搜索。对于已按标准文件系统服务器配置的客户端,可直接替换使用。
- 运行要求
- 以本地进程方式通过 npx 或 bunx 运行,参数为提供方和根 URI(例如 s3 和桶 URI)。云凭据来自各提供方的标准链:AWS_ACCESS_KEY_ID 与 AWS_SECRET_ACCESS_KEY 或 AWS 凭据文件,AZURE_STORAGE_CONNECTION_STRING 或 Azure 默认凭据,以及 Google 应用默认凭据配合 GOOGLE_CLOUD_PROJECT。可选 REDIS_URL 用于 Redis 缓存。需要访问存储后端的网络;内存演示模式无需凭据。
安装
在 SourceWeft 中
- 打开 控制台中的 Mcp Server Cloud Fs,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
@nogoo9/mcp-server-cloud-fs
[CI]
[Docs]
[Coverage]
[Semgrep]
[npm]
[NPM Downloads]
[skills.sh]
[License]
Cloud replacement for mcp-server-filesystem — 30 tools for S3, Azure Blob, and GCS.
Deploy locally via STDIO or remotely over HTTP/WebSocket with OAuth 2.1 auth.
Also available as an npm library and interactive TUI.
📖 Read the full documentation →
Providers: Amazon S3 · Azure Blob Storage · Google Cloud Storage · MinIO · RustFS · Cloudflare R2 · Backblaze B2 · Wasabi · LocalStack · SQLite · In-Memory
Table of Contents
- What it does
- Quick start
- Interactive Shell
- Transports
- Authentication & Authorization
- Production Features
- CLI Reference
- Provider Setup
- MCP Client Config
- Tool Reference
- Architecture: VFS
- Caching
- Programmatic Usage
- MCP Inspector
- Development & Testing
- AI Agent Skill
- Documentation
- License
What it does
@nogoo9/mcp-server-cloud-fs exposes all 14 tools defined by mcp-server-filesystem — same tool names, same parameter schemas — over cloud object storage. Drop it into any MCP client config that currently points at mcp-server-filesystem and your AI assistant gains read/write access to S3, Azure Blob Storage, or Google Cloud Storage buckets.
It also includes 5 extended tools inspired by claude-code's filesystem tool surface: line-range reads, byte-range chunk reads, in-process regex search (single file and multi-file), server-side copy, and opt-in deletion. Plus 6 cloud-native tools (presigned URLs, object metadata/tags, tag-based search, version history, version restore), 2 AI-native tools (schema extraction, file summarization), and 1 macro tool (patch_file for atomic diffs).
A Virtual Filesystem (VFS) layer provides FUSE-like cache coherence with ETag-based concurrency control, a shell tool lets you run POSIX-like commands (ls, grep, jq, cat | wc, etc.) against cloud storage, and the package is available as a programmatic npm library.
v0.7.0 Highlights
- Dynamic tool surface reduction: scope-aware tool filtering — clients only see tools they're authorized to use
- DLP content sanitization: regex-based middleware redacts PII, API keys, and credentials from tool responses (
--enable-dlp) - AI-native tools:
get_file_schemaextracts CSV/JSON structure;summarize_filereturns compact head/tail previews - ETag concurrency control: SHA-256 content-addressable ETags with
expected_etagconflict detection onedit_fileandpatch_file patch_filemacro tool: atomic read-diff-write in a single tool call — supports unified diffs and line-range replacements
v0.6.0 Highlights
- Cloud-native tools: presigned URLs, object metadata/tags, version history, version restore
- Byte-range reads:
read_file_chunkfetches specific byte ranges without downloading the full object - Structured audit logging: tool invocation audit trail with pluggable sinks (stderr, file)
- Multi-provider routing:
MultiProviderserves S3 + Azure + GCS from a single server instance - Azure Managed Identity:
DefaultAzureCredentialfor OIDC and federated auth - Connection health-check: startup credential validation with diagnostic reporting
- MCP Resources: browse cloud storage as native MCP Resources (no tool calls needed)
- Structured errors:
CloudErrorwith typed codes and provider-specific error mappers
v0.5.0 Highlights
- Interactive TUI (
cloud-fs): Terminal shell withcd, tab completion, and command history - Multi-transport: STDIO (default), Streamable HTTP, and WebSocket
- Dual runtime: Bun-native and Node.js support (HTTP transport + SQLite provider)
- OAuth 2.1: Built-in auth server or external IdP token validation
- ext-auth extensions: Client Credentials (M2M) and Enterprise-Managed Authorization (SSO)
- Production hardening: Rate limiting, CORS, security headers, health checks, structured logging
- AI agent skill: Installable
skills/cloud-fsfor Claude Code, Gemini CLI, and other AI assistants
Quick start
Local (STDIO — default)
Remote (HTTP)
Remote (WebSocket — Bun only)
Demo (no cloud credentials needed)
Interactive Shell (cloud-fs)
[cloud-fs interactive shell demo]
Drop into an interactive terminal for exploring and managing cloud storage — no MCP client needed:
Features
cdnavigation —cd data,cd ..,cd /with dynamic prompt showing current directory- Tab completion — context-aware path and command completion
- Command history — persistent across sessions (
~/.cloud-fs_history) - Relative paths — all commands resolve relative to
cwd, just like a real shell - 19 built-in commands —
ls,cat,head,tail,cp,mv,rm,mkdir,touch,stat,find,grep,wc,du,echo,tee,diff,jq,cd - Pipes & redirects —
cat config.json | jq '.database',echo hello > file.txt
Local development
Transports
The server supports three MCP transports, selected via --transport:
Streamable HTTP
Implements the MCP Streamable HTTP specification with a single /mcp endpoint for POST (requests), GET (SSE notifications), and DELETE (session termination).
Dual runtime support:
- Bun: Uses
WebStandardStreamableHTTPServerTransportwithBun.serve()directly — zero Express dependency, maximum performance. - Node.js: Falls back to
StreamableHTTPServerTransportwith Express. Requiresexpressas an optional peer dependency (npm install express).
Runtime is auto-detected at startup.
Session management:
Sessions use UUID v7 (RFC 9562) — time-ordered and K-sortable, making them ideal for logging, debugging, and database indexing. Sessions are tracked via the Mcp-Session-Id header.
Resumability:
When an EventStore is configured, clients can reconnect and resume receiving messages from where they left off via the Last-Event-ID SSE header.
WebSocket
Bun-native WebSocket transport using Bun.serve() with WebSocket upgrade handling. Provides lower latency than HTTP for high-frequency tool invocations.
- JSON-RPC message framing over WebSocket
- UUID v7 session assigned on upgrade
- WS ping/pong heartbeat for connection liveness
Authentication & Authorization
Authentication is disabled by default and only applies to HTTP/WS transports. STDIO mode never requires auth.
Auth modes
Built-in OAuth server (--auth builtin)
The server runs a full OAuth 2.1 Authorization Server using the MCP SDK's mcpAuthRouter():
- Authorization Code + PKCE (mandatory) — interactive user consent flow
- Dynamic Client Registration — MCP clients auto-register on first connect
- Refresh token rotation — single-use refresh tokens prevent replay
- Metadata discovery —
/.well-known/oauth-authorization-server(RFC 8414) and/.well-known/oauth-protected-resource(RFC 9728)
External IdP (--auth external)
The server only validates bearer tokens — it does not issue tokens. Use this when you have an existing identity provider.
- JWKS validation — fetches and caches signing keys from your IdP
- JWT verification — checks signature, issuer, audience, expiry
- Token introspection — fallback for opaque tokens
ext-auth: Client Credentials (M2M)
Implements the MCP Client Credentials extension for machine-to-machine authentication without user interaction. Designed for CI/CD pipelines, background services, and automated workflows.
- JWT assertion auth (
private_key_jwtper RFC 7523) — recommended - Client secret auth (
client_secret_basic) — simpler but less secure - No user interaction required — tokens granted based on pre-registered client credentials
ext-auth: Enterprise-Managed Authorization (SSO)
Implements the MCP Enterprise-Managed Authorization extension for seamless SSO via your organization's Identity Provider.
How it works:
- User logs in to the MCP Client via the enterprise IdP (OpenID Connect or SAML)
- Client exchanges the ID Token for an Identity Assertion JWT Authorization Grant (ID-JAG) via Token Exchange (RFC 8693)
- Client presents the ID-JAG to this server's Authorization Server (RFC 7523)
- Server validates the ID-JAG and issues an access token
Benefits:
- Zero manual authorization per MCP Server — SSO handles everything
- Enterprise admins control which users/groups can access which MCP servers
- Granular scope enforcement via IdP policies
OAuth Scopes
When auth is enabled, tool access is controlled by granular scopes:
When grantedScopes is set (via OAuth tokens), tools outside the granted scopes are not registered — they don't appear in tools/list at all, reducing LLM prompt token waste and preventing tool hallucination.
Tokens with insufficient scopes receive a clear error response indicating which scope is required.
Production Features
Health Checks
HTTP/WS transports expose Kubernetes-convention health endpoints:
Configure your orchestrator's liveness and readiness probes to use these endpoints.
Rate Limiting
Token bucket rate limiting protects against abuse. Disabled by default.
- In-memory — per-IP/per-client counters for single-process deployments
- Redis — distributed rate limiting for multi-instance deployments (uses existing optional
ioredispeer dep) - Returns
429 Too Many RequestswithRetry-Afterheader when limits are exceeded
CORS
Cross-Origin Resource Sharing for browser-based MCP clients:
- Strict origin allowlist — no wildcards in production
- Exposes
Mcp-Session-IdandMcp-Protocol-Versionheaders - Localhost auto-allows
*when--host 127.0.0.1(dev convenience)
Structured Request Logging
JSON audit trail to stderr for compliance and debugging:
Enable with --request-logging.
DNS Rebinding Protection
Automatically applied when binding to localhost addresses. Validates the Host header against allowed hostnames to prevent DNS rebinding attacks.
Security Headers
Opt-in HTTP response hardening via nosecone — a framework-agnostic security headers library. Works with both Bun-native and Node/Express transports.
When enabled, every HTTP response includes standard security headers:
Content-Security-PolicyStrict-Transport-SecurityX-Content-Type-Options: nosniffX-Frame-OptionsCross-Origin-Opener-PolicyCross-Origin-Resource-PolicyReferrer-Policy- And more (see nosecone defaults)
Note: Requires the
noseconepeer dependency:npm install nosecone
CLI Reference
Providers
Options
Transport & Network
Authentication
Production
Storage & Cache
Tools
Credentials are always sourced from SDK credential chains — never CLI flags.
Provider Setup
AWS S3
Credentials are read from the standard AWS credential chain: AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY env vars, ~/.aws/credentials, EC2 instance profiles, and so on.
S3-compatible storage
Any S3-compatible backend works via --endpoint. All use the standard AWS credential chain (AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY).
TLS with private CA: For MinIO, RustFS, or Ceph with a self-signed certificate, add
--ca-file /path/to/ca.pem.
Azure Blob Storage
Uses DefaultAzureCredential — works with AZURE_TENANT_ID / AZURE_CLIENT_ID / AZURE_CLIENT_SECRET env vars, managed identity, az login, and so on.
Google Cloud Storage
Uses Application Default Credentials (ADC). Set GOOGLE_APPLICATION_CREDENTIALS or run gcloud auth application-default login.
In-Memory (ephemeral)
Zero-config, zero-dependency provider. All data lives in a Map and is lost when the process exits.
SQLite (persistent local)
Persistent local storage using WAL mode. Dual-runtime: uses bun:sqlite on Bun, better-sqlite3 on Node.js (install as peer dep: npm install better-sqlite3).
MCP Client Config
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Claude Code
.mcp.json in your project root:
Remote HTTP client
Tool Reference
All paths are cloud URIs — e.g. s3://my-bucket/path/to/file.txt. The server validates every path against the configured root URIs at startup; requests outside allowed roots are rejected.
Read tools
Write tools
Directory tools
Move, Copy & Delete tools
Search tools
Info tools
✨ = Extended tool
Cloud-native tools ☁️
☁️ = Cloud-native tool (requires provider support)
AI-native tools 🧠
🧠 = AI-native tool (reduces LLM context token waste)
Macro tools 🩹
🩹 = Macro tool (combines read + transform + write)
Shell tool ⚡
Built-in commands: ls, cat, head, tail, cp, mv, rm, mkdir, touch, stat, find, grep, wc, du, echo, tee, diff, jq, cd
Relative paths
All shell commands (and all other tools) support relative paths — you don't need to type the full URI every time. Paths without a scheme prefix (s3://, mem://, etc.) are resolved relative to the first configured root:
Standard . and .. are normalized, with .. traversal blocked at the root boundary for security.
Examples
⚡ Requires
--enable-shell.rmandmvadditionally require--enable-delete.
Architecture: Virtual Filesystem (VFS)
All tool operations are mediated through a Virtual Filesystem (VFS) layer inspired by FUSE.
VFS metadata is persisted to the CacheStore under __vfs__/* keys. On startup, VirtualFS.hydrate() restores state; corrupted data is silently discarded.
Caching
Writes land in cache immediately (marked dirty), flushed after debounce window (default: 2s). Graceful shutdown flushes all dirty entries before exit. Pass-through mode (--no-cache) sends every operation directly to the provider.
⚠️ Redis TLS: The server warns at startup when
REDIS_URLuses unencryptedredis://. Userediss://for TLS-encrypted connections in production.
Custom CA Certificates
Use --ca-file <path> to supply a PEM CA bundle for S3-compatible endpoints (MinIO, RustFS) and Redis running with a private CA:
For runtime-wide CA trust (all providers + Redis), use the standard NODE_EXTRA_CA_CERTS env var instead:
Programmatic Usage (npm library)
Exported API
MCP Inspector
MCP App: Interactive Shell (xterm.js)
Build the app: bun run build:app → outputs dist/app/shell-app.html.
Catppuccin Mocha theme, command history, auto-resize. Renders inside compatible MCP hosts (Claude Desktop) via the MCP Apps extension.
Development & Testing
See CONTRIBUTING.md for full setup instructions.
AI agent skills are installed separately after cloning via bun x skills add semgrep/skills — see CONTRIBUTING.md for details.
Test tiers
CI pipeline
The CI workflow runs on every push/PR:
- ci job: lint → typecheck → unit tests (with coverage) → HTTP E2E → build
- e2e job: full E2E with Docker Compose (MinIO, Redis)
HTTP E2E tests use the in-memory provider and need zero infrastructure, making them fast and reliable for every CI run.
AI Agent Skill
The skills/cloud-fs directory contains an installable AI agent skill that teaches coding assistants (Claude Code, Gemini CLI, etc.) how to use cloud-fs as a POSIX-like virtual filesystem. Install it to give your assistant fluency with cloud storage commands.
What it provides
- MCP mode auto-detection — recognizes
mcp__cloud-fs__*tools and maps user intents to the right tool calls - Bootstrap flow — walks the user through first-time setup when the MCP server isn't configured yet
- POSIX-to-MCP mapping — translates shell commands (
ls,cat,grep,find,cp, etc.) into the correct MCP tool calls - Provider credential reference — AWS, Azure, GCS, MinIO/RustFS, SQLite setup guidance
.mcp.jsonpersistence — offers to save provider configuration so future sessions are pre-wired
Installation
See CONTRIBUTING.md for details on the skill system.
Documentation
Full documentation is available at nogoo9.github.io/mcp-server-cloud-fs.
- 📖 Versioned docs for each release (v0.4.0+)
- 🔄 PR preview docs for open pull requests
- 🔍 Full-text search, dark mode, responsive design
- Built with VitePress
To run the documentation site locally:
License
PolyForm Shield 1.0.0. Free for any non-competitive use.
Built with [Claude] [Gemini] [Antigravity]
来源:README.md,提交 c3260f3
工具
0版本历史
1- v0.7.0最新Sep 16, 2026
评分
已满足适用检查项的 40%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
请在仓库或注册中心条目中声明许可证。