Agent write (MCP / SDK)
- Pixeldrive
- Yes
- UploadThing
- SDK, not MCP
- DIY object storage
- You build it
- An image CDN
- Sometimes
Agent storage · images included
Pixeldrive is file storage with a JSON contract and a CDN. Agents upload through MCP or a write key. You serve originals — and optimized images — without a CMS or a bucket of your own.
you ›upload the lookbook and put it on the site
agent ›MCP upload → 48 files · upsert selects/hero.jpg
agent ›GET /v1/files?path=selects/hero.jpg · GET /v1/projects/6dec2e93
agent ›writing app/lookbook/page.tsx
agent ›done — CDN originals, links survive replaces
Three moves
Not a CMS schema. Not a weekend of S3, CORS, and image-CDN wiring. Upload, organize, serve — including optimized images on Pro.
01 · Upload
Write key scoped to a project. Same three-step protocol either way — presign, PUT to storage, verify. Multipart under the hood.
npx -y @pixeldrive-dev/mcp PIXELDRIVE_API_KEY=pd_live_…
02 · Organize
Rename, move, replace — every public link keeps working. One ready file per path; upsert keeps the publicId. Humans use the dashboard; agents keep the same IDs.
summer-lookbook/ ├─ selects/ 24 ├─ bts/ 118 └─ #la-jolla 36
03 · Serve
One GET lists the project. Originals cache for a year. Pro adds ?w= / srcset without a second vendor.
GET /v1/projects/6dec… 200 cdn.pixeldrive.dev/f/8a31?w=960
Also in the box· upload API · SDK · MCP· path upsert · GET by path· photos · video · PDF · Word · markdown· private projects· Pro image transforms (?w=)· Pro version history· project tags
The contract
Upload, list, replace, delete, overwrite by path. Hosted originals and (on Pro) optimized derivatives. A coding agent that can read /docs can finish the job.
POST /v1/uploadWrite key. upsert: true replaces the ready file at that path. SDK and MCP wrap put vs multipart.GET /v1/files?path=One file by path. MCP upload upserts by default; SDK pass upsert: true.GET /v1/projects/{id}One request returns files, folders, tags, and CDN URLs.url · stableUrl · srcsetOriginals on the CDN. Pro adds ?w= transforms and src / srcset in the listing.width · height · blurhashLayout before the pixels arrive. No probing, no CLS.public · Bearer keysShared listings need no key. Private projects use scoped API keys.nextCursorUp to 500 files per page, deterministic order. CORS open.GET https://api.pixeldrive.dev/v1/projects/6dec2e93…{
"name": "summer-lookbook",
"files": [{
"name": "eng-448.jpg",
"kind": "image",
"url": "https://cdn.pixeldrive.dev/…/v1",
"stableUrl": "https://cdn.pixeldrive.dev/f/…",
"srcset": "…/f/…?w=640 640w, …/f/…?w=960 960w",
"width": 5695,
"height": 3797,
"blurhash": "LGF5]+Yk^6#M@-5c,1J5",
"tags": ["la-jolla"]
}],
"nextCursor": null
}Compare
Agent storage should not require a CMS seat, a DAM, and a separate image CDN. You needed a place to put the files — and to serve the pictures.
Agent write (MCP / SDK)
Overwrite by path
JSON listing
Image hosting + CDN
Image transforms
Replace keeps the URL
Private projects
Typical monthly
| Surface | Pixeldrive | UploadThing | DIY object storage | An image CDN |
|---|---|---|---|---|
| Agent write (MCP / SDK) | Yes | SDK, not MCP | You build it | Sometimes |
| Overwrite by path | Yes | You track ids | You build it | No |
| JSON listing | Yes | You store it | You build it | No |
| Image hosting + CDN | Yes | Yes | You wire it | The product |
| Image transforms | Pro, included | No | Lambda + cache | The product |
| Replace keeps the URL | Yes | New URL | Cache-bust | Sometimes |
| Private projects | Yes | Private files | IAM + signed URLs | Sometimes |
| Typical monthly | $0 or $15 | Usage | Infra + your hours | Often $89+ |
Agent needs to host a file
Them · S3 credentials in the prompt · hope CORS works
Us · Write key · MCP upload · JSON back
The infra the agent never stands up
Images on a new site
Them · UploadThing + Cloudinary · two vendors
Us · Originals on the CDN · Pro ?w=
One product for files and derivatives
The monthly stack
Them · Object storage + image CDN · ~$100+
Us · Pixeldrive Pro · $15
The second invoice you skip
Competitor prices are typical published starting points, not quotes. Your stack may be cheaper. It is rarely $15 and a write key.
Coming soon
Path upsert shipped — one file per folder path, GET by path, MCP overwrites by default. Next: executable types on private projects, served as downloads.
Same upload path, served as downloads so they never execute. Public projects stay on inert types — photos, video, PDF, Word, markdown.
Start
2 GB, 3 projects, 1,000 files, API keys, and private projects on free. A terabyte, image transforms, and version history when you outgrow it.