Labsco
MCP SERVER

FFL File Sharing

by nuwainfo

Publish a file, a folder, a block of text or raw binary as a FastFileLink and get a link back — optionally end-to-end encrypted, password- or public-key-gated, download-capped and time-limited.

Local Filesystem AccessVerified
Summary
A share is a session with an id, so a link can be taken down rather than only left to expire.

fflListSessions, fflGetSession and fflStopSession make a share something you can inspect and revoke while it is still live, and fflGetSessionEvents surfaces the hook events it has fired. The access controls are layered further than a file link usually is — end-to-end encryption, HTTP auth, a pickup code, a download cap, a timeout, and public-key recipient authentication through fflKeygen — and all of them are parameters on the share call rather than settings kept somewhere else. ALLOWED_BASE_DIR is the boundary that matters when an agent holds the tool: file sharing respects it when configured, so the reach of a mistaken path is decided before a session starts.

What it is

A wrapper around the ffl file-sharing tool: live sessions that publish local files, folders, text or base64 data as a link, plus a downloader and RSA keypair generation for passwordless recipient authentication.

What you get
  • Publishing takes whichever shape the payload has: fflShareFile for a local file or folder, fflShareFiles for several files that ffl auto-zips into a single download, fflShareText for text content, and fflShareBase64 for arbitrary binary data.
  • Access controls set on the same call — e2ee for end-to-end encryption, authUser and authPassword, a pickupCode, an invite, maxDownloads, timeoutSeconds, and recipientAuth backed by a recipientPublicKey or a recipientEmail.
  • fflKeygen, which produces a .fflpub public key for the sender to share and a .fflkey private key the recipient keeps, so a download is authorised without a shared password.
  • fflDownload, which takes a FastFileLink URL — using WebRTC peer-to-peer where it can — or any regular HTTP(S) URL, with resume and an output path.
  • Session management for what is currently live: fflListSessions for the shares this server started, fflGetSession for one session's detail, fflGetSessionEvents for its recent hook events, and fflStopSession to end it.
  • A QR code rendered as terminal ASCII art through qrInTerminal, and a hookUrl for callbacks while a session runs.
Requirements

ALLOWED_BASE_DIR, which bounds the paths file sharing is allowed to reach, and FFL_USE_STDIN. A running session for the link to work, since a share is live rather than an upload — fflListSessions shows which are still up.