Skip to main content

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 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

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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_fs-0.1.8-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

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

Hashes for mcp_fs-0.1.8.tar.gz
Algorithm Hash digest
SHA256 e55dbe5861e1a7aa98ce74dfd1a286ea95eb1966512eff18f304cd963a359ede
MD5 4571dcb7813615d2c076ca5db50ec2cd
BLAKE2b-256 3b4d301f0ca6d7b3840949d1e95af08f4baca6f45d21711778d8c19b7c118b51

See more details on using hashes here.

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

Hashes for mcp_fs-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 00f1ef9b20be367211a3b1b2793cd95c804ae93ebf616814aaadd640dff9504b
MD5 954a4df46b65c9db6f3311f8eec87684
BLAKE2b-256 7b9463a82e83cdcda753ed5ec84f2fc4ee32ff414e461985005098fe77c8aadc

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.8 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page