yafl について
yafl は、マシン間のファイル転送を行う Agent 向けの MCP サーバーと CLI クライアントです。ファイルはクライアント側で暗号化され、共有リンクは最長 24 時間で失効します。
主な機能
- 01クライアント側の AES-256-GCM 暗号化
- 02ファイルやディレクトリのアップロードとリンク作成
- 03ファイルのダウンロードと復号
- 04転送状態と残り時間の確認
- 05共有リンクの管理、失効、メール送信
活用シーン
- 01ノート PC と VPS 間のファイル転送
- 02別々のマシンで動く Agent 間のファイル受け渡し
- 03一度だけ使えるリンクでのファイル共有
- 04セッション中の共有リンクのメール送信
MCP 対応
アップロード、ダウンロード、状態確認、転送一覧、削除、リンクのメール送信、ログイン用のツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
7掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| path | string | はい | アップロードするローカルファイルまたはディレクトリの絶対パス、または cwd からの相対パス |
| oneTime | boolean | いいえ | true の場合、初回のダウンロード成功後にリンクは無効になり、2 回目のダウンロード試行では not_found 形式のエラーが返されます。デフォルトは false です(通常の 24 時間の有効期限までリンクは有効です)。 |
| password | string | いいえ | リンクを保護するための任意のパスワードです。クライアント側で新しい salt を使って復号キーに組み込まれ、API に送信されることはありません。設定した場合、返されたリンクの復号には同じパスワードが必要です。 |
詳細
YAFL — Yet Another File Layer(MCP サーバー+CLI)
AI エージェントは、1 回の MCP 呼び出しでマシン間のファイルを移動できます。クライアント側で暗号化され、リンクは 24 時間で無効になります。
このリポジトリは、YAFL のオープンソース MCP サーバーと CLI クライアントです。エージェント(Claude Desktop、Claude Code、Cursor、リモート VPS 上のエージェントを含むあらゆる MCP クライアント)が、1 回のツール呼び出しで環境間(ノート PC ↔ VPS、エージェント ↔ エージェント)にファイルを受け渡せます。人間がファイルを WeTransfer にドラッグし、リンクをコピーして回る必要はありません。ファイルはマシンから外に出る前に暗号化され、サービスが目にするのは暗号文だけです。
クライアントはオープンソースなので、ファイルにアクセスするものを正確に監査できます。YAFL サービスは yafl.dev で提供されています。
インストール
MCP クライアントの設定に YAFL を追加します:
{
"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 バンドルをインストールできます。CLI を使う場合:
curl -fsSL https://yafl.dev/install.sh | sh
開始時に API キーは必要ありません。最初のツール呼び出し時に、サーバーは yafl login を案内するエラーを返します。これは RFC 8628 デバイスフローです。エージェントが短いコードを表示し、ブラウザーで承認すると、エージェント専用の取り消し可能なキーが発行されます。ヘッドレス環境向けに設計されています。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 } | 有効期限前に、自身の転送を 1 件取り消します。 |
email_link | { link, recipient } | 共有リンクを受信者に直接メール送信します。セッションを離れずにエージェントから人間へ受け渡せます。 |
login | device flow | このエージェントを認証します(RFC 8628)。エージェント専用の取り消し可能なキーが発行されます。 |
エラーは安定した機械可読形式です。エージェントには原因不明の 404 ではなく、expired や not_found が返されます。
暗号化の仕組み
ファイルはアップロード前に、新しく生成された AES-256-GCM キーで暗号化されます。キーは共有 URL の #fragment にのみ含まれます。ブラウザーがフラグメントをサーバーに送信することはないため、サーバーに送信、記録、保存されることはありません。オプションのリンクパスワードを設定すると、サーバーには見えない第 2 の派生レイヤーが追加されます。また、ワンタイムリンクは最初のダウンロードが成功すると自動的に無効になります。ファイルのバイトデータは、署名付き URL を介してストレージに直接送られます。アプリサーバーがファイルを処理することはなく、ストレージが受け取るのも暗号文だけです。アクセスは 24 時間で終了します。無料プランでは、1 ファイルあたり 100 MB まで利用できます。
エージェントのキーが漏えいした場合
API キーは復号キーではありません。マシンが侵害されて YAFL キーが盗まれた場合でも、攻撃者が確認できるのは、そのキー自身の転送に関する暗号文のメタデータまでです。復号キーは交換したリンクにしか存在しないため、ファイルの内容を読み取ることはできません。キーを取り消して、作業を続けてください。このため、推奨される設定はエージェントごと、マシンごとに 1 つのキーを使用することです。キーには名前を付けられ、個別に取り消せます。
リンク
- ウェブサイト:https://yafl.dev
- MCP ガイド:https://yafl.dev/mcp
- セキュリティ/脅威モデル:https://yafl.dev/security
- npm:
@yafldev/mcp·@yafldev/cli
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。