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.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
fflShareTextA

Share text content using ffl. Returns a sessionId and link. Managed-sandbox policy: When running inside ChatGPT Work, Grok Bot, a cloud-hosted Codex sandbox, or a Claude Code cloud session (Claude Code on the web / claude.ai/code, or a remote session started from the Claude app), use relay immediately: forceRelay=True and preferredTunnel="default:web". These environments may only allow outbound HTTPS through a proxy, with no usable UDP/ICE or raw TCP tunnels. Do not apply this rule to local Claude Code CLI, local Codex CLI, local Grok Build, or ordinary user machines.

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.

fflShareBase64A

Share arbitrary binary data (base64-encoded) using ffl. Returns a sessionId and link. Managed-sandbox policy: When running inside ChatGPT Work, Grok Bot, a cloud-hosted Codex sandbox, or a Claude Code cloud session (Claude Code on the web / claude.ai/code, or a remote session started from the Claude app), use relay immediately: forceRelay=True and preferredTunnel="default:web". These environments may only allow outbound HTTPS through a proxy, with no usable UDP/ICE or raw TCP tunnels. Do not apply this rule to local Claude Code CLI, local Codex CLI, local Grok Build, or ordinary user machines.

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.

fflShareFileA

Share a local file or folder using ffl. Respects ALLOWED_BASE_DIR when configured. Managed-sandbox policy: When running inside ChatGPT Work, Grok Bot, a cloud-hosted Codex sandbox, or a Claude Code cloud session (Claude Code on the web / claude.ai/code, or a remote session started from the Claude app), use relay immediately: forceRelay=True and preferredTunnel="default:web". These environments may only allow outbound HTTPS through a proxy, with no usable UDP/ICE or raw TCP tunnels. Do not apply this rule to local Claude Code CLI, local Codex CLI, local Grok Build, or ordinary user machines.

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.

fflShareFilesA

Share multiple local files at once using ffl. ffl auto-zips them into a single download. Managed-sandbox policy: When running inside ChatGPT Work, Grok Bot, a cloud-hosted Codex sandbox, or a Claude Code cloud session (Claude Code on the web / claude.ai/code, or a remote session started from the Claude app), use relay immediately: forceRelay=True and preferredTunnel="default:web". These environments may only allow outbound HTTPS through a proxy, with no usable UDP/ICE or raw TCP tunnels. Do not apply this rule to local Claude Code CLI, local Codex CLI, local Grok Build, or ordinary user machines.

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.

fflHowToShareFromRemoteAgentA

Only for cloud-hosted assistants (e.g. Grok Bot) that cannot access the user's computer directly. Call this first when you need to share a file or folder that lives on the user's computer. Local agents such as Claude Code, Codex or Cursor do not need it.

fflDownloadB

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.

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')

fflListSessionsA

List active ffl share sessions started by this MCP server.

fflStopSessionC

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

TDQS

A3.6/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a distinct payload type or session operation: share text, base64, single file, or multiple files, plus list/get/stop/events. The file vs. files pair could be confused, but the description explicitly notes auto-zipping, making boundaries clear. Session inspection and guidance tools are clearly separate from sharing actions.

Naming Consistency4/5

All tools use a consistent ffl-prefixed camelCase convention (fflShareText, fflListSessions, fflStopSession, etc.). Minor deviations like fflDownload (verb only) and fflKeygen (compound noun) break the verb_noun pattern slightly but remain readable and predictable.

Tool Count4/5

11 tools is well within a reasonable range for a file-sharing server, covering sharing, downloading, session management, and key generation. The four share variants are slightly redundant but each maps to a real payload distinction.

Completeness4/5

The surface covers the full lifecycle: create shares (text/base64/file/files), download, keygen for pubkey auth, plus list/get/stop/events for session lifecycle. Minor gaps like no explicit session renewal or share update exist, but agents can work around them by starting a new share.

Maintenance

ActivityMaintained
ResponsivenessNo issues