The artifact bucket
for agents.
Two tools. One token. Public URLs. Drop a file from any MCP client; get back a permanent URL. No sign-up, no API key.
Works in any MCP-compatible client
- Claude Code
- Cursor
- Claude Desktop
- Windsurf
- VS Code
- Codex CLI
- OpenCode
- Zed
- Continue.dev
- Cline
- OpenClaw
- Gemini CLI
- + curl
How it works
Two steps. Fifteen seconds of agent context.
Install the MCP server.
One CLI command. No SDK. No config file.
claude mcp add --transport http foundr-host \ https://foundr.host/api/mcp \ --header "Authorization: Bearer <token>"
Claim a token, then upload.
Quote-tweet @perea_ai, paste the URL on /claim, get a token immediately — no sign-up.
Then call upload_file from any MCP client. The URL you get back outlives the session — share it, embed it, hand it to another agent.
Your agent generated a screenshot.
Now what?
Image saved to /tmp/xxx.png is the most common dead-end in agent transcripts. The agent ran. The file exists. And you can't show it to the next prompt without copy-pasting it back yourself.
Or worse: the screenshot is 20 MB and the agent's context already crashed.
Replace that with one line.
await upload_file({
filename: "shot.png",
content: base64Image,
});
// returns:
// "https://foundr.host
// /files/7a3f9c1b/shot.png"
// URL is permanent.
// The next prompt sees the image.
// No /tmp paths.
// No paste-it-back.
// No 20-MB session-killer.Why other storage breaks for agents.
Object storage was built for humans uploading files. Agents work differently — and the existing pricing models punish that.
| Vercel Blob | Cloudflare R2 | Tigris | foundr.host | |
|---|---|---|---|---|
| Sign-up required | Yes | Yes | Yes | No (tweet) |
| Per-op billing | Yes | $4.50 / M Class A | Yes ($/op) | No (flat tier) |
| Egress charge | $0.15 / GB | Free* | Free* | Flat tier |
| MCP-native auth | No | OAuth | OAuth | Bearer-in-URL |
| Permanent URL TTL | Depends | Manual | Manual | Never expires |
| Free-tier per-file cap | 5 MB | 5 GB | 5 GB | 4 MB |
| Free-tier storage | 5 GB | 10 GB | 5 GB | 10 GB |
* “Free egress” carries Class A op fees (R2) and “extraordinary bandwidth” escape clauses (Tigris). All claims verifiable on the linked pricing pages.
OAuth on MCP doesn't work.
Token-in-URL wins.
We made it the whole product.
OAuth assumes a browser, redirect URIs, a user at a login screen. An MCP server inside Claude Code, Cursor, or Codex has none of those things.
What actually ships — every working MCP server in the wild — is token-in-URL: one bearer, one header, one paste. Anything more breaks at the transport layer.
foundr.host commits to that all the way down. No sign-up. No API key. No SDK to install. Quote-tweet, get a token, paste it once.
Get a free token“OAuth assumes a browser. It assumes redirect URIs. It assumes a user sitting at a login screen. An MCP server running inside Claude Code has none of these things… I tried half a dozen approaches. Each one worked in isolation and broke when integrated with the MCP transport layer.”
Pricing
Flat tiers. No surprise egress bills. Cancel any time.
Free
- ·1 access token
- ·10 GB storage
- ·10 GB / mo bandwidth
- ·4 MB per file
- ·Stateless JWT — never expires
Pro
- ·5 access tokens with scopes
- ·250 GB storage
- ·250 GB / mo bandwidth
- ·5 GB per file
- ·Sized for 20-MB screenshot sessions
- ·Overage: $0.05/GB
- ·Email support
Team
- ·25 access tokens with scopes
- ·2 TB storage
- ·2 TB / mo bandwidth
- ·5 GB per file
- ·Overage: $0.04/GB
- ·Audit log export
- ·Slack support
What we offer
Six promises that compound.
Two tools. Whole API.
upload_file and get_file_url. Fifteen seconds of context budget. Drop-in for any MCP client.
Outlives the session.
Files persist beyond agent restarts, model swaps, and IDE reloads. 11-nines underlying durability.
Per-token cryptographic isolation.
Every token's files live behind their own scoped storage credential. A bug in your prompt can't reach another tenant's data.
No sign-up, ever, on free.
Tweet → token → upload. No email collected, no API key issued.
Priced for the agent rhythm.
Agents list, peek, fetch, fetch again, write small. We don't charge per op or per byte through a CDN. Flat tiers, predictable ceilings.
100 MB on Pro. (4 MB free for now.)
Heavy-screenshot tier coming with direct-to-storage PUT in v0.7. Today: small artifacts go through us; large ones go straight to storage.
Frequently asked
Eight honest answers.
Why no sign-up?
OAuth on MCP works in theory and breaks in practice. Token-in-URL is the consensus pattern across the MCP server cohort — we made it the entire onboarding. Quote-tweet, get a token, paste it once.How does the JWT work? Is it actually secure?
Each token is a stateless HS256 JWT with the bucketId baked in. The server signs it, the client pastes it; B2 enforces isolation via a per-token scoped application key (15-minute validity, minted on demand). A bug in our app layer can break one tenant's data, not another's.Why 4 MB on free?
Honest answer: Vercel Route Handler request bodies cap at ~4.5 MB platform-wide. The previous '10 MB' and '100 MB' caps were unreachable in practice. v0.7 ships direct-to-storage PUT which raises Free to 100 MB and Pro to the advertised 5 GB.Is it really free forever?
Yes, on the 1-token tier. Our cost-of-goods at 10 GB is ~$0.07/user/month on Backblaze B2. The free tier survives without subsidy.Which MCP clients work?
All of them. /claim ships install snippets for Claude Code, Cursor, Claude Desktop, Windsurf, VS Code (Copilot), Codex CLI, OpenCode, Zed, Continue.dev, Cline, OpenClaw, and Gemini CLI. Plus a raw curl example.Can I bring my own B2 / S3 bucket?
Not in v0.6. On the roadmap as a Pro-tier option — you supply the bucket, we supply the MCP server and the access-token control plane.How do I delete my data?
Today: Open a GitHub issue and request a manual purge. v0.7 adds DELETE /api/files/<key> and a token-revocation endpoint.Uptime / SLA?
No formal SLA on the free tier. Underlying storage (Backblaze B2) commits to 99.9% uptime. We publish our own uptime via the GitHub repo once we have 90 days of operating history.
Get a free token.
Two tools. Zero sign-up.
Quote-tweet, paste the URL, and your agent has a permanent place to drop files.
Claim your token