Transfa

io.github.colapsis由 GitHub 账号 colapsis 发布v1.0.1更新于 Oct 24, 2026

Upload any file, get a signed link. SHA-256 verified, TTL-enforced, no account required.

已验证STDIO仅桌面文件与存储开发者工具

概览

AI 生成的概览

让助手把本地文件上传到 Transfa 文件分享服务,并返回带 SHA-256 校验值、会过期的签名下载链接。

可以做什么
该服务器提供上传本地文件并返回直链、分享页和 SHA-256 校验值的工具;查询上传文件的元数据(文件名、大小、校验值、过期时间、下载次数、来源字段);列出最近的上传;立即删除某个上传;以及按 run_id 取回一次运行或会话下的全部文件清单。上传时可附带 run_id、step、consumer、intent 等来源信息。链接受有效期限制,也可设置密码或限制下载次数。
适用场景
适合助手需要把生成的文件、报告、模型或构建产物交给他人或另一个助手,又不想自建存储的场景。也适用于脚本、CI 和智能体流程中需要可分享链接和校验值的文件传递。
运行要求
以 stdio 方式在本机运行,通常用 npx transfa-mcp 启动,因此需要 Node.js。API 密钥可选:设置 TRANSFA_API_KEY 可使用列出上传等账户功能;不设置则以访客模式运行,限制为 10 MB。可用 TRANSFA_BASE_URL 指向自建实例,默认使用官方服务。需要能访问 Transfa 服务的网络。
安装前请注意
上传的文件会离开本机并保存在第三方服务上,不要上传密钥或敏感数据。API 密钥通过 TRANSFA_API_KEY 传入,应作为凭据妥善保管。上传会生成在过期前可被访问的链接,delete_upload 会立即删除上传内容。更大文件和更长保留时间需要付费方案。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Transfa,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[transfa]

Dead-simple file sharing for developers and AI agents.
Upload with one command. Share with a link. No account required.

[npm version] [npm downloads] [node version] [MIT License] [Hosted service]


$ tf upload model.gguf✓ Uploaded  model.gguf  (4.2 GB)  →  https://transfa.sh/f/xK9mRp  SHA-256    a3f8c2...d91b  Expires    in 7 days

Why transfa?

Most file-sharing tools are built for humans clicking through UIs. transfa is built for the terminal — designed to be called from shell scripts, CI pipelines, and AI agents (Claude, GPT, Cursor, etc.) that need to move files without friction.

  • No signup required — just install and upload
  • Any format, any size — up to 100 GB; ML models, archives, binaries, code, media
  • Built for agents — JSON API, SHA-256 checksums, idempotent uploads
  • Password protection, download limits, TTL — full control over every link
  • 100+ formats detected — MIME type auto-detection including .gguf, .safetensors, .parquet, .ipynb, and more

Install

Node.js / CLI

bash
npm install -g transfa

Python SDK

bash
pip install transfa

MCP server (Claude, Cursor, any MCP-compatible agent)

bash
npx -y transfa-mcp

Or use the raw install script:

bash
curl -fsSL https://transfa.sh/install | sh

Quick start

bash
# Upload a file (no account needed)tf upload photo.jpg
# Upload with custom TTL and passwordtf upload secret.zip --ttl 24h --password hunter2
# Upload and pipe the URL to clipboardtf upload bundle.tar.gz | grep url | awk '{print $2}' | pbcopy
# Download a filetf download https://transfa.sh/f/xK9mRp
# List your uploadstf list
# Delete an uploadtf delete xK9mRp

GitHub Actions

Upload build artifacts, coverage reports, and any CI output straight from your workflow:

yaml
- 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

All five outputs are available after the step: id, agent-link, human-link, sha256, expires-at.

See colapsis/transfa-action for the full input reference and more examples (password-protected links, self-hosted instances, single-download limits).


API

transfa is fully REST. Every operation the CLI does, you can do with curl or any HTTP client.

Upload

bash
curl -X POST https://transfa.sh/api/upload \  -H "Authorization: Bearer $TF_KEY" \  -F "[email protected]" \  -F "ttl=7d"
json
{  "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"}

Upload options (form fields or headers):

FieldHeaderDescription
ttlX-Transfa-TTLExpiry: 1h, 24h, 7d, 30d
password—Password-protect the download link
max_downloads—Burn after N downloads
filenameX-Transfa-FilenameOverride the stored filename

Download

