mcpField
T
toss

toss

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

关于 toss

toss 是用于设备间点对点传输文件的应用,也提供面向 AI 助手的 MCP 接口。配对后可通过图形窗口、命令行或 MCP 发送文件,传输采用端到端加密,并由用户控制文件发送权限。

主要功能

  1. 01设备间点对点传输
  2. 02端到端加密传输
  3. 03图形界面与命令行操作
  4. 04通过 MCP 发送和接收文件
  5. 05传输前进行敏感文件确认
  6. 06支持自建中继

适用场景

  1. 01在个人设备间发送文件
  2. 02向朋友的设备传送文件
  3. 03让 AI 助手发送文件到配对设备
  4. 04通过手机浏览器收发文件

MCP 相关

`toss mcp` 为 AI 助手提供查看配对设备、发送文件和查看近期接收文件的工具。发送权限由 toss 控制,可要求用户确认;配对和设备管理仍由用户操作。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbtoss.mcpb

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

toss 标志:一个投出发光文件的人物

toss

将文件点对点发送到自己的设备和朋友的设备。无需输入 IP 地址,无需账号,文件也不会存放在服务器上。

只需用一个短代码配对一次,之后无论使用哪个网络,都能按名称投送文件。运行 toss 打开窗口:将文件拖到窗口中(或点击 投送),然后选择设备。关闭窗口后,toss 仍会在托盘中接收文件。右键点击托盘图标,可设置 toss 在登录时启动、将其与 Claude Code 配合使用,以及在 Windows 上将其添加到资源管理器的 发送到 菜单。(在 GNOME 上,托盘需要 AppIndicator 扩展。)

命令行中的操作也一样:

toss invite laptop                     # prints a code like 48213-otter-violin
toss join 48213-otter-violin desktop   # on the other device
toss send laptop report.pdf photos/ # files and folders
toss listen                         # receive (keep it running)

还可以使用 toss contacts、toss forget <name>、toss phone 和 toss relay。选择 always 可自动接受联系人。

手机,无需应用

点击 手机(或运行 toss phone [file]...),然后扫描二维码。手机浏览器会打开由你的电脑提供的页面:下载你提供的文件,并将文件发送回你的“下载”文件夹。

  • 仅限同一网络,且未加密:这是普通 HTTP,因为浏览器不信任家用电脑生成的证书。一次性密钥会保护链接;离开页面后链接失效,且只有第一个打开链接的浏览器能够访问。请在家中使用,不要在公共 Wi-Fi 上使用。
  • 首次使用时,请允许 toss 通过 Windows 防火墙。在 iPhone 上,下载的文件会存放在“文件”›“下载”中。

AI 助手(MCP)

toss mcp 可让 Claude 之类的助手向你的设备发送文件,例如:“把你刚做好的图表发到我的笔记本电脑”。它可以列出已配对的设备、向这些设备发送文件、将文件放到你的手机上(“把这个放到我的手机上”:toss 窗口会显示一个供扫描的二维码),还可以查看最近收到的文件(“打开我手机刚发来的照片”;为此,toss 会在自己的文件夹中保留最近 50 个收到的文件名)。除此之外别无其他:配对、移除设备和设置都由你掌控;每次传输仍需另一台设备上的用户接受,除非你允许它未经询问就从你的设备接收文件。toss 窗口会显示助手发送的内容。

助手读取的内容可能会影响它的行为,因此由 toss 决定哪些内容可以发送,而不是由助手决定。你指定文件夹中的文件会立即发送。其他文件,以及即使位于这些文件夹中、但看起来像机密的文件(密钥、.env、密码数据库),都会由 toss 亲自询问你:在一个助手或应用无法替你作答的独立窗口中询问,或者在没有屏幕的电脑上通过助手应用询问。询问时会显示文件的实际位置和将要发送的数据量。勾选 以后不再询问,即可从此允许发送某个文件夹中的内容;托盘会列出这些文件夹,点击某个文件夹即可将其移除。包含设备密钥的 toss 自身文件夹永远不会发送。toss 通过文件名而非内容识别机密,因此请勿将其他机密放在你允许发送的文件夹中。关于此机制如何应对提示注入的测试,涵盖五个开源模型(允许访问一个项目文件夹,在 224 次注入测试中没有泄露任何内容,但部分模型大多数时候都中了注入的招):evals/injection。

Claude Code:在 Windows 上安装后,toss 会自动添加自身(托盘菜单:与 Claude Code 配合使用),并在每次发送前征求你的同意。手动添加:claude mcp add toss -- toss mcp ~/projects。Claude Desktop:从 Releases 下载 toss.mcpb,打开后选择文件夹。其他助手(Cursor 等)可将其添加到 MCP 配置中:

{ "mcpServers": { "toss": { "command": "toss", "args": ["mcp", "/path/to/projects"] } } }

如果助手支持,发送操作会作为任务运行,因此等待他人接受时不会超时。传输文件时会显示进度;若发送取消,下次会继续。它已作为 io.github.plamen-g/toss 收录在 MCP Registry 中。

隐私

传输采用端到端加密(QUIC 使用 TLS 1.3 和后量子 X25519 + ML-KEM-768 密钥交换):只有接收设备能读取你的文件,甚至连文件名也看不到。其他人只能看到你在传输这一事实:

