YayFTP connector for Claude
The YayFTP connector lets Claude browse, read, and deploy files on the servers you have saved in YayFTP: FTP, FTPS, SFTP, and Azure App Service. Ask Claude to fix a page, update a config, or ship a change, and it works directly on your live server, with an automatic backup before anything is overwritten or deleted.
Requirements
- A YayFTP account. Sign up free at yayftp.com.
- At least one server saved in the YayFTP Site Manager. Claude can only reach the sites saved in your account, and only within each site’s document root.
- Claude on the web, desktop, or mobile, with connectors available on your plan.
Connect YayFTP to Claude
- In Claude, open the connectors directory, find YayFTP, and choose Connect. If you are adding it by URL as a custom connector, use: https://yayftp.com/mcp Leave any OAuth client fields blank. Claude registers itself automatically.
- A YayFTP window opens. Sign in (or confirm the account you are already signed in to) and choose Allow.
- You are returned to Claude, and the connector is ready. Start a new chat and try “List my YayFTP sites.”
No API key is needed. Claude never sees your YayFTP password or your servers’ FTP and SSH credentials. Those stay encrypted in your YayFTP account.
Tools
Read-only tools run without interrupting you. Tools that change files are marked so that Claude asks for your confirmation before running them.
| Tool | Type | What it does |
|---|---|---|
get_server_status | Read | Confirms the connection and shows which YayFTP account is signed in. |
list_sites | Read | Lists your saved sites: label, protocol, host, and document root. The label is how you refer to a site. |
list_dir | Read | Lists a directory on a site: names, types, sizes, modified times, and permissions. |
pull_file | Read | Reads a file and returns its content with its size, modified time, and SHA-256 hash. Text is returned as text; binary files as base64. |
push_file | Write | Writes a text or code file. Replacing an existing file requires overwrite, and the previous version is backed up first. Supports dry_run. |
mkdir | Write | Creates a directory, including any missing parent folders. Never removes anything. |
copy_path | Write | Copies a file or a whole folder to another location on the same site, entirely on the server. Skips existing files unless overwrite is set. Supports dry_run. |
delete_path | Write | Deletes a file (backed up first) or a folder (requires recursive; not backed up). Supports dry_run. |
Example prompts
- “List my YayFTP sites, then show me what’s in the root of example.com.”
- “Pull index.html from example.com, change the footer year to 2026, and push it back.”
- “Before we change anything, copy the whole site into a folder called backup-today.”
- “Find the CSS file that styles the header and make the logo 20% smaller.”
- “Do a dry run of deleting the old-images folder and tell me what would be removed.”
Safety and limits
- Backups before changes. Overwriting a file with
push_file, overwriting a single file withcopy_path, and deleting a file withdelete_patheach save the previous version to/.yayftp-bak/<path>.<timestamp>on your own server first. To roll back, ask Claude to copy the backup over the file. - Folder deletes are permanent. Deleting a folder requires
recursiveand is not backed up. Ask for a dry run first. The document root itself can never be deleted. - Scoped paths. Every path is resolved inside the site’s document root. Paths containing
..are rejected. - No silent overwrites.
push_fileand single-filecopy_pathrefuse to replace an existing file unlessoverwriteis set. - Size limits.
pull_filereads files up to 2 MB.push_filewrites up to 8 MB.copy_pathcopies up to 500 files or 128 MB per call; run it again with the same arguments to resume a larger copy. - Text uploads.
push_filewrites text and code. Use the YayFTP web app to upload images and other binary files. - Rate limits. Each YayFTP account can make up to 1,200 tool calls per hour through Claude.
Authentication and access
- The connector uses OAuth 2.1 with PKCE. Claude receives a short-lived access token (1 hour) and a refresh token (30 days) that are rotated on every use. Tokens are stored only as SHA-256 hashes.
- Access is limited to the YayFTP account you approved and the sites saved in it. Adding or removing a site in the Site Manager changes what Claude can reach immediately.
- To stop access, disconnect YayFTP in Claude’s connector settings. To revoke every active token for your account right away, email support@yayftp.com.
Data and privacy
- YayFTP receives only the tool calls Claude makes for you and the file content involved in them. We do not receive or store your prompts or conversation history.
- Your files go directly between YayFTP and your own servers. Backups are written to your server, not ours.
- Saved server credentials are encrypted at rest with AES-256-GCM and are never returned to Claude.
- We keep operational logs (tool name, site, path, size, result) for 90 days. Logs never include file contents.
Full details are in the YayFTP Privacy Policy and Terms of Service.
Troubleshooting
Claude says a site was not found
Site labels are the names shown in your Site Manager. Ask Claude to run list_sites and use one of those labels. Labels are not case-sensitive.
“Could not connect” or “Login failed”
Open the site in the YayFTP web app to confirm the host, port, username, and password. Errors include the server’s own reason, for example a refused port or a rejected password.
SFTP on cPanel or Namecheap hosting
Many shared hosts run SSH on a non-standard port; Namecheap, for example, uses 21098, not 22. SSH access may also need to be enabled in cPanel, and SFTP usually signs in with your cPanel username. Your SFTP root is your home directory, so set the site’s root to your web folder (for example /home/youruser/public_html).
FTPS logs in but listing fails
FTPS opens a separate encrypted data connection on a port chosen by your server. If the error mentions a failed data connection, a firewall between YayFTP and your server is blocking that port. Use SFTP if your host offers it, or plain FTP if the content is not sensitive.
A file is too large
pull_file stops at 2 MB and push_file at 8 MB. Use the YayFTP web app for larger transfers.
Using the server from your own code
The same tools are available to scripts, CLI tools, and other MCP clients that can send headers. Create an API key under My Account → API Keys in YayFTP, then send JSON-RPC 2.0 requests to:
https://yayftp.com/server.phpAuthenticate with the header Authorization: Bearer yftp_.... Keys are shown once at creation, stored only as hashes, and can be revoked at any time.
Support
Email support@yayftp.com. Security reports are welcome at the same address.
YayFTP is operated by Global Transaction Systems, LLC, PO Box 1813, Lynnwood, WA 98046.