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フラグメントに保存されるため、サーバーに送信されることはありません。
  • 暗号化フォーム。データベースに平文を保存せずに、機密性の高い回答を収集できます。 フォームの回答と添付ファイルは、フォームの所有者またはチーム向けに、回答者のブラウザーで暗号化されます。
  • オープンソースのウェブアプリケーション(AGPL v3)。実装を検証できます。 このリポジトリで、ブラウザーの暗号化、アクセス制御、REST API、MCP サーバー、アプリケーションのデータモデルを監査できます。

製品

Alias - 匿名メール転送

サービスごとに固有のエイリアスを作成できます。実際の身元を明かさずに、エイリアスから返信できます。メールはホスト型メールボックスに保存されず、転送のためにサーバーを経由します。

  • Freeプランではランダムエイリアス10個+カスタムエイリアス1個、Proプランではランダムエイリアス無制限+カスタムエイリアス100個
  • SRSを使った匿名返信
  • 受信者ごとのPGP暗号化(任意)
  • 有料プランではカスタムドメインに対応
  • 保管庫内の暗号化されたラベルとメモ
  • ワンクリックで無効化し、スパムを即座に停止
Drop - エンドツーエンド暗号化ファイル共有

ファイルを安全に共有できます。すべてのファイルはブラウザーでAES-256-GCMを使って暗号化されます。

  • ゼロ知識アーキテクチャ
  • 自動有効期限(1〜30日)
  • ダウンロード回数制限とパスワード保護
  • ファイルプレビューは暗号化されたファイルの全バイトを公開するため、ダウンロード回数に含まれます
  • 1回の転送につき最大250GB(Pro)
  • 受信者はアカウントを作成せずにダウンロード可能
Form - エンドツーエンド暗号化データ収集

回答者のブラウザーで回答を暗号化するフォームを作成できます。アプリケーションには暗号文と暗号化された所有者キーが保存されます。認可された所有者は、保管庫のロックを解除した後、ローカルで回答を復号します。

  • テキスト、選択肢、評価、スケール、ファイルアップロードの各フィールド
  • 所有者ごとの暗号化キーとチーム共有の暗号化キー
  • データ保持期間と送信数の制限をサーバー側で適用
  • ブラウザーで暗号化したCSV/ZIPエクスポート

重要

このリポジトリには、Next.jsウェブアプリケーションとコントロールプレーンが含まれています。本番環境の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 を開きます。空欄のオプションプロバイダー変数は無効として正規化され、必須変数は起動時に検証されます。.env.example に記載されているとおり、AUTH_SECRET、CRON_SECRET、IP_HASH_PEPPER、REPORT_ENCRYPTION_KEY、DKIM_ENCRYPTION_KEY には、それぞれ個別に生成した値を使用してください。

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 のレート制限では、信頼するエッジは 1 つのみです。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 2FA)・Cloudflare R2・Stripe・Upstash Redis・Resend・Tailwind CSS + shadcn/ui

リンク


法務およびライセンス

管轄区域:リヒテンシュタイン・プライバシーポリシー・利用規約・AUP・DMCA

GNU Affero General Public License v3.0 - Copyright © 2026 anon.li.

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。