transfa について
transfa は開発者と AI エージェント向けのファイル共有サービスで、コマンドライン、REST API、MCP サーバーから利用できます。アカウント登録なしでアップロードしてリンクを取得でき、SHA-256 チェックサムと有効期限の設定に対応しています。
主な機能
- 01ターミナルから一つのコマンドでアップロード
- 02ファイルごとの SHA-256 チェックサムを返却
- 03パスワード、ダウンロード上限、有効期限を設定
- 04スクリプトやエージェント向けの JSON REST API
- 05100 種類以上の形式を自動判定
活用シーン
- 01CI のビルド成果物やレポートのアップロード
- 02AI エージェントが生成したファイルの共有
- 03スクリプトから大容量のモデルファイルを配布
MCP 対応
transfa は MCP サーバーを提供し、Claude や Cursor などの MCP クライアントに upload、file_info、list_uploads、delete_upload、run_artifacts のツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y transfa-mcpTRANSFA_API_KEYシークレットYour Transfa API key. Free at transfa.sh — leave empty for guest mode (10 MB limit).TRANSFA_BASE_URLCustom Transfa instance URL for self-hosted deployments. Defaults to https://transfa.shローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | いいえ | 受信者に表示するファイル名を上書きします |
| once | boolean | いいえ | 初回ダウンロード後に削除します |
| path | string | はい | アップロードするファイルのパス |
| grace | string | いいえ | 有効期限後の猶予期間。例: "12h" — TTL 終了後も、この期間中はファイルをダウンロードできます |
| expires | string | いいえ | TTL: "1h"、"24h"、"7d"、"30d"。デフォルト: 7d |
| password | string | いいえ | リンクをパスワードで保護します |
| max_downloads | number | いいえ | 最大ダウンロード回数 |
詳細
開発者やAIエージェントのための、シンプルなファイル共有。
1つのコマンドでアップロード。リンクで共有。アカウントは不要です。
$ tf upload model.gguf
✓ Uploaded model.gguf (4.2 GB) → https://transfa.sh/f/xK9mRp
SHA-256 a3f8c2...d91b
Expires in 7 days
transfa を選ぶ理由
ほとんどのファイル共有ツールは、人がUIを操作することを前提に作られています。transfa はターミナル向けに作られており、シェルスクリプト、CI パイプライン、そしてファイルを手間なく転送する必要がある AI エージェント(Claude、GPT、Cursor など)から呼び出せるように設計されています。
- サインアップ不要 — インストールしてアップロードするだけです
- あらゆる形式、あらゆるサイズ — 最大100 GB。ML モデル、アーカイブ、バイナリ、コード、メディアに対応
- エージェント向けに設計 — JSON API、SHA-256 チェックサム、冪等性のあるアップロード
- パスワード保護、ダウンロード回数制限、TTL — すべてのリンクを細かく制御できます
- 100種類以上の形式を検出 —
.gguf、.safetensors、.parquet、.ipynbなどを含む MIME タイプの自動検出
インストール
Node.js / CLI
npm install -g transfa
Python SDK
pip install transfa
MCP サーバー(Claude、Cursor、あらゆる MCP 互換エージェント)
npx -y transfa-mcp
または、未加工のインストールスクリプトを使用します:
curl -fsSL https://transfa.sh/install | sh
クイックスタート
# Upload a file (no account needed)
tf upload photo.jpg
# Upload with custom TTL and password
tf upload secret.zip --ttl 24h --password hunter2
# Upload and pipe the URL to clipboard
tf upload bundle.tar.gz | grep url | awk '{print $2}' | pbcopy
# Download a file
tf download https://transfa.sh/f/xK9mRp
# List your uploads
tf list
# Delete an upload
tf delete xK9mRp
GitHub Actions
ビルド成果物、カバレッジレポート、その他の CI 出力をワークフローから直接アップロードできます。
- uses: colapsis/transfa-action@v1
id: upload
with:
file: ./dist/report.pdf
api-key: ${{ secrets.TRANSFA_API_KEY }}
- run: echo "${{ steps.upload.outputs.agent-link }}" >> $GITHUB_STEP_SUMMARY
5つの出力はすべて、ステップの実行後に利用できます:id、agent-link、human-link、sha256、expires-at。
すべての入力項目のリファレンスと追加の例(パスワード保護リンク、セルフホストインスタンス、ダウンロード1回限りの制限)については、colapsis/transfa-action を参照してください。
API
transfa は完全な REST API です。CLI で実行できるすべての操作は、curl または任意の HTTP クライアントでも実行できます。
アップロード
curl -X POST https://transfa.sh/api/upload \
-H "Authorization: Bearer $TF_KEY" \
-F "[email protected]" \
-F "ttl=7d"
{
"id": "xK9mRp",
"url": "https://transfa.sh/f/xK9mRp",
"download_url": "https://transfa.sh/api/download/xK9mRp",
"filename": "model.gguf",
"bytes": 4512345678,
"sha256": "a3f8c2...d91b",
"expires_at": "2026-05-21T12:00:00.000Z"
}
アップロードオプション(フォームフィールドまたはヘッダー):
| フィールド | ヘッダー | 説明 |
|---|---|---|
ttl | X-Transfa-TTL | 有効期限:1h、24h、7d、30d |
password | — | ダウンロードリンクをパスワードで保護します |
max_downloads | — | 指定した回数のダウンロード後に無効化します |
filename | X-Transfa-Filename | 保存するファイル名を上書きします |
ダウンロード
# Direct download (no auth required)
curl -L https://transfa.sh/api/download/xK9mRp -o model.gguf
# Password-protected
curl -L "https://transfa.sh/api/download/xK9mRp?password=hunter2" -o secret.zip
ファイル情報
curl https://transfa.sh/api/download/info/xK9mRp
{
"id": "xK9mRp",
"filename": "model.gguf",
"bytes": 4512345678,
"sha256": "a3f8c2...d91b",
"mime_type": "application/octet-stream",
"download_count": 3,
"has_password": false,
"expires_at": "2026-05-21T12:00:00.000Z",
"active": true
}
アップロード一覧
curl https://transfa.sh/api/upload \
-H "Authorization: Bearer $TF_KEY"
削除
curl -X DELETE https://transfa.sh/api/upload/xK9mRp \
-H "Authorization: Bearer $TF_KEY"
対応形式
標準の MIME データベースに含まれない形式も含め、100種類以上のファイル形式を正しく MIME 検出します。
| カテゴリ | 形式 |
|---|---|
| ML モデル | .gguf .ggml .safetensors .onnx .pt .pth .pkl .ckpt .tflite .mlmodel .lora |
| データサイエンス | .parquet .arrow .feather .h5 .hdf5 .npz .npy .lance .duckdb .ipynb |
| コード | .py .rs .go .ts .kt .swift .scala .cu .sol .vy .elm .zig |
| アーカイブ | .zip .tar .gz .bz2 .xz .7z .zst |
| 3D / デザイン | .glb .gltf .obj .stl .usdz .blend .fig .sketch .psd |
| メディア | .avif .webp .heic .jxl .opus .flac .webm .av1 |
| 設定 | .toml .hcl .tf .tfvars .nix .dhall .lock .env |
| その他すべて | .wasm .sqlite .db .pem .crt .p12 +すべての標準形式 |
その他の形式も application/octet-stream として受け付けます。ブロックされる形式はありません。
プラン
| ゲスト | 無料 | Pro | Team | |
|---|---|---|---|---|
| 最大ファイルサイズ | 10 MB | 500 MB | 50 GB | 100 GB |
| 1日あたりのアップロード数 | 5 | 20 | 500 | 5,000 |
| 最大TTL | 24h | 48h | 30 days | 180 days |
| ストレージ | — | — | 無制限 | 無制限 |
| 料金 | 無料 | 無料 | $12/mo | $48/mo |
| トライアル | — | — | 3-day free trial | 3-day free trial |
MCP サーバー(Claude、Cursor、およびすべてのMCP互換エージェント)
transfaには MCP サーバーが付属しており、Claude、Cursor、およびすべてのMCP互換エージェントが、シェルコマンドやインフラストラクチャのセットアップなしで、自律的にファイルをアップロードして共有できます。
npx -y transfa-mcp
Claude Desktopの設定
~/Library/Application Support/Claude/claude_desktop_config.jsonに追加します。
{
"mcpServers": {
"transfa": {
"command": "npx",
"args": ["-y", "transfa-mcp"],
"env": {
"TRANSFA_API_KEY": "your-api-key"
}
}
}
}
APIキーは任意です。キーがなくてもゲストモードでサーバーを利用できます(上限は10 MB / 24hです)。
利用可能なMCPツール
| ツール | 説明 |
|---|---|
upload | ローカルファイルシステムからファイルをアップロードします。agent_link(直接URL)、human_link(共有ページ)、sha256を返します。来歴情報としてrun_id、step、consumer、intentを指定できます。 |
file_info | アップロードに関するメタデータ(ファイル名、サイズ、SHA-256、有効期限、ダウンロード数、来歴フィールド)を取得します。 |
list_uploads | 最近のアップロードを一覧表示します(APIキーが必要です)。 |
delete_upload | アップロードをただちに削除します。 |
run_artifacts | run_idのもとでアップロードされたすべてのファイルを取得します。パイプラインの実行またはエージェントセッションに関する来歴マニフェスト全体を確認できます。 |
エージェントのワークフロー例
ClaudeでtransfaをMCPツールとして使うと、次のことができます。
- レポートを生成 →
uploadを呼び出す → リンクを取得する → 会話にリンクを貼り付ける agent_linkを共有して、別のエージェントにファイルを渡す- 完了したら
delete_uploadでクリーンアップする
Python SDK
import transfa
# Upload
result = transfa.upload("model.pt", ttl="24h", run_id="run-42", artifact=True)
print(result.url, result.sha256)
# Download (SHA-256 verified)
transfa.download(result.id, output="model.pt")
# Provenance manifest for a run
manifest = transfa.run_artifacts("run-42")
# Async
async with transfa.AsyncClient() as client:
result = await client.upload("model.pt")
APIリファレンスの全容については、python/README.mdを参照してください。
AIエージェントでの利用(スクリプト/サブプロセス)
transfaは、シェルスクリプト、CIパイプライン、サブプロセス呼び出しを優先するエージェントから利用することも想定して設計されています。
import subprocess, json
result = subprocess.run(
["tf", "upload", "output.csv"],
capture_output=True, text=True
)
data = json.loads(result.stdout)
print(data["url"]) # https://transfa.sh/f/xK9mRp
または、REST APIを直接利用できます。SDKも認証フローも不要で、HTTPだけで利用できます。
セルフホスト
git clone https://github.com/colapsis/transfa.git
cd transfa
cp .env.example .env # fill in your keys
npm install --prefix server
npm install --prefix cli
npm run build --prefix frontend
pm2 start ecosystem.config.cjs
要件: Node.js 18+、nginx(SSL/プロキシ用)
本番環境ですぐに使えるnginx設定については、nginx/transfa.confを参照してください。
環境変数
| 変数 | 説明 |
|---|---|
PORT | サーバーポート(デフォルト:3001) |
BASE_URL | 公開URL(例:https://transfa.sh) |
STRIPE_SECRET_KEY | 請求用のStripeシークレットキー |
STRIPE_WEBHOOK_SECRET | Stripeウェブフック署名シークレット |
STRIPE_PRO_PRICE_ID | ProプランのStripe価格ID |
STRIPE_TEAM_PRICE_ID | TeamプランのStripe価格ID |
セキュリティ
脆弱性を発見した場合は、[email protected]にメールするか、SECURITY.mdを参照してください。
セキュリティに関する報告を公開Issueとして投稿しないでください。
ライセンス
MIT — © 2026 transfa contributors
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
