Omni-FS-MCP 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
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
Project details
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 omni_fs_mcp-0.1.8.tar.gz.
File metadata
- Download URL: omni_fs_mcp-0.1.8.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d22261667b7c5647039f7ab2636b3ffd79cdef1620104377239be18725f5be9d
|
|
| MD5 |
ed1f6be061c354db6c5e459bf1cf7bcd
|
|
| BLAKE2b-256 |
0c1368e5183834998de543aff8921befd334e3757132e974f11933f5e450fefd
|
Provenance
The following attestation bundles were made for omni_fs_mcp-0.1.8.tar.gz:
Publisher:
release.yml on vaayne/omni-fs-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omni_fs_mcp-0.1.8.tar.gz -
Subject digest:
d22261667b7c5647039f7ab2636b3ffd79cdef1620104377239be18725f5be9d - Sigstore transparency entry: 569013975
- Sigstore integration time:
-
Permalink:
vaayne/omni-fs-mcp@7c0ae38617d43595b022c19ca6bb209012b05e1b -
Branch / Tag:
refs/heads/main - Owner: https://github.com/vaayne
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7c0ae38617d43595b022c19ca6bb209012b05e1b -
Trigger Event:
push
-
Statement type:
File details
Details for the file omni_fs_mcp-0.1.8-py3-none-any.whl.
File metadata
- Download URL: omni_fs_mcp-0.1.8-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db605d464add0c67f35d53072b06ee1fe7c0e8fcf13667d353bb30ed81d2dea6
|
|
| MD5 |
4fc45d7a9423cdadb1bb2b18fd700947
|
|
| BLAKE2b-256 |
fecc4f0deda0f4ec57f978a41f3d93d70c2feb72f6e485da31225d973d1691b5
|
Provenance
The following attestation bundles were made for omni_fs_mcp-0.1.8-py3-none-any.whl:
Publisher:
release.yml on vaayne/omni-fs-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omni_fs_mcp-0.1.8-py3-none-any.whl -
Subject digest:
db605d464add0c67f35d53072b06ee1fe7c0e8fcf13667d353bb30ed81d2dea6 - Sigstore transparency entry: 569014025
- Sigstore integration time:
-
Permalink:
vaayne/omni-fs-mcp@7c0ae38617d43595b022c19ca6bb209012b05e1b -
Branch / Tag:
refs/heads/main - Owner: https://github.com/vaayne
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7c0ae38617d43595b022c19ca6bb209012b05e1b -
Trigger Event:
push
-
Statement type: