omni-fs-mcp

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 directories
  • read_file(path, backend=None) - Read file contents
  • write_file(path, content, backend=None) - Write to file
  • copy_file(src, dst, src_backend=None, dst_backend=None) - Copy files
  • rename_file(src, dst, backend=None) - Rename/move files
  • create_dir(path, backend=None) - Create directory
  • stat_file(path, backend=None) - Get file metadata

Backend Management:

  • register_backend(name, url, ...) - Add new backend
  • list_backends() - Show all backends
  • set_default_backend(name) - Set default backend
  • remove_backend(name) - Remove backend
  • check_backend_health(backend=None) - Check connectivity

Supported Backends

TypeURL Example
Localfs://
S3s3://bucket?region=us-east-1&access_key_id=...
WebDAVwebdav://server.com/path?username=user&password=pass
Memorymemory://
FTPftp://server.com?username=user&password=pass
HTTPhttps://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