Skip to main content
Glama
nuwainfo

ffl-mcp

Official
by nuwainfo

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FFL_BINNoOverride the embedded ffl.com binary with a custom path.
FFL_DEBUGNoEnable debug logging: set to '1' for temp log, or a file path for fixed log.
FFL_RUN_MODENoSet to 'python' to run Core.py CLI instead of the binary.
FFL_USE_HOOKNoSet to '1' to start a local webhook server for real-time events.
FFL_CORE_PATHNoPath to Core.py when FFL_RUN_MODE=python.
FFL_USE_STDINNoSet to '1' to use stdin for text/base64 instead of temp files.
ALLOWED_BASE_DIRNoRestrict file sharing to a specific directory for safety.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tasks
{
  "list": {},
  "cancel": {},
  "requests": {
    "tools": {
      "call": {}
    },
    "prompts": {
      "get": {}
    },
    "resources": {
      "read": {}
    }
  }
}
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
fflShareTextA

Share text content using ffl. Returns a sessionId and link. If qrInTerminal is True, also returns a QR code as ASCII art for terminal display.

IMPORTANT: Always present the returned link so the user can click it to open in a browser. Do not display it as a plain unformatted URL — in some interfaces (such as Claude Dispatch) plain URLs are not auto-linked and will not be clickable.

