Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
MCP server for the Rclone RC API, with selectable toolsets.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
RCLONE_URL, RCLONE_USER, RCLONE_PASS, RCLONE_TOOLSETS, RCLONE_READ_ONLY, RCLONE_MCP_MAX_OUTPUTValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"rclone": {
"command": "npx",
"args": [
"-y",
"rclone-mcp"
],
"env": {
"RCLONE_URL": "your-value",
"RCLONE_USER": "your-value",
"RCLONE_PASS": "your-value",
"RCLONE_TOOLSETS": "your-value",
"RCLONE_READ_ONLY": "your-value",
"RCLONE_MCP_MAX_OUTPUT": "your-value"
}
}
}
}Run this in your terminal
claude mcp add rclone --env RCLONE_URL=your-value --env RCLONE_USER=your-value --env RCLONE_PASS=your-value --env RCLONE_TOOLSETS=your-value --env RCLONE_READ_ONLY=your-value --env RCLONE_MCP_MAX_OUTPUT=your-value -- npx -y rclone-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"rclone": {
"command": "npx",
"args": [
"-y",
"rclone-mcp"
],
"env": {
"RCLONE_URL": "your-value",
"RCLONE_USER": "your-value",
"RCLONE_PASS": "your-value",
"RCLONE_TOOLSETS": "your-value",
"RCLONE_READ_ONLY": "your-value",
"RCLONE_MCP_MAX_OUTPUT": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"rclone": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"rclone-mcp"
],
"env": {
"RCLONE_URL": "your-value",
"RCLONE_USER": "your-value",
"RCLONE_PASS": "your-value",
"RCLONE_TOOLSETS": "your-value",
"RCLONE_READ_ONLY": "your-value",
"RCLONE_MCP_MAX_OUTPUT": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
RCLONE_URL envRCLONE_USER envRCLONE_TOOLSETS envRCLONE_READ_ONLY envRCLONE_MCP_MAX_OUTPUT envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account rclone-ui, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: RCLONE_PASS
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (2.0.0) reached the registry 6 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, zanadir
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Find what a repository's CI is missing, and which security checks cannot fail the build.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
MCP (Model Context Protocol) server for the Rclone RC API. Gives AI assistants the ability to manage cloud storage remotes, copy/sync files, list directories, and more — all through natural language.
Tools are generated from the rclone-openapi spec and call rclone through the rclone-sdk client. There are 102 tools, organized into selectable toolsets, and each release targets one rclone version.
rclone 1.75.2 or later, on the PATH. rclone-mcp starts it for you, with your normal rclone.conf, and stops it when the client disconnects. It listens on 127.0.0.1 with a random port and login.
If your MCP client can't find rclone, set PATH in the server's env, such as "PATH": "/opt/homebrew/bin:/usr/bin:/bin". If your rclone.conf is encrypted, set RCLONE_CONFIG_PASS there too.
To use an rclone that's already running, set RCLONE_URL. Do this if transfers need to outlast the client, because stopping rclone stops its background jobs, mounts and serves.
rclone rcd --rc-user=admin --rc-pass=secret
Each release targets one rclone version, and rclone-mcp refuses anything older.
Add to your .cursor/mcp.json or claude_desktop_config.json:
{
"mcpServers": { "rclone": { "command": "npx", "args": ["-y", "rclone-mcp"] } } }
{
"mcpServers": { "rclone": { "command": "npx", "args": ["-y", "rclone-mcp"], "env": { "RCLONE_URL": "http://localhost:5572", "RCLONE_USER": "admin", "RCLONE_PASS": "secret" } } } }
docker build -t rclone-mcp .
docker run -i --rm \ -e RCLONE_URL=http://host.docker.internal:5572 \ rclone-mcp
The image doesn't include rclone, so RCLONE_URL is required here.
For web-based MCP clients, or to share one server:
npx rclone-mcp http --port 3000
This listens on 127.0.0.1 and only answers to local hostnames and origins. Every tool can reach your remotes, so listening anywhere else needs a token, which clients send as Authorization: Bearer :
RCLONE_MCP_TOKEN=<a long random string> npx rclone-mcp http --host 0.0.0.0
Use a TLS proxy in front of it on any network you don't trust, because the token and your data travel unencrypted otherwise. A proxy on the same machine can forward to the default host, as long as a token is set.
Browser pages can only use the server from origins you list in --allowed-origins. Clients that aren't browsers don't need this.
| Variable | Description | Default |
|---|---|---|
RCLONE_URL | A running rclone to use. Without it, rclone-mcp starts its own | — |
RCLONE_USER | HTTP Basic Auth username for RCLONE_URL | — |
RCLONE_PASS | HTTP Basic Auth password for RCLONE_URL | — |
RCLONE_TOOLSETS | Comma-separated toolset list | default |
RCLONE_READ_ONLY | Set to 1 to expose only tools that change nothing and return no credentials | — |
RCLONE_MCP_MAX_OUTPUT | The most characters of output a tool call returns | 100000 |
PORT | Port the HTTP transport listens on | 3000 |
RCLONE_MCP_HOST | Address the HTTP transport listens on | 127.0.0.1 |
RCLONE_MCP_TOKEN | Bearer token for the HTTP transport. Required unless it listens on localhost | — |
RCLONE_MCP_ALLOWED_ORIGINS | Comma-separated browser origins that can use the HTTP transport | — |
RCLONE_MCP_SESSION_TIMEOUT | Seconds an HTTP session can sit idle before it closes | 1800 |
rclone-mcp [command]
Commands: rclone-mcp stdio Run with stdio transport (default) rclone-mcp http Run with Streamable HTTP transport
Options: --url A running rclone to use. Without one, rclone-mcp starts its own --toolsets Comma-separated list of toolsets --read-only Only expose tools that change nothing and return no credentials --max-output The most characters of output a tool call returns
HTTP options: --port Port to listen on (default: 3000) --host Address to listen on (default: 127.0.0.1) --token Bearer token that clients must send. Prefer RCLONE_MCP_TOKEN --allowed-origins Comma-separated browser origins that can use the server --session-timeout Seconds a session can sit idle before it closes (default: 1800)
Tools are grouped by API path prefix. Enable only what you need to keep the tool list focused.
| Toolset | Paths | Default |
|---|---|---|
core | /core/*, /rc/* | Yes |
config | /config/* | Yes |
operations | /operations/* | Yes |
sync | /sync/* | Yes |
jobs | /job/* | Yes |
vfs | /vfs/* | No |
mount | /mount/* | No |
serve | /serve/* | No |
cache | /cache/* | No |
debug | /debug/* | No |
backend | /backend/* | No |
options | /options/* | No |
plugins | /pluginsctl/* | No |
fscache | /fscache/* | No |
dangerous | See below | No |
Special values:
default — the five default toolsets (core, config, operations, sync, jobs)all — every toolset, including dangerousdangerous toolsetThese tools only appear if you ask for them, whichever path they're on. They return credentials, control the rclone process, or can do damage that's hard to undo:
| Tool | Why |
|---|---|
config_dump, config_get, options_get, options_info, serve_list | Return credentials, including rclone's own password |
config_delete, config_password, config_setpath, config_unlock, config_unset, options_set | Change or remove configuration |
core_command | Runs any rclone command |
core_quit | Stops rclone |
job_batch | Can call any route, including everything on this list |
operations_purge | Deletes a directory and everything in it |
# Default toolsets (53 tools)
npx rclone-mcp
RCLONE_TOOLSETS=all npx rclone-mcp
npx rclone-mcp --toolsets operations,config
npx rclone-mcp --toolsets default,mount
npx rclone-mcp --read-only
When --read-only or RCLONE_READ_ONLY=1 is set, a tool is only registered if it changes nothing and returns no credentials, whichever toolsets you pick. So config_dump, options_get and serve_list are left out as well as sync_copy and operations_delete.
One limit remains: job_status returns the output of any job that rclone still remembers. If another client ran config/dump in the background in the last minute, its output would be visible.
Every tool declares readOnlyHint and destructiveHint, so clients can ask for confirmation before anything that could delete or overwrite data. Copies count as destructive, because they can overwrite files at the destination.
Calls that can take a while, such as sync_copy, accept run_in_background: true. They return a job ID right away, and job_status reports progress.
Without it, the call waits until rclone finishes. If the client times out or cancels first, rclone cancels the transfer, so use run_in_background for anything long. A server you run yourself also stops answering a single call after an hour, unless you change --rc-server-write-timeout.
job_list returns the newest 100 job IDs from each list, with runningTotal and finishedTotal giving the full counts. Pass limit for a different number, and status for only running or only finished jobs. Rclone counts every call as a job, including job_status and job_list themselves, so the newest IDs aren't always work you started.
RCLONE_URL, each rclone-mcp process starts its own rclone, and background jobs, mounts and serves stop with that process. With stdio, that means each client gets its own, and they don't see each other's jobs. Sessions on one HTTP server share one rclone. If rclone-mcp is killed with SIGKILL, its rclone keeps running until you stop it.RCLONE_MCP_MAX_OUTPUT.serve_start, allow them.operations_uploadfile takes file contents as text or base64 in the call, so it suits small files. Use operations_copyurl or sync_copy for anything large.RCLONE_URL, rclone-mcp now starts its own rclone instead of connecting to http://localhost:5572. To keep using a server on that address, set RCLONE_URL to it.opt and parameters are objects rather than JSON strings._async is gone. Use run_in_background on the tools that offer it.jobs is on by default, and the dangerous tools aren't.--read-only no longer exposes config_dump, config_get, options_get, options_info, serve_list, core_bwlimit, operations_publiclink or cache_fetch.127.0.0.1 by default.MIT
Made with ☁️ for the rclone community