ffl-mcp(仅限本地)
用于ffl的MCP服务器。让AI为你分享一切。
由...支持 前锋,它将任何文件/文件夹转换为HTTPS链接。
这是一个最小的MCP服务器 ffl / ffl.com 当地。 不向LLM发送文件内容;该模型仅触发局部 ffl.
此演示显示了协作调试:左侧的Claude通过P2P链接共享本地环境(DB+日志),右侧的Claude下载并诊断错误。在这种情况下,两个Claudes代表在不同机器上工作的不同人员。
______________________________________________________________________
目录
- Windows--图形用户界面安装程序 - Linux/macOS——一行 - Windows--单行程序(PowerShell) - uvx(无二进制,需要uv) - 直接运行(开发)
______________________________________________________________________
安装
⚡ 为方便起见,使用短网址 - Linux/macOS:curl -fsSL https://fastfilelink.com/mcp/install.sh | bash- Windows(脚本):iwr -useb https://fastfilelink.com/mcp/install.ps1 | iex🔒fastfilelink.com/mcp/*重定向到GitHub。如果你愿意,可以使用下面的直接GitHub网址。
Windows--图形用户界面安装程序
下载并运行 ffl-mcp-setup.exe 从最新版本。
无需命令行——安装程序会自动在Claude Desktop和Claude Code中注册ffl-mcp。
Linux/macOS——一行
curl -fsSL https://raw.githubusercontent.com/nuwainfo/ffl-mcp/refs/heads/main/install.sh | bash从最新的GitHub版本下载平台二进制文件并运行 ffl-mcp install 向克劳德注册。回落到 uvx 如果您的平台没有可用的二进制文件,则自动执行。
Windows--单行程序(PowerShell)
iwr -useb https://raw.githubusercontent.com/nuwainfo/ffl-mcp/refs/heads/main/install.ps1 | iex下载 ffl-mcp.exe 从最新的GitHub版本中下载并向Claude注册。
uvx(无二进制,需要uv)
uvx --from git+https://github.com/nuwainfo/ffl-mcp install目标可以通过以下方式控制 --target (默认值:全部):
uvx --from git+https://github.com/nuwainfo/ffl-mcp install --target claude-desktop,codex-desktop,codex-cliuvx --from git+https://github.com/nuwainfo/ffl-mcp install --print如果安装了Claude Code CLI,安装程序也会运行 claude mcp add 自动(用户范围)。 安装程序还将Codex MCP配置写入 ~/.codex/config.toml 用于Codex桌面/CLI/IDE。 如果安装了Codex CLI,安装程序也会运行 codex mcp add 自动。 对于自定义配置路径,请传递以下文件:
uvx --from git+https://github.com/nuwainfo/ffl-mcp install --config /path/to/claude_desktop_config.json
uvx --from git+https://github.com/nuwainfo/ffl-mcp install --codex-config /path/to/codex/config.toml直接运行(开发)
先决条件: uv 安装。
# optional: override embedded ffl.com (APE) or use "ffl" on PATH
export FFL_BIN="$HOME/bin/ffl.com"
chmod +x "$FFL_BIN"
# optional safety: restrict file sharing to a directory
export ALLOWED_BASE_DIR="$HOME/Downloads"
# optional: use stdin for text/base64 instead of temp files
export FFL_USE_STDIN=1
uvx --from git+https://github.com/nuwainfo/ffl-mcp ffl-mcp______________________________________________________________________
MCP配置(手动JSON)
{
"mcpServers": {
"ffl": {
"command": "uvx",
"args": ["--from", "git+https://github.com/nuwainfo/ffl-mcp", "ffl-mcp"],
"env": {
"ALLOWED_BASE_DIR": "/Users/you/Downloads",
"FFL_USE_STDIN": "1"
}
}
}
}______________________________________________________________________
工具
共享
| 工具 | 输入 |
|---|---|
fflShareText(text, name?, ...) | 纯文本 |
fflShareBase64(dataB64, name?, ...) | 二进制数据(base64编码) |
fflShareFile(path, name?, ...) | 单个本地文件或文件夹 |
fflShareFiles(paths, name?, ...) | 多个文件(ffl自动将它们压缩到一个下载中) |
所有共享工具的常见选项:
| 选项 | 默认值 | 描述 |
|---|---|---|
e2ee | False | 端到端加密 |
qrInTerminal | False | 返回ASCII二维码艺术(qrCode 作为回应) |
authUser / authPassword | -- | HTTP基本身份验证以保护链接 |
maxDownloads | 1 | 下载N次后停止服务(仅P2P) |
timeoutSeconds | 1800 | 非活动超时(秒)(仅P2P) |
recipientAuth | — | pickup (6位代码), pubkey (RSA), pubkey+pickup,或 email (OTP) |
pickupCode | auto | 特定提货代码 pickup 模式 |
recipientPublicKey | -- | 路径 .fflpub 提交 pubkey 模式 |
recipientEmail | -- | 的电子邮件 email OTP模式,逗号分隔 |
alias | -- | 自定义链接别名,例如。 my-release (需要标准+帐户) |
receipt | -- | 收件人下载时的电子邮件通知 |
receiptConfirm | -- | 下载前需要收件人确认;传递消息或 "" |
forceRelay | False | 禁用WebRTC,通过隧道路由所有流量 |
port | -- | 本地HTTP服务器端口(默认情况下自动检测)。适用于固定隧道。 |
invite | False | 使用生成的共享链接在本地浏览器中打开ffl邀请页面。 |
enableReporting | False | 启用ffl诊断错误报告。默认情况下禁用。 |
upload | -- | 上传到FFL服务器而不是P2P--例如。 "1 day", "6 hours" (需要标准+帐户) |
resumeUpload | False | 恢复中断的上传 |
proxy | -- | 代理URL,例如。 socks5://127.0.0.1:9050 |
其他选项 fflShareFile / fflShareFiles:
| 选项 | 默认值 | 描述 |
|---|---|---|
preview | False | 为文件夹或多文件共享启用预览sidecar路由。返回的链接保持干净;添加 ?preview=true 当您想要浏览器预览视图时手动。 |
exclude | -- | 要排除的Glob或正则表达式模式,逗号分隔--例如。 *.pyc,__pycache__ 或 re:\.env$ |
pause | -- | 以1到99的百分比暂停服务器上载。需要 upload. |
vfs | False | 显示为VFS服务器(vfs:// URI)-- fflShareFile 只有 |
preferredTunnel | -- | 设置此运行和未来运行的首选隧道-- cloudflare, ngrok, bore等等。 |
预览侧车路线(/manifest, /file, /thumb)仅为创建 文件夹共享和多文件共享。单个文件共享用作直接文件 链接,即使在 preview=True.MCP返回基本FastFileLink URL 不追加 ?preview=true;用户可以手动添加该查询字符串。
响应字段: sessionId, link, pid, qrCode? (ASCII艺术时 qrInTerminal=True), debugLogPath?
下载中
fflDownload(url, outputPath?, resume?, authUser?, authPassword?,
recipientAuth?, pickupCode?, recipientPrivateKey?, proxy?,
enableReporting?)
-> {ok, returncode, outputPath?, transferMode?, transferInfo?, message?, ...}从FastFileLink URL(可能的话是WebRTC P2P,HTTP回退)或任何HTTP(S)URL(类似于wget)下载。
transferMode | 含义 |
|---|---|
webrtc_p2p | 直接对等(最快) |
http_fallback | WebRTC失败时的HTTP中继 |
http_direct | 常规HTTP下载(非FastFileLink URL) |
对于经过身份验证的链接:pass recipientAuth + pickupCode (拾取模式)或 recipientPrivateKey (公钥模式)。 集 enableReporting=True 只有当您想选择使用ffl诊断错误报告进行故障排除时。
注册机
fflKeygen(name?) -> {ok, returncode, output}为无密码生成RSA密钥对 pubkey 收件人身份验证:
.fflpub--与发件人共享(传递为recipientPublicKey).fflkey--保持私密(通行证为recipientPrivateKey下载时)
会话管理
fflListSessions()--列出活动共享会话fflStopSession(sessionId)--终止会话fflGetSession(sessionId)--获取会话详细信息fflGetSessionEvents(sessionId, limit=50)--检索webhook事件
______________________________________________________________________
备注
FFL_USE_STDIN=1避免将文本/base64有效载荷写入磁盘。FFL_RUN_MODE=python运行Core.py CLI(需要FFL_CORE_PATH).FFL_USE_HOOK=1启动本地webhook服务器并将其传递给ffl用于实时链接/进度事件。FFL_DEBUG=1将ffl输出保存到临时日志文件中;路径返回为debugLogPath.SetFFL_DEBUG=/path/to/log.txt使用固定路径。ALLOWED_BASE_DIR限制fflShareFile/fflShareFiles到一个特定的目录。
______________________________________________________________________
测试
# Unit + binary tests (no network needed)
python -m unittest discover -s tests -p "*Test.py" -v
# All tests including share/download round-trips (requires network)
FFL_INTEGRATION_TESTS=1 python -m unittest discover -s tests -p "*Test.py" -v______________________________________________________________________
WSL2用户
如果你遇到 TLSError([0x6300]) 错误,运行此命令以禁用Windows互操作 .com 文件夹:
sudo sh -c 'echo -1 > /proc/sys/fs/binfmt_misc/WSLInterop'这允许ffl.com(APE二进制文件)在Linux上本机运行,而不是通过Windows执行。
