# rclone

Hooks an AI assistant up to a running rclone RC daemon so it can list remotes, copy and sync files, and browse directories. Handy when storage work should happen through chat instead of typed commands.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 13
- Author: rclone-ui
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/rclone-ui/rclone-mcp
- Updated: 2026-02-08
- HTML: https://affpapa.org/en/nevibecode/mcp/rclone

## What it does

The server sits on top of the rclone RC API. Its 98 endpoints come from the rclone-openapi spec through the rclone-sdk client, grouped into toolsets by path prefix: `core`, `config`, `operations`, `sync`, `jobs`, `mount`, `serve` and more. You pick which groups to expose, which keeps the tool list an agent sees reasonably small. Nothing runs until the daemon is up — start it with `rclone rcd --rc-no-auth`, or add `--rc-user` and `--rc-pass` if you want auth.

Point it at the daemon with `RCLONE_URL` (falls back to `http://localhost:5572`) and supply credentials through `RCLONE_USER` and `RCLONE_PASS`. `RCLONE_TOOLSETS` takes a list, plus the shortcuts `default` for core, config, operations and sync, and `all` for everything. Setting `--read-only` or `RCLONE_READ_ONLY=1` registers only tools that leave data alone. Copy, move, delete, sync and mount disappear from the list, so that flag is what you want if an agent touches a live remote.

stdio fits Cursor, Claude and Claude Desktop; for remote hosting there is Streamable HTTP via `rclone-mcp http --port 3000`. Running the daemon without auth means anyone who can reach port 5572 controls your remotes, so bind it carefully.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `RCLONE_URL`, `RCLONE_USER`, `RCLONE_PASS`, `RCLONE_TOOLSETS`, `RCLONE_READ_ONLY` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env RCLONE_URL=<RCLONE_URL> --env RCLONE_USER=<RCLONE_USER> --env RCLONE_PASS=<RCLONE_PASS> --env RCLONE_TOOLSETS=<RCLONE_TOOLSETS> --env RCLONE_READ_ONLY=<RCLONE_READ_ONLY> --transport stdio rclone -- npx -y rclone-mcp
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add rclone --env RCLONE_URL=<RCLONE_URL> --env RCLONE_USER=<RCLONE_USER> --env RCLONE_PASS=<RCLONE_PASS> --env RCLONE_TOOLSETS=<RCLONE_TOOLSETS> --env RCLONE_READ_ONLY=<RCLONE_READ_ONLY> -- npx -y rclone-mcp
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "rclone": {
            "command": "npx",
            "args": [
                "-y",
                "rclone-mcp"
            ],
            "env": {
                "RCLONE_URL": "<RCLONE_URL>",
                "RCLONE_USER": "<RCLONE_USER>",
                "RCLONE_PASS": "<RCLONE_PASS>",
                "RCLONE_TOOLSETS": "<RCLONE_TOOLSETS>",
                "RCLONE_READ_ONLY": "<RCLONE_READ_ONLY>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "rclone": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "rclone-mcp"
            ],
            "env": {
                "RCLONE_URL": "<RCLONE_URL>",
                "RCLONE_USER": "<RCLONE_USER>",
                "RCLONE_PASS": "<RCLONE_PASS>",
                "RCLONE_TOOLSETS": "<RCLONE_TOOLSETS>",
                "RCLONE_READ_ONLY": "<RCLONE_READ_ONLY>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e RCLONE_URL=<RCLONE_URL> -e RCLONE_USER=<RCLONE_USER> -e RCLONE_PASS=<RCLONE_PASS> -e RCLONE_TOOLSETS=<RCLONE_TOOLSETS> -e RCLONE_READ_ONLY=<RCLONE_READ_ONLY> rclone npx -y rclone-mcp
```
Replace <…> with your own values

## When to use it
- see which remotes are configured and how they are set up
- copy a folder from one cloud remote to another
- sync a local directory to remote storage from chat
- list a bucket's contents and its directory tree
- let an agent browse storage without delete rights

## Example prompts
- List the rclone remotes and tell me which ones are currently mounted
- Copy the `photos` folder from the `gdrive` remote into `s3-backup`
- Sync `~/projects/site` to the `yadisk` remote and summarize what changed

## Similar
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [Oh My Posh Validator](https://affpapa.org/en/nevibecode/mcp/oh-my-posh-validator.md) — MCP server · ★ 23643
- [Keploy](https://affpapa.org/en/nevibecode/mcp/keploy.md) — MCP server · ★ 18727
- [Coder](https://affpapa.org/en/nevibecode/mcp/coder.md) — MCP server · ★ 17160
- [mcp](https://affpapa.org/en/nevibecode/mcp/kubeshark-mcp.md) — MCP server · ★ 12109

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
