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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mcp_fs-0.1.8.tar.gz
(11.1 kB
view details)
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
mcp_fs-0.1.8-py3-none-any.whl
(12.6 kB
view details)
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
|