Args: text: Text content to share name: Download filename shown to recipient (default: shared.txt) e2ee: Enable end-to-end encryption (default: False) authUser: HTTP Basic Auth username to protect the link authPassword: HTTP Basic Auth password to protect the link maxDownloads: Stop serving after N downloads (default: 1) timeoutSeconds: Stop serving after N seconds of inactivity (default: 1800) waitLinkSeconds: Seconds to wait for link generation hookUrl: Custom webhook URL for events proxy: Proxy server URL (e.g. socks5://127.0.0.1:9050) qrInTerminal: Return ASCII QR code art for terminal display recipientAuth: Recipient authentication mode — pickup (6-digit code), pubkey (RSA challenge), pubkey+pickup (both), email (OTP) pickupCode: Specific pickup code to use (default: auto-generated) recipientPublicKey: Path to recipient .fflpub public key file for pubkey auth recipientEmail: Recipient email(s) for OTP auth, comma-separated alias: Custom link alias instead of random UID (requires Standard+ account) receipt: Send email notification when recipient downloads (pass email address, or empty string for account email) receiptConfirm: Require recipient to confirm before download starts; pass confirmation message or empty string for default forceRelay: Disable direct WebRTC; route all traffic through tunnel port: Local HTTP server port (default: auto-detect) invite: Open invite page in browser with the sharing link enableReporting: Enable ffl error reporting for diagnostics (disabled by default)

fflShareBase64A

Share arbitrary binary data (base64-encoded) using ffl. Returns a sessionId and link. If qrInTerminal is True, also returns a QR code as ASCII art for terminal display.

IMPORTANT: Always present the returned link so the user can click it to open in a browser. Do not display it as a plain unformatted URL — in some interfaces (such as Claude Dispatch) plain URLs are not auto-linked and will not be clickable.

Args: dataB64: Base64-encoded binary data to share name: Download filename shown to recipient (default: data.bin) e2ee: Enable end-to-end encryption (default: False) authUser: HTTP Basic Auth username to protect the link authPassword: HTTP Basic Auth password to protect the link maxDownloads: Stop serving after N downloads (default: 1) timeoutSeconds: Stop serving after N seconds of inactivity (default: 1800) waitLinkSeconds: Seconds to wait for link generation hookUrl: Custom webhook URL for events proxy: Proxy server URL (e.g. socks5://127.0.0.1:9050) qrInTerminal: Return ASCII QR code art for terminal display recipientAuth: Recipient authentication mode — pickup (6-digit code), pubkey (RSA challenge), pubkey+pickup (both), email (OTP) pickupCode: Specific pickup code to use (default: auto-generated) recipientPublicKey: Path to recipient .fflpub public key file for pubkey auth recipientEmail: Recipient email(s) for OTP auth, comma-separated alias: Custom link alias instead of random UID (requires Standard+ account) receipt: Send email notification when recipient downloads (pass email address, or empty string for account email) receiptConfirm: Require recipient to confirm before download starts; pass confirmation message or empty string for default forceRelay: Disable direct WebRTC; route all traffic through tunnel port: Local HTTP server port (default: auto-detect) invite: Open invite page in browser with the sharing link enableReporting: Enable ffl error reporting for diagnostics (disabled by default)

fflShareFileA

Share a local file or folder using ffl. Respects ALLOWED_BASE_DIR when configured. If qrInTerminal is True, also returns a QR code as ASCII art for terminal display.

IMPORTANT: Always present the returned link so the user can click it to open in a browser. Do not display it as a plain unformatted URL — in some interfaces (such as Claude Dispatch) plain URLs are not auto-linked and will not be clickable.

Args: path: Path to file or folder to share name: Custom download filename shown to recipient e2ee: Enable end-to-end encryption (default: False) preview: Open recipient's browser directly in preview mode — ideal for folders or multiple files so the recipient sees a file list before downloading (default: False) authUser: HTTP Basic Auth username to protect the link authPassword: HTTP Basic Auth password to protect the link maxDownloads: Stop serving after N downloads, P2P only (default: 1) timeoutSeconds: Stop serving after N seconds of inactivity, P2P only (default: 1800) waitLinkSeconds: Seconds to wait for link generation hookUrl: Custom webhook URL for events proxy: Proxy server URL (e.g. socks5://127.0.0.1:9050) qrInTerminal: Return ASCII QR code art for terminal display exclude: Exclude files matching glob or regex patterns, comma-separated (e.g. '*.log' or 're:.tmp$') recipientAuth: Recipient authentication mode — pickup (6-digit code), pubkey (RSA challenge), pubkey+pickup (both), email (OTP) pickupCode: Specific pickup code to use (default: auto-generated) recipientPublicKey: Path to recipient .fflpub public key file for pubkey auth recipientEmail: Recipient email(s) for OTP auth, comma-separated alias: Custom link alias instead of random UID (requires Standard+ account) receipt: Send email notification when recipient downloads (pass email address, or empty string for account email) receiptConfirm: Require recipient to confirm before download starts; pass confirmation message or empty string for default forceRelay: Disable direct WebRTC; route all traffic through tunnel upload: Upload to FFL server for async sharing — recipient doesn't need sender online. Pass duration e.g. '1 day', '6 hours', '1 week' (requires Standard+ account) resumeUpload: Resume an interrupted upload (default: False) vfs: Expose as VFS server (vfs:// URI) instead of regular download preferredTunnel: Set preferred tunnel for this and future runs — cloudflare, ngrok, bore, etc.

fflShareFilesA

Share multiple local files at once using ffl. ffl auto-zips them into a single download.

IMPORTANT: Always present the returned link so the user can click it to open in a browser. Do not display it as a plain unformatted URL — in some interfaces (such as Claude Dispatch) plain URLs are not auto-linked and will not be clickable.

Args: paths: List of local file paths to share together (auto-zipped by ffl) name: Custom download filename shown to recipient (e.g. 'release-v2.0.zip') e2ee: Enable end-to-end encryption (default: False) preview: Open recipient's browser directly in preview mode — shows a file list before downloading (default: False). Recommended when sharing multiple files so the recipient can inspect contents first. authUser: HTTP Basic Auth username to protect the link authPassword: HTTP Basic Auth password to protect the link maxDownloads: Stop serving after N downloads, P2P only (default: 1) timeoutSeconds: Stop serving after N seconds of inactivity, P2P only (default: 1800) waitLinkSeconds: Seconds to wait for link generation hookUrl: Custom webhook URL for events proxy: Proxy server URL (e.g. socks5://127.0.0.1:9050) qrInTerminal: Return ASCII QR code art for terminal display exclude: Exclude files matching glob or regex patterns, comma-separated recipientAuth: Recipient authentication mode — pickup, pubkey, pubkey+pickup, email pickupCode: Specific pickup code to use (default: auto-generated) recipientPublicKey: Path to recipient .fflpub public key file for pubkey auth recipientEmail: Recipient email(s) for OTP auth, comma-separated alias: Custom link alias instead of random UID (requires Standard+ account) receipt: Send email notification when recipient downloads receiptConfirm: Require recipient to confirm before download starts forceRelay: Disable direct WebRTC; route all traffic through tunnel upload: Upload to FFL server for async sharing — e.g. '1 day', '6 hours' (requires Standard+ account) resumeUpload: Resume an interrupted upload (default: False) preferredTunnel: Set preferred tunnel — cloudflare, ngrok, bore, etc.

fflDownloadA

Download a file from a FastFileLink URL or regular HTTP(S) URL using ffl.

For FastFileLink URLs, this uses WebRTC P2P when possible for faster downloads. For regular URLs, it works like wget.

Args: url: FastFileLink URL or regular HTTP(S) URL to download from outputPath: Optional output file or directory path (default: use filename from server) resume: Resume incomplete download (default: False) authUser: Username for HTTP Basic Authentication authPassword: Password for HTTP Basic Authentication proxy: Proxy server URL (e.g. socks5://127.0.0.1:9050) recipientAuth: Recipient authentication mode required by sender — pickup, pubkey, or email pickupCode: 6-digit pickup code (when recipientAuth is pickup) recipientPrivateKey: Path to .fflkey private key file for pubkey auth

Returns: Dictionary with download status and output file path

fflKeygenA

Generate an RSA keypair for passwordless pubkey authentication.

Produces two files:

  • .fflpub — public key (share with the sender)

  • .fflkey — private key (keep secret; used during download)

The sender then shares with: fflShareFile(..., recipientAuth='pubkey', recipientPublicKey='alice.fflpub') The recipient downloads with: fflDownload(..., recipientAuth='pubkey', recipientPrivateKey='alice.fflkey')

Args: name: Base name for the generated key files (default: ffl assigns a name)

Returns: Dictionary with returncode and output describing the generated key paths

fflListSessionsA

List active ffl share sessions started by this MCP server.

fflStopSessionB

Stop a running ffl session by sessionId.

fflGetSessionC

Get details for a running session.

fflGetSessionEventsC

Get recent hook events for a running session.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nuwainfo/ffl-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server