MCP-FS is an MCP server that supports managing multiple types of file systems, such as local FS, S3, R2, B2, WebDAV, and others, in one MCP server. It is built on top of OpenDAL.
Project description
MCP-FS Server
An MCP server that provides unified access to multiple file systems simultaneously through OpenDAL.
Installation
pip install mcp-fs
Quick Start
Single Backend
# Local filesystem
mcp-fs "fs://"
# S3
mcp-fs --transport http "s3://bucket?region=us-east-1&access_key_id=xxx&secret_access_key=yyy"
# WebDAV
mcp-fs "webdav://server.com/path?username=user&password=pass"
# Memory (testing)
mcp-fs "memory://"
Multi-Backend with Config File
Create backends.json:
{
"backends": [
{
"name": "local",
"url": "fs://",
"description": "Local filesystem",
"default": true
},
{
"name": "s3-prod",
"url": "s3://bucket?region=us-east-1&access_key_id=...",
"description": "Production S3"
}
]
}
Run with config:
# Stdio (default)
mcp-fs backends.json
# HTTP
mcp-fs --transport http --config backends.json --port 8080
Usage
Command Options
mcp-fs [OPTIONS] [URL_OR_CONFIG]
Options:
--config FILE JSON configuration file
--transport TYPE stdio (default) or http
--port PORT HTTP port (default: 8000)
--host HOST HTTP host (default: localhost)
Available Tools
File Operations:
list_files(path, backend=None)- List files and directoriesread_file(path, backend=None)- Read file contentswrite_file(path, content, backend=None)- Write to filecopy_file(src, dst, src_backend=None, dst_backend=None)- Copy filesrename_file(src, dst, backend=None)- Rename/move filescreate_dir(path, backend=None)- Create directorystat_file(path, backend=None)- Get file metadata
Backend Management:
register_backend(name, url, ...)- Add new backendlist_backends()- Show all backendsset_default_backend(name)- Set default backendremove_backend(name)- Remove backendcheck_backend_health(backend=None)- Check connectivity
Supported Backends
| Type | URL Example |
|---|---|
| Local | fs:// |
| S3 | s3://bucket?region=us-east-1&access_key_id=... |
| WebDAV | webdav://server.com/path?username=user&password=pass |
| Memory | memory:// |
| FTP | ftp://server.com?username=user&password=pass |
| HTTP | https://api.example.com |
Examples
Cross-Backend Copy
# Backup to S3
copy_file("/local/file.txt", "/backup/file.txt",
src_backend="local", dst_backend="s3-backup")
Runtime Backend Management
# Add temporary backend
register_backend("temp", "memory://", description="Temp storage")
# Use it
write_file("/test.txt", "content", backend="temp")
Development
Development Mode (with uv)
Using uv is recommended for development as it provides fast dependency management and isolated environments:
# Clone the repository
git clone https://github.com/vaayne/cc-plugins
cd cc-plugins/mcps/mcp-fs
# Install dependencies and create virtual environment
uv sync
# Run in development mode (uses local source code)
uv run mcp-fs "memory://"
# Run with config file
uv run mcp-fs examples/demo_config.json
# Run with HTTP transport
uv run mcp-fs --transport http "memory://"
# Run tests
uv run pytest
# Format and lint code
uv run ruff format src/
uv run ruff check src/
# Type checking
uv run mypy src/
Production Mode (with uv)
For production deployments using uv:
# Install from PyPI
uv pip install mcp-fs
# Or install from source
uv pip install .
# Build package
uv build
# Run the installed package
mcp-fs "fs://"
mcp-fs --transport http --config production.json --port 8080
Traditional Installation (pip)
# Install from PyPI
pip install mcp-fs
# Or install from source
git clone https://github.com/vaayne/cc-plugins
cd cc-plugins/mcps/mcp-fs
pip install .
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_fs-0.1.8.tar.gz.
File metadata
- Download URL: mcp_fs-0.1.8.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e55dbe5861e1a7aa98ce74dfd1a286ea95eb1966512eff18f304cd963a359ede
|
|
| MD5 |
4571dcb7813615d2c076ca5db50ec2cd
|
|
| BLAKE2b-256 |
3b4d301f0ca6d7b3840949d1e95af08f4baca6f45d21711778d8c19b7c118b51
|
File details
Details for the file mcp_fs-0.1.8-py3-none-any.whl.
File metadata
- Download URL: mcp_fs-0.1.8-py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00f1ef9b20be367211a3b1b2793cd95c804ae93ebf616814aaadd640dff9504b
|
|
| MD5 |
954a4df46b65c9db6f3311f8eec87684
|
|
| BLAKE2b-256 |
7b9463a82e83cdcda753ed5ec84f2fc4ee32ff414e461985005098fe77c8aadc
|