vaayne/omni-fs-mcp
3.2
If you are the rightful owner of omni-fs-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
Omni-FS-MCP is a versatile MCP server that integrates multiple file systems into a single platform, offering seamless management and operations across various storage backends.
Tools
5
Resources
0
Prompts
0
Omni-FS MCP Server
An MCP server that provides unified access to multiple file systems simultaneously through OpenDAL.
Installation
pip install omni-fs-mcp
Quick Start
Single Backend
# Local filesystem
omni-fs-mcp "fs://"
# S3
omni-fs-mcp --transport http "s3://bucket?region=us-east-1&access_key_id=xxx&secret_access_key=yyy"
# WebDAV
omni-fs-mcp "webdav://server.com/path?username=user&password=pass"
# Memory (testing)
omni-fs-mcp "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)
omni-fs-mcp backends.json
# HTTP
omni-fs-mcp --transport http --config backends.json --port 8080
Usage
Command Options
omni-fs-mcp [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
git clone <repo>
cd omni-fs-mcp
uv sync
# Run locally
uv run omni-fs-mcp "memory://"
License
MIT