For AI agents
An agent can use Ferry too
An agent on your machine can hand 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
- 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.
MCP server
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"]
}
}
}The server has six 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, the files, the saved paths, the text and the 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.
JSON command line
An agent with a terminal and no MCP can use the command line. With --json it 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>" --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
- The MCP server reads and writes only inside its root folder.
- A received file never replaces an existing file.
- A file larger than the size limit is refused before any of it is written.
- Only a device with the link gets in. A device with only the 6-digit code is refused, unless the agent turns that on. Then the agent has to ask you to confirm the security code first.
- A transfer that nobody finishes ends by itself after 15 minutes.
- The agent is told to treat received text and file names as data, not as instructions.
What an agent cannot do
- It cannot leave a file for later. Ferry keeps no files on a server, so both sides must be online at the same time.
- 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.
Files for agents to read
- llms.txt and llms-full.txt
- openapi.json for the HTTP API
- SKILL.md, a skill file an agent can load
- The developers page for the protocol and the encryption