mcpField
A
anon.li

anon.li

远程服务
anon.li安全92 天前更新

关于 anon.li

anon.li 是开源的隐私服务,提供邮件别名、端到端加密文件分享和加密表单。其 MCP 接口用于管理别名、收件人及加密文件投递的元数据。

主要功能

  1. 01创建并管理邮件别名
  2. 02设置别名收件人
  3. 03管理加密文件投递元数据
  4. 04浏览器端加密文件与表单内容

适用场景

  1. 01为不同服务使用独立邮件别名
  2. 02管理别名的邮件接收对象
  3. 03查看文件投递相关元数据

MCP 相关

anon.li 的 MCP 接口支持通过 OAuth 管理邮件别名、收件人和加密文件投递元数据。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://anon.li/api/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

anon.li 隐私工具包

开源邮箱别名、端到端加密文件共享和加密表单。默认保护隐私。

👋 欢迎!如果你更喜欢观看演示,请查看我们的 YouTube 上的 2 分钟介绍视频。

许可证:AGPL v3 GitHub 上的源代码


为什么选择 anon.li?

我们创建 anon.li,是因为我们厌倦了将敏感文件和真实邮箱地址交给黑箱公司。

  • 保护真实收件箱的邮箱别名——无需更换邮箱服务商。 继续使用 Gmail、Proton 或 Fastmail;我们只负责在中间拦截垃圾邮件。
  • 采用 AES-256-GCM 加密的文件共享——我们无法读取你的文件,这是设计如此。 文件在进入网络前,就已由浏览器加密。解密密钥位于 URL 片段中,因此绝不会传输到我们的服务器。
  • 加密表单——收集敏感回复,无需将明文存入数据库。 表单答案和附件会在提交者的浏览器中加密,供表单所有者或团队使用。
  • 开源 Web 应用(AGPL v3)——实现方式可供验证。 你可以在此代码仓库中审查浏览器加密、访问控制、REST API、MCP 服务和应用数据模型。

产品

Alias - 匿名邮件转发

为每项服务创建独立别名。使用别名回复邮件,同时绝不暴露真实身份。邮件会经过我们的服务器进行转发,而不会存储在托管邮箱中。

  • Free 套餐提供 10 个随机别名和 1 个自定义别名;Pro 套餐提供不限数量的随机别名和 100 个自定义别名
  • 通过 SRS 匿名回复
  • 可按收件人选择是否启用 PGP 加密
  • 付费套餐支持自定义域名
  • 在保险库中加密存储标签和备注
  • 一键停用,立即阻止垃圾邮件
Drop - 端到端加密文件共享

安全地共享文件。所有内容都在浏览器中使用 AES-256-GCM 加密。

  • 零知识架构
  • 自动过期(1–30 天)
  • 下载次数限制和密码保护
  • 文件预览也计为下载,因为预览会暴露完整的加密文件字节
  • 单次传输最高支持 250GB(Pro)
  • 收件人无需创建账户即可下载
Form - 端到端加密数据收集

创建表单,让回复在答题者的浏览器中加密。应用仅存储密文和加密后的所有者密钥;经过授权的所有者解锁保险库后,会在本地解密回复。

  • 支持文本、选项、评分、量表和文件上传字段
  • 支持个人所有者密钥和共享团队密钥
  • 在服务器端强制执行保留期限和提交次数限制
  • 在浏览器中加密导出 CSV/ZIP

重要

此代码仓库包含 Next.js Web 应用和控制平面。用于接收并转发别名邮件的生产 SMTP/Haraka 投递管道属于独立服务,不包含在此处。你可以在本地运行和开发 Alias 管理功能,但要实现端到端邮件转发,需要自备兼容的邮件传输服务。


快速入门

anon.li 是一个由集成服务支撑的应用;如果缺少必需的基础设施,它会有意快速失败。本地开发需要 Bun >= 1.4.3、Node.js 24,以及下列服务的凭据。

服务用途必需
PostgreSQL应用数据和加密元数据是
私有 Cloudflare R2 兼容存储桶Drop/Form 密文是
Upstash Redis REST速率限制、锁和 Webhook 幂等性是
Resend身份验证和事务性邮件是
Cloudflare Turnstile机器人防护是
Stripe账单客户端和 Webhook是
NOWPayments加密货币结账否
GitHub/Google OAuth可选登录提供商否
PostHog产品分析和错误报告否

PostgreSQL、R2 的 S3 兼容替代服务,以及兼容 Upstash 的 Redis REST 端点,都可以通过 docker compose up -d(或 podman compose)在本地运行;关于对应的 .env 值、Turnstile 测试密钥、Stripe CLI Webhook 和当前限制,请参阅本地开发指南。

git clone https://github.com/anondotli/anon.li.git
cd anon.li
bun install            # also generates the Prisma client
cp .env.example .env

# Fill every required value in .env, then apply the committed migrations
bun run db:migrate:deploy

# Start the development server
bun dev

打开 http://localhost:3000。空白的可选提供商变量会被规范化为禁用状态;必需变量会在启动时验证。请为 AUTH_SECRET、CRON_SECRET、IP_HASH_PEPPER、REPORT_ENCRYPTION_KEY 和 DKIM_ENCRYPTION_KEY 分别使用独立生成的值,具体说明见 .env.example。

