mcpField
Y
yafl

yafl

本地服务
github.com/yafldev文件与存储013 周前更新

关于 yafl

yafl 是面向 Agent 的 MCP 服务和命令行客户端,用于在机器间传输文件。文件在客户端加密,分享链接最长保留 24 小时。

主要功能

  1. 01客户端 AES-256-GCM 加密
  2. 02上传文件或目录并生成链接
  3. 03下载并解密文件
  4. 04检查传输状态和剩余时间
  5. 05管理、撤销及邮件分享链接

适用场景

  1. 01在笔记本与 VPS 间传文件
  2. 02在不同机器上的 Agent 间传递文件
  3. 03通过一次性链接分享文件
  4. 04在会话中将文件链接发给收件人

MCP 相关

它通过 MCP 向客户端提供上传、下载、状态查询、文件列表、删除、邮件分享和登录工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dev-yafl": {
"command": "npx",
"args": [
"-y",
"@yafldev/mcp"
],
"env": {
"YAFL_API_KEY": "<YAFL_API_KEY>"
}
}
}
}
启动命令npx -y @yafldev/mcp
需要配置的环境变量
YAFL_API_KEY密钥API key for authenticated transfers. Optional — omit and run `yafl login` (device flow) instead.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@yafldev/mcp0.1.6

工具

7

收录的工具列表 · 更新于 2 周前

参数类型必填说明
pathstring是要上传的本地文件或目录的绝对路径或相对于 cwd 的路径
oneTimeboolean否为 true 时,链接会在首次成功下载后销毁;再次尝试下载会返回 not_found 样式的错误。默认为 false(链接会在正常的 24 小时有效期内保持可用)。
passwordstring否用于保护链接的可选密码。客户端会通过新生成的 salt 将其合并到解密密钥中,绝不会传输到 API。设置后,必须使用相同密码才能解密返回的链接。

详细介绍

YAFL — 又一个文件层(MCP 服务 + CLI)

你的 AI Agent 只需调用一次 MCP 工具,即可在不同机器间传输文件——客户端加密,链接 24 小时后失效。

此仓库是 YAFL 的开源 MCP 服务和 CLI 客户端。你的 Agent(Claude Desktop、Claude Code、Cursor,以及任何 MCP 客户端——包括运行在远程 VPS 上的 Agent)可以在不同环境间传递文件——笔记本 ↔ VPS、Agent ↔ Agent——只需调用一次工具,无需人工将文件拖到 WeTransfer 再四处复制链接。文件离开你的设备前会先在本地加密;服务只能看到密文。

客户端采用开源方式,因此你可以审查究竟有哪些内容会接触你的文件。YAFL 服务托管于 yafl.dev。

安装

将 YAFL 添加到你的 MCP 客户端配置中:

{
  "mcpServers": {
    "yafl": {
      "command": "npx",
      "args": ["-y", "@yafldev/mcp"],
      "env": { "YAFL_API_KEY": "<your key — or leave unset and run yafl login>" }
    }
  }
}

适用于 Claude Desktop、Claude Code、Cursor 和任何 MCP 客户端。Claude Desktop 用户可以一键安装 .mcpb bundle。更喜欢使用 CLI?请运行:

curl -fsSL https://yafl.dev/install.sh | sh

开始使用无需 API 密钥。首次调用工具时,服务会返回引导式错误,提示运行 yafl login——这是一个 RFC 8628 设备流程:Agent 会显示一个短代码,你在浏览器中批准后,Agent 就会持有自己的可撤销密钥。专为无头设备打造。通过 npx 运行(Node.js 18+),无需全局安装。

工具

工具调用功能
upload_file{ path, password?, oneTime? }在客户端加密、上传密文,并返回共享链接。会先将目录打包为 ZIP。可选密码保护层;也可创建一次性链接,首次下载后即失效。
download_file{ url, destDir?, password? }获取并解密文件,然后将其写入本地磁盘。
get_status{ url }检查链接是否有效以及剩余 TTL——不会下载任何字节。
list_files{ limit? }调用方自己的传输记录,仅含元数据。
delete_file{ id | url }在过期前撤销你的一项传输。
email_link{ link, recipient }直接向收件人发送共享链接——在不中断会话的情况下,将内容从 Agent 交接给人类。
login设备流程授权此 Agent(RFC 8628);该 Agent 将持有自己的可撤销密钥。

错误信息稳定且机器可读——你的 Agent 会收到 expired 或 not_found,而不是含糊不清的 404。

加密方式

文件会在上传前使用新生成的 AES-256-GCM 密钥加密。密钥仅存在于共享 URL 的 #fragment 中——浏览器不会将片段发送给服务端,因此它不会传输到、记录在或存储于任何服务端。可选的链接密码会增加第二层派生加密,服务端同样无法看到;一次性链接则会在首次成功下载后自毁。文件字节通过预签名 URL 直接传输到存储服务;应用服务端不会处理这些字节,存储服务收到的也始终只有密文。访问权限在 24 小时后失效。免费套餐:每个文件最大 100 MB。

如果 Agent 的密钥泄露,会发生什么

API 密钥不是解密密钥。如果某台机器遭到入侵,其 YAFL 密钥被盗,攻击者最多只能看到该密钥所属传输的密文元数据——文件内容仍然无法读取,因为解密密钥只存在于你交换的链接中。撤销该密钥,然后继续使用即可。因此建议每个 Agent、每台机器使用一个密钥——密钥可命名,并且可以单独撤销。

链接

许可证

MIT——详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。