对象可见信息
另一台设备你的 IP 地址
n0,toss 默认使用其免费服务连接设备你的 IP 和设备 ID、哪些设备在何时连接,以及经其中继传输的数据量
你的互联网服务提供商或 Wi-Fi加密流量及其大小
拦截你 Wi-Fi 的任何人(针对手机页面)文件:该页面没有加密
GitHub,toss 会在启动时和每天检查更新你的 IP 和 toss 的版本

减少泄露的信息:

  • 运行自己的中继服务(见下文),toss 就不会联系 n0。没有自己的中继服务时,即使设备在同一 Wi-Fi 下,也会通过 n0 查找彼此。
  • 已移除的设备仍知道你的设备 ID,因此可以看到你何时在线。删除 toss 配置文件夹中的 key 文件以创建新身份,然后重新配对。
  • 配对码就像一张票:谁先使用,谁就会完成配对;错误猜测则会让配对码失效。只通过语音或你信任的渠道,把配对码给你指定的人。
  • macOS 和 Linux 不会将接收的文件标记为已下载,因此这里的窗口会提供“在文件夹中显示”,而不是“打开”。

安装

最快的方法,无需处理安全提示:在 Windows 上将一行命令粘贴到 PowerShell,或在 Mac 上粘贴到终端。它会从此仓库下载最新版本并安装,因此只有在信任此仓库时才运行。

irm https://raw.githubusercontent.com/plamen-g/toss/master/install.ps1 | iex
curl -fsSL https://raw.githubusercontent.com/plamen-g/toss/master/install.sh | sh

或者下载:

**Windows:**下载 toss-windows-x86_64.exe 并打开:toss 会自行安装,并在开始菜单中创建入口、设置为登录时启动;如果你安装了 Claude Code,也会为其配置。打开较新版本的下载文件即可更新。它目前尚未签名,因此 Windows 会先发出提示:点击“更多信息” →“仍要运行”。

**Mac:**下载 toss-macos.dmg(适用于任何 Mac),打开后将 toss 拖到 Applications 中。它目前尚未通过 Apple 签名,因此 macOS 首次不会打开它:前往“系统设置” →“隐私与安全性”,然后点击“仍要打开”。在终端中,其路径为 /Applications/toss.app/Contents/MacOS/toss。

**Linux:**将 Releases 中的 toss 放到 PATH 中。

有新版本时,托盘菜单会提供 Update to 选项。在 Windows 和 Mac 上,toss 会下载更新、使用 toss 的发布密钥验证其签名,然后以新版本重新启动;在 Linux 上,它会打开发布页面。

要构建它:cargo build --release(约 14 MB)。在 Mac 上,随后运行 sh macos/bundle.sh,会生成 target/release/toss.app 和 toss-macos.dmg。

密钥和联系人保存在 %APPDATA%\toss、~/.config/toss 或 ~/Library/Application Support/toss 中,也可能保存在 TOSS_HOME 指向的位置。

使用自己的中继服务

在具有主机名的服务器上运行 iroh-relay(iroh-relay --config-path relay.toml,开放 TCP 80 和 443 端口以及 UDP 7842 端口):

enable_relay = true
enable_quic_addr_discovery = true
access.shared_token = ["<long random token>"]  # only your devices may use it

[tls]
hostname = ["relay.example.com"]
cert_mode = "LetsEncrypt"
contact = "[email protected]"

然后在每台设备上运行:toss relay https://relay.example.com <token>,或部署它生成的 relay.json。运行 toss relay off 即可撤销设置。设备只能通过同一个中继服务互相连接。

常驻接收端

与服务器配对一次,选择始终,并保持 toss listen 运行;如果没有人响应,则只有自动接受的联系人可以连接。

# /etc/systemd/system/toss.service, then: systemctl enable --now toss
[Unit]
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/toss listen
Restart=on-failure
StandardInput=null

[Install]
WantedBy=multi-user.target

工作原理

  • 基于 iroh 构建:设备即其公钥。条件允许时,连接会直接穿过 NAT;否则会通过加密中继。
  • 每次连接建立时,都会对其 TLS 密钥进行签名,因此联系人无法伪造或重放。配对码很短:数字表示两台设备在哪里会合,两个单词则通过 SPAKE2(一种基于密码的身份验证密钥交换)进行验证,因此监听者一无所获,而猜测只有 65,536 分之一的成功机会。
  • 接收的文件无法保存到 Downloads 目录之外,不会覆盖任何文件(使用 name (1).ext),文件名兼容所有操作系统,并且在 Windows 上会带有“从互联网下载”的标记。陌生人会被拒之门外,并且会先检查可用空间。
  • 大文件会以 256 KB 为单位进行流式传输,因此无论文件多大,内存占用都保持在约 10 MB。传输中断后,再次发送相同文件即可恢复;恢复前,双方会比较已接收内容的 BLAKE3 哈希。未完成的文件会暂存在 Downloads/.toss-incoming 中;可手动删除放弃的文件。

尚未实现

附近设备发现、macOS 下载标记、Wayland 上的拖放。

采用 MIT 许可证。显示字体:Bricolage Grotesque(SIL Open Font License,assets/OFL-BricolageGrotesque.txt)。

评论

支持 Markdown

第一次接触 MCP?

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

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