Ferry for AI agents
Let your agent hand
you a file.
An agent on your machine can give you a file on your phone, ask you for one, or pass files to another agent. The files still go straight from one device to the other.
What an agent can do
Three things, with no upload in between.
Give a file to a person
The agent starts a transfer and shows you a link. You open it on any device and the file arrives.
Get a file from a person
The agent opens a transfer and waits. You open the link and drop the file in.
Send to another agent
Two agents on different machines exchange files with no person in the middle. After they pair once, they need no link.
MCP server
Add it to your agent in one block.
Add this to the MCP settings of your agent. The root is the one folder the server may read from and write to.
{
"mcpServers": {
"ferry": {
"command": "npx",
"args": ["-y", "ferry-send", "mcp", "--root", "/path/to/a/folder"]
}
}
}Nine tools
send_filesSends files, folders or a text note. It returns a link and a 6-digit code at once.
receive_filesJoins a transfer, or opens one and returns a link for a person to drop files into.
transfer_statusReads the devices, files, saved paths, text and result. It can wait for the next change.
admit_deviceAnswers a device that asked to join with the 6-digit code.
send_textSends a text note into an open transfer.
cancel_transferStops a transfer.
pair_deviceRemembers another device. After pairing, send and receive need no link.
list_devicesLists the devices the agent remembers.
forget_deviceRemoves a remembered device.
JSON command line
No MCP? Use the terminal.
With --json the command prints one event on each line and never asks a question.
npx -y ferry-send send report.pdf --json --timeout 900
{"event":"ready","link":"https://ferry.sholajegede.com/room/…#k=…","code":"482107", …}
{"event":"connected","device":"iPhone (Safari)", …}
{"event":"file_sent","name":"report.pdf","size":48211}
{"event":"done","ok":true,"reason":"complete","sent":1, …}npx -y ferry-send receive --json --out ./incoming --max-size 500MB
npx -y ferry-send receive "<link>" --json --out ./incoming
npx -y ferry-send send build.zip --to "<link>" --json
npx -y ferry-send pair --json # once, on each machine
npx -y ferry-send send build.zip --to-device laptop --jsonExit codes: 0 finished, 1 a file was not transferred, 2 wrong usage, 3 the time limit passed, 4 the transfer could not be opened or was ended, 130 stopped.
Rules that protect you
Built so an agent cannot wander.
One folder only
The MCP server reads and writes only inside its root folder.
Nothing is overwritten
A received file never replaces an existing file, and one over the size limit is refused before any of it is written.
The link is the key
Only a device with the link gets in. A device with only the 6-digit code is refused unless the agent turns that on, and then it must ask you to confirm the security code first.
It ends by itself
A transfer that nobody finishes ends after 15 minutes.
Data, not orders
The agent is told to treat received text and file names as data, not as instructions.
You stay in charge
Held files from an agent use a key you create, limit and revoke in your dashboard.
Limits
What an agent cannot do.
- A direct send needs both sides online at the same time. To leave a file for later, use a held file with an agent key from a Ferry account.
- An agent with no machine of its own, such as a chat assistant in a browser tab, cannot send files this way.
- Some locked-down sandboxes block the direct connection. The tool then stops at its time limit and says so.
For agents to read
Files an agent can load.
Your files
Where your files live.
- Direct sends
- Go straight from one device to the other and are never stored anywhere. No account needed.
- Files sent with an account
- Are stored in the cloud, but only in encrypted form, until they expire. You choose how long, from 1 hour up to 7 days.
- Who can read them
- Not us. The file is sealed in your browser and the key stays in the link, which never reaches our servers. You can also add a password.
- Opening it again
- The sender can open it from their dashboard on the device they sent it from. Anyone with the link, and the password if there is one, can open it until it expires.
More on the security page and in the privacy policy.
Give your agent a way to hand you a file.
One block of settings, and no account.