更改 prisma/schema.prisma 时,请使用 bun run db:migrate --name concise_migration_name 创建迁移并提交。除临时数据库外,请避免运行 bun run db:push:它会跳过仅存在于迁移 SQL 中的对象(例如部分唯一索引 domains_domain_verified_key),并且不会留下迁移历史,因此无法再对该数据库运行 db:migrate:deploy。

创建拉取请求之前,请运行 CI 强制执行的相同检查:

bun run audit
bun run check  # lint, type-check, dead-code check, tests, and production build
生产环境部署

生产数据库必须使用已提交的 Prisma 迁移进行更新。请勿在生产环境中使用 prisma db push;它会绕过经过审核的迁移历史。

bun install --frozen-lockfile
bun run build
bun run db:migrate:deploy
bun run start

在部署平台上设置 .env.example 中记录的所有必需变量;应用迁移前备份数据库,并在启动新版本应用之前,每次发布运行一次 bun run db:migrate:deploy。构建命令会自动重新生成 Prisma 客户端。所有公开服务源地址都必须使用 HTTPS;仅环回开发端点可以使用普通 HTTP。

Vercel 部署还需要 CRON_SECRET 和 Upstash Redis。生产环境的计划任务有意限定为兼容 Hobby 计划的每日/每周表达式;有关计划、发布检查和故障处理,请参阅 cron 运维手册。

客户端 IP 速率限制只信任一个边缘节点。系统会自动检测 Vercel。在 Cloudflare 后方的可自托管源站上,请设置 TRUSTED_PROXY_PROVIDER=cloudflare,并将直接访问源站的流量限制为仅来自 Cloudflare 网络;否则,转发标头可能被伪造。

Cloudflare R2 一次性设置

anon.li Drop 通过 S3 预签名 URL,在浏览器与 R2 之间直接上传和下载 Blob 数据,避免服务器中转造成的瓶颈。下载 URL 的有效期较短;分段上传 URL 与上传 ID、分段编号和确切的加密字节长度绑定,有效期最长为 7 天,以便完成超大文件传输。

  1. 创建一个 R2 存储桶,并保持私有。禁用其公开的 r2.dev URL,且不要绑定公开的自定义域名。公开对象访问会绕过 Drop 的过期、撤销、收件人和下载次数限制检查。
  2. 创建具有该存储桶对象读写权限的 R2 API 凭证,然后在 .env 中设置 R2_ACCESS_KEY_ID、R2_SECRET_ACCESS_KEY、R2_BUCKET_NAME 和账户的 S3 API 端点(R2_ENDPOINT=https://<account_id>.r2.cloudflarestorage.com)。
  3. 配置存储桶的 CORS 规则,允许来自你的应用源站的 GET、HEAD 和 PUT 请求,并公开 ETag 响应标头。浏览器传输仍直接连接 R2;R2 不收取互联网出口流量费用。

Cloudflare 预签名 URL 支持 S3 API 域名,不支持自定义域名。请将私有存储桶访问视为安全要求,而不仅是部署偏好。

架构与信任边界

Browser (plaintext + keys)
  ├─ HTTPS → Next.js app (auth, policy, metadata, presigned capabilities)
  └─ presigned HTTPS → private R2 bucket (ciphertext only)

Next.js app
  ├─ PostgreSQL (accounts, policy metadata, ciphertext metadata, wrapped keys)
  └─ Redis REST (rate limits, locks, webhook idempotency)

External providers: Resend, Stripe, Turnstile, optional NOWPayments/PostHog/OAuth
Separate deployment: inbound/outbound alias mail transport
  • Drop 和 Form 内容在浏览器中使用 Web Crypto 加密。共享链接密钥保留在 URL 片段中,浏览器不会在 HTTP 请求中发送这些片段。
  • 应用服务器受信任,负责身份验证、授权、配额、过期、下载计数器和加密密钥分发。它绝不能接收普通的 Drop/Form 明文密钥。
  • R2 必须保持私有。客户端只有通过应用策略检查后,才能获取短时有效、针对特定操作的预签名 URL。
  • PostgreSQL 存储账户数据、策略元数据、密文元数据和封装密钥。Redis 对可用性和滥用敏感,因此 Redis 不可用时,安全关键限制会默认拒绝请求。
  • 别名转发并非零知识:兼容的邮件传输服务在转发消息时必然会处理消息内容。有关生产环境的数据保留模式,请参阅安全文档。

技术栈

Next.js 16(App Router) · React 19 · PostgreSQL + Prisma · Better Auth(魔法链接、邮箱/密码、TOTP 双重身份验证) · Cloudflare R2 · Stripe · Upstash Redis · Resend · Tailwind CSS + shadcn/ui

链接


法律与许可证

司法管辖区:列支敦士登 · 隐私政策 · 条款 · AUP · DMCA

GNU Affero 通用公共许可证 v3.0 - 版权所有 © 2026 anon.li。

评论

支持 Markdown

第一次接触 MCP?

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

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