Transfa
This server provides a file sharing service, allowing you to upload, manage, and share files programmatically.
Upload files: Upload any file and receive a direct download link and a browser-friendly share page URL, along with a SHA-256 checksum. Supports options such as custom filename, password protection, TTL/expiry (e.g.
1h,24h,7d,30d), single-use/burn-after-read links, maximum download count limits, and a grace period after expiry. Works without an API key (guest mode, 10 MB limit).Get file metadata: Retrieve detailed metadata for an upload by its ID — including filename, size, SHA-256 hash, MIME type, expiry date, download count, active status, password protection status, and grace period info — without downloading the file.
List recent uploads: Retrieve a list of your recent uploads (requires an API key). Supports configurable result limits (1–100, default 10).
Delete uploads: Immediately and permanently delete an upload by its ID (requires ownership via matching API key).
$ tf upload model.gguf
✓ Uploaded model.gguf (4.2 GB) → https://transfa.sh/f/xK9mRp
SHA-256 a3f8c2...d91b
Expires in 7 daysWhy 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
Related MCP server: @putput/mcp
Install
Node.js / CLI
npm install -g transfaPython SDK
pip install transfaMCP server (Claude, Cursor, any MCP-compatible agent)
npx -y transfa-mcpOr use the raw install script:
curl -fsSL https://transfa.sh/install | shQuick start
# 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 xK9mRpGitHub Actions
Upload build artifacts, coverage reports, and any CI output straight from your workflow:
- 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_SUMMARYAll 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
curl -X POST https://transfa.sh/api/upload \
-H "Authorization: Bearer $TF_KEY" \
-F "file=@model.gguf" \
-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"
}Upload options (form fields or headers):
Field | Header | Description |
|
| Expiry: |
| — | Password-protect the download link |
| — | Burn after N downloads |
|
| Override the stored filename |
Download
# 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.zipFile info
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
}List uploads
curl https://transfa.sh/api/upload \
-H "Authorization: Bearer $TF_KEY"Delete
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:
Category | Formats |
ML models |
|
Data science |
|
Code |
|
Archives |
|
3D / Design |
|
Media |
|
Config |
|
Everything else |
|
Any other format is accepted as application/octet-stream — nothing is blocked.
Plans
Guest | Free | Pro | Team | |
Max file size | 10 MB | 500 MB | 50 GB | 100 GB |
Uploads / day | 5 | 20 | 500 | 5,000 |
Max TTL | 24h | 48h | 30 days | 180 days |
Storage | — | — | Unlimited | Unlimited |
Price | Free | Free | $12/mo | $48/mo |
Trial | — | — | 3-day free trial | 3-day free trial |
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.
npx -y transfa-mcpClaude Desktop config
Add to ~/Library/Application Support/Claude/claude_desktop_config.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
Tool | Description |
| Upload a file from the local filesystem. Returns |
| Get metadata about an upload — filename, size, SHA-256, expiry, download count, provenance fields. |
| List recent uploads (requires API key). |
| Delete an upload immediately. |
| Get all files uploaded under a |
Example agent workflow
When Claude has transfa as an MCP tool, it can:
Generate a report → call
upload→ get a link → paste the link in the conversationPass a file to another agent by sharing the
agent_linkClean up with
delete_uploadwhen done
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")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:
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/xK9mRpOr use the REST API directly — no SDKs, no auth flows, just HTTP.
Self-hosting
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.cjsRequirements: Node.js 18+, nginx (for SSL/proxy)
See nginx/transfa.conf for a production-ready nginx config.
Environment variables
Variable | Description |
| Server port (default: |
| Public URL e.g. |
| Stripe secret key for billing |
| Stripe webhook signing secret |
| Stripe price ID for Pro plan |
| Stripe price ID for Team plan |
Security
Found a vulnerability? Please email tansfa.sh@gmail.com or see SECURITY.md.
Do not open a public issue for security reports.
License
MIT — © 2026 transfa contributors
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceStore and retrieve data objects for free. Temporary cloud storage for agents. Two hour expiry. Works with any format and flow. Example use cases include: * Manage large datasets across different sessions * Generate shareable links for intermediate results * Streamline complex workflows by bridging information between multiple contextsLast updated255MIT

@putput/mcpofficial
Flicense-qualityDmaintenanceFile uploads for AI agents. Upload, list, and manage files from AI coding assistants like Claude, Cursor, Windsurf, and VS Code Copilot with no signup required.Last updated1- AlicenseAqualityCmaintenanceLets MCP clients publish a single file to a permanent, shareable link via whamlink. Supports tools for managing links, including registration, publishing, listing, updating access, replacing content, and deleting links.Last updated654MIT
- Alicense-qualityAmaintenanceEnables sharing and reading encrypted files (text, images, logs) for AI workflows, with automatic 24-hour expiration and host-blind security.Last updated560152MIT
Related MCP Connectors
File uploads for AI agents. Upload, list, and manage files. No signup required.
Publish HTML, Markdown, PDF, or images as instant shareable links with expiry and passwords.
Upload any file, get a tracked shareable link. DocSend for AI agents.
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/colapsis/transfa'
If you have feedback or need assistance with the MCP directory API, please join our Discord server