GitHub
GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.
Description from the maker (original English)
Deploy a site to its SFTP/FTP host from a coding agent. Changed files only, undo, live checks.
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.
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": {
"coolftp": {
"command": "npx",
"args": [
"-y",
"coolftp",
"mcp"
]
}
}
}Run this in your terminal
claude mcp add coolftp -- npx -y coolftp mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"coolftp": {
"command": "npx",
"args": [
"-y",
"coolftp",
"mcp"
]
}
}
}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": {
"coolftp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"coolftp",
"mcp"
]
}
}
}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.
These 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 7, 2026
The registry name was verified with the GitHub account anivdel, 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.
The registry does not list a required key, though some servers ask you to sign in on first use.
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 (0.1.4) reached the registry 25 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: GitHub, Desktop Commander, Cloudflare MCP
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
GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
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.
Let Claude deploy your site to your SFTP or FTP host, with undo and a check that it is actually live. One line in Claude Code:
/plugin install coolftp --marketplace anivdel/coolFTP
Then say "set up coolFTP for this project" and "deploy this". Only files whose content changed go up, the git commit is recorded next to the deploy, the site is fetched afterward to prove it answers, and "undo that" puts the previous version back, no git needed. Works with any host that speaks SFTP or FTP: Hostinger, HostGator, Bluehost, GoDaddy, any cPanel box, your own VPS. Free for 1 site and MIT; Pro ($49 once) unlocks unlimited sites. Website: coolftp.com.
The plugin, the coolftp CLI and the MCP server run on macOS, Linux and Windows with Node 18 or newer, and Cursor, Codex or any agent with a shell can drive them too. The Windows desktop app is an optional companion: with it open, you watch every agent call live and click to approve deletes, undos and rollbacks.
With the desktop app open, agents ask before they delete anything:
Every FTP client assumes a human is clicking. coolFTP assumes a human is watching and an agent is doing.
coolftp undo puts them back, even from a dirty tree.coolftp rollback restores the previous live commit through a temporary git worktree.coolftp verify does the same on demand.--delete deploys, rollbacks and undos wait for your click while the app is open. Deploys show as a progress card, and a Windows notification tells you how they ended.packages/core shared TypeScript library: transports, sites, hash manifest, sync, deploy
packages/cli coolftp command line + coolftp mcp MCP server for agents packages/app Electron desktop app (two-pane browser, transfer queue, live agent feed) site/ landing page for coolftp.com scripts/ build + end-to-end test
The CLI and the MCP server run anywhere Node 18 or newer does: Windows, macOS, Linux, a headless box, CI.
npm i -g coolftp
coolftp --version
No install at all: npx coolftp ... runs the same thing.
The desktop app is Windows for now: the installer, a portable .exe and the Claude Desktop extension (.mcpb) are on the download page with their SHA-256s.
npm install
npm run build npm run app # opens the desktop app node packages/cli/dist/coolftp.js --help
To get a global coolftp command from this checkout instead of npm: cd packages/cli && npm link.
# SFTP with your existing ~/.ssh key or the ssh-agent
coolftp site add coolftp.com --host coolftp.com --user deploy --root /var/www/html
coolftp site add oldhost --host ftp.oldhost.net --user me --protocol ftps --password '...' --root /public_html
coolftp site test coolftp.com
Or use the Sites button in the app. Sites live in %USERPROFILE%\.coolftp\sites.json on Windows and ~/.config/coolftp/sites.json elsewhere. (Up to 0.1.4 the Windows folder was %APPDATA%\coolftp; the first run of a newer version copies it over. COOLFTP_HOME overrides the folder.) On Windows, passwords in that file are encrypted with DPAPI under your account; on macOS and Linux they are stored as-is until a keychain backend lands, so prefer keys for SFTP there.
cd my-site
coolftp init coolftp.com --local-dir dist --build "npm run build" coolftp diff # preview coolftp deploy -m "first deploy" coolftp deploy --delete # also remove remote files deleted locally coolftp deploy --commit -m "msg" # git add -A, git commit, then deploy coolftp undo # put the previous versions back coolftp verify # re-run the live checks coolftp history
Exit codes: 0 deployed (and verified, when the site has a URL), 1 something failed before or during the upload, 3 the files landed but the live checks did not pass. -q drops progress and per-file output and keeps the result line, warnings, errors and the checks. Deploys of more than 20 files print one progress line every few seconds instead of a line per file, and long plans are summarised by folder.
coolftp init writes .coolftp.json:
{ "site": "coolftp.com", "localDir": "dist", "build": "npm run build", "ignore": ["*.map"] }
Commit it. Add a .coolftpignore (gitignore syntax) for anything that must never go up. .git, node_modules, .env*, *.log and the coolFTP files are always excluded.
When a site's FTP root is not the web root (shared hosts often log you in one level above public_html), point the project at the right folder and tell coolFTP where it is served:
coolftp init myhost --remote-root /public_html --url https://example.com
Every command then works relative to that folder: coolftp push js/app.js js/app.js, coolftp ls, coolftp stat, coolftp cat, coolftp rm all resolve against /public_html, the same place deploy writes to. Paths starting with / are still absolute on the server. The url makes the changed-file URLs and the post-deploy check point at https://example.com/js/app.js rather than at the FTP path.
A push confirms the uploaded size with the server, reports any folder it had to create (with a warning when a single file opens a new top-level folder, which is what a stale public_html/ prefix looks like), and records a file pushed inside the project's remote directory in the deploy manifest, so the next deploy does not send it again.
Git Bash rewrites arguments that start with / into Windows paths before any program sees them. coolFTP undoes that when it recognises the Git install prefix and refuses anything else that looks like a drive path, so coolftp ls /public_html works from Git Bash too. If you hit the refusal, use a relative path or set MSYS_NO_PATHCONV=1.
The coolFTP plugin is the one-step way: it starts the MCP server, teaches Claude how to deploy safely, adds /coolftp:setup, /coolftp:deploy, /coolftp:undo and /coolftp:live, and shows each deploy in a live panel beside the chat. In Claude Code:
/plugin install coolftp --marketplace anivdel/coolFTP
Answer y to add the marketplace, then pick a scope. In the Claude desktop app: + next to the prompt box, Plugins, Add marketplace anivdel/coolFTP, then add coolftp. It needs Node 18 or newer and nothing else; the desktop app is optional. Then say "set up coolFTP for this project". Details in plugins/coolftp.
For other MCP clients, or to wire Claude Code yourself without the plugin. With the CLI installed from npm, on macOS and Linux:
claude mcp add --scope user coolftp -- coolftp mcp
On Windows, npm installs coolftp as a .cmd shim, so go through cmd:
claude mcp add --scope user coolftp -- cmd /c coolftp mcp
Without a global install: claude mcp add --scope user coolftp -- npx -y coolftp mcp (again behind cmd /c on Windows). --scope user registers it for every project on the machine; drop it to register for the current project only.
Cursor, Windsurf and other MCP clients take the same server in their mcp.json:
{ "mcpServers": { "coolftp": { "command": "coolftp", "args": ["mcp"] } } }
From a source checkout instead of npm, point at the built file:
claude mcp add coolftp -- node "C:\path\to\cool FTP\packages\cli\dist\coolftp.js" mcp
Tools exposed: coolftp_sites, coolftp_license, coolftp_status, coolftp_init, coolftp_diff, coolftp_deploy, coolftp_undo, coolftp_verify, coolftp_rollback, coolftp_history, coolftp_ls, coolftp_stat, coolftp_read, coolftp_write, coolftp_upload, coolftp_download, coolftp_mkdir, coolftp_delete, coolftp_rename. Results are summarised for an agent: counts and a folder breakdown instead of thousands of paths, a live verdict on every deploy, and the transfer log collapsed after 20 files. The server checks on every call whether the desktop app is running, so the app can be opened and closed during a session.
The same MCP server ships as a Claude Desktop extension. npm run mcpb packs it into release/coolFTP- .mcpb (the download page carries the built one); open that file in Claude Desktop and hit Install. Claude gets the coolftp_* tools, and every call still routes through the desktop app while it is open, so deploys show up there and deletes, undos and rollbacks wait for your click. A chat has no working directory, so set Default project folder in the extension's settings or name the folder in the chat; a project's own .coolftp.json is found either way. The bundle is unsigned for now, which the install dialog points out.
server.json describes the server for the MCP Registry twice over: as the coolftp npm package (run with npx coolftp mcp) and as the .mcpb bundle. npm run mcpb keeps the versions and the bundle hash current. The release steps, npm publish included, are in docs/PUBLISHING.md.
--delete, rolls back, or undoes a deploy pops a dialog in the app and waits for your click. No answer within two minutes is a deny. There is a checkbox to auto-approve for the rest of the session.--delete is refused if the target folder contains files coolFTP never uploaded. Pass --delete-untracked to override..coolftp/backup/ / on the server, so nothing extra is transferred. coolftp undo restores those versions, removes the files that deploy added, and is itself undoable; --dry-run shows the work first, --to reverts an older deploy when nothing later touched its files. The last five deploys keep their backups (coolftp init --keep-backups , 0 to turn it off). The Deploys tab has an Undo button.coolftp rollback restores the previous commit that was live for the project, using a temporary git worktree so your working tree is untouched. --to targets any point in history. The Deploys tab in the app has the same buttons.--url (or a project one with coolftp init --url) and every deploy prints the URLs of changed files, fetches the homepage and up to four pages and reports the status codes, and compares up to four static files byte for byte with the local copy. A statOnly the beginning is shown; read the rest in the repo