bash
# Direct download (no auth required)curl -L https://transfa.sh/api/download/xK9mRp -o model.gguf
# Password-protectedcurl -L "https://transfa.sh/api/download/xK9mRp?password=hunter2" -o secret.zip

File info

bash
curl https://transfa.sh/api/download/info/xK9mRp
json
{  "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}

List uploads

bash
curl https://transfa.sh/api/upload \  -H "Authorization: Bearer $TF_KEY"

Delete

bash
curl -X DELETE https://transfa.sh/api/upload/xK9mRp \  -H "Authorization: Bearer $TF_KEY"

Supported formats

Over 100 file types with correct MIME detection — including types not in standard MIME databases:

CategoryFormats
ML models.gguf .ggml .safetensors .onnx .pt .pth .pkl .ckpt .tflite .mlmodel .lora
Data science.parquet .arrow .feather .h5 .hdf5 .npz .npy .lance .duckdb .ipynb
Code.py .rs .go .ts .kt .swift .scala .cu .sol .vy .elm .zig
Archives.zip .tar .gz .bz2 .xz .7z .zst
3D / Design.glb .gltf .obj .stl .usdz .blend .fig .sketch .psd
Media.avif .webp .heic .jxl .opus .flac .webm .av1
Config.toml .hcl .tf .tfvars .nix .dhall .lock .env
Everything else.wasm .sqlite .db .pem .crt .p12 + all standard types

Any other format is accepted as application/octet-stream — nothing is blocked.


Plans

GuestFreeProTeam
Max file size10 MB500 MB50 GB100 GB
Uploads / day5205005,000
Max TTL24h48h30 days180 days
Storage——UnlimitedUnlimited
PriceFreeFree$12/mo$48/mo
Trial——3-day free trial3-day free trial

→ See full pricing


MCP server (Claude, Cursor, and any MCP-compatible agent)

transfa ships an MCP server that lets Claude, Cursor, and any MCP-compatible agent upload and share files autonomously — no shell commands, no infrastructure setup.

bash
npx -y transfa-mcp

Claude Desktop config

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

json
{  "mcpServers": {    "transfa": {      "command": "npx",      "args": ["-y", "transfa-mcp"],      "env": {        "TRANSFA_API_KEY": "your-api-key"      }    }  }}

The API key is optional — the server works in guest mode without one (10 MB / 24h limit).

Available MCP tools

ToolDescription
uploadUpload a file from the local filesystem. Returns agent_link (direct URL), human_link (share page), and sha256. Accepts run_id, step, consumer, intent for provenance.
file_infoGet metadata about an upload — filename, size, SHA-256, expiry, download count, provenance fields.
list_uploadsList recent uploads (requires API key).
delete_uploadDelete an upload immediately.
run_artifactsGet all files uploaded under a run_id — the full provenance manifest for a pipeline run or agent session.

Example agent workflow

When Claude has transfa as an MCP tool, it can:

  1. Generate a report → call upload → get a link → paste the link in the conversation
  2. Pass a file to another agent by sharing the agent_link
  3. Clean up with delete_upload when done

Python SDK

python
import transfa
# Uploadresult = 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 runmanifest = transfa.run_artifacts("run-42")
# Asyncasync with transfa.AsyncClient() as client:    result = await client.upload("model.pt")

See python/README.md for the full API reference.


Use with AI agents (script/subprocess)

transfa is also designed to be called from shell scripts, CI pipelines, and agents that prefer subprocess calls:

python
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

Or use the REST API directly — no SDKs, no auth flows, just HTTP.


Self-hosting

bash
git clone https://github.com/colapsis/transfa.gitcd transfacp .env.example .env          # fill in your keysnpm install --prefix servernpm install --prefix clinpm run build --prefix frontendpm2 start ecosystem.config.cjs

Requirements: Node.js 18+, nginx (for SSL/proxy)

See nginx/transfa.conf for a production-ready nginx config.

Environment variables

VariableDescription
PORTServer port (default: 3001)
BASE_URLPublic URL e.g. https://transfa.sh
STRIPE_SECRET_KEYStripe secret key for billing
STRIPE_WEBHOOK_SECRETStripe webhook signing secret
STRIPE_PRO_PRICE_IDStripe price ID for Pro plan
STRIPE_TEAM_PRICE_IDStripe price ID for Team plan

Security

Found a vulnerability? Please email [email protected] or see SECURITY.md.

Do not open a public issue for security reports.


License

MIT — © 2026 transfa contributors

来源:README.md,提交 d665b06

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.0.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分