AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Uploads

mcp-buildinternet-uploads · by buildinternet

Lightweight upload gateway for agents. Upload screenshots during development to an R2 bucket and include image links in pull requests and comments.

No reviews yet
0 installs
31 views
0.0% view→install

Install

$ agentstack add mcp-buildinternet-uploads

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-buildinternet-uploads)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Uploads? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

uploads

Agents can put screenshots on pull requests now, too.

A lightweight file-hosting service on Cloudflare Workers. One command — uploads attach — hosts a file at a stable public URL and keeps one tidy attachments comment on the PR. Built on files-sdk so the storage layer is provider-agnostic (R2 today; any files-sdk adapter later).

uploads.sh  ·  Docs  ·  npm →  ·  Use it  ·  What's in this repo  ·  Develop

Active development — not production-ready. uploads.sh is being built in the open and its APIs (including auth) will change without notice. Don't rely on it for anything you can't afford to lose or re-key.


What is this?

You add a screenshot to GitHub by dragging it into the comment box. Agents can't — GitHub's native image hosting only works through a browser session, so an agent that just captured a before/after has nowhere to put it.

uploads gives agents that missing step: a CLI and REST API that host files at stable, public URLs and return ready-to-paste Markdown. --pr/--issue keys are hash-free, so re-uploading the same filename overwrites in place and the URL never changes, and a managed attachments comment keeps every file for a PR in one tidy place. Workspaces keep tenants (and their budgets and key policies) apart.

This repo is the source of the canonical deployment at uploads.sh: the API worker, auth worker, MCP server, the Astro web app, and the @buildinternet/uploads CLI (published to npm from [packages/uploads](packages/uploads)).

Use it

Install the CLI, sign in once, then attach media from a checked-out PR branch:

npm install --global @buildinternet/uploads
uploads login
uploads attach ./before.png ./after.png

For a one-off run without a global install:

npx @buildinternet/uploads login
npx @buildinternet/uploads attach ./before.png ./after.png

attach detects the GitHub repository and current PR through gh, uploads all files, and creates or updates one managed attachments comment.

An uploads.sh administrator invites your email to a workspace; uploads login opens a browser to sign in (GitHub or a magic link) and saves the resulting workspace token — see [enrollment](docs/enrollment.md). Hosted files are public, including media attached to private repositories. Do not upload secrets or sensitive UI.

Agent skills — auto-triggering playbooks, installable into any agent runtime without checking out anything (uploads install runs these for you):

npx skills add buildinternet/uploads

That installs both: github-screenshots (visuals → PRs/issues) and uploads-cli (full CLI reference).

Full CLI usage — key conventions, stable PR/issue attachments, managed comments, and public galleries — lives in [docs/cli.md](docs/cli.md). REST routes are in [docs/api.md](docs/api.md).

What's in this repo

| Path | What | | ---------------------------- | --------------------------------------------------------- | | apps/api/ | Hono worker — REST API, deploys to api.uploads.sh | | apps/auth/ | Better Auth worker — sessions, enrollment, device flow | | apps/mcp/ | Remote MCP server | | apps/web/ | Astro site — uploads.sh, account and admin UI | | packages/storage/ | @uploads/storage — files-sdk adapter factory | | packages/uploads/ | @buildinternet/uploads — CLI + client, publishes to npm | | packages/ui/ | @uploads/ui — shared design system | | skills/github-screenshots/ | Workflow skill — visuals into PRs/issues/share links | | skills/uploads-cli/ | Agent skill for driving the CLI |

The workers and web app are separate deployables. All storage access goes through createStorage() in packages/storage — adding a provider is one new case plus peer deps, no API changes.

Docs

| Doc | Contents | | -------------------------------------------- | --------------------------------------------------- | | [cli](docs/cli.md) | CLI usage, GitHub embeds, keys, galleries | | [api](docs/api.md) | REST routes | | [local-dev](docs/local-dev.md) | Manual setup, dev stack, smoke tests | | [workspaces](docs/workspaces.md) | Multi-tenant model, budgets, key policy, BYO-bucket | | [enrollment](docs/enrollment.md) | Agent login, scopes, expiry, and migration | | [admin-tokens](docs/admin-tokens.md) | Minting, listing, and revoking upload tokens | | [ops](docs/ops.md) | Operator runbook (limits, retention, secrets) | | [deploy](docs/deploy.md) | Cloudflare setup and production deploy | | [contract testing](docs/contract-testing.md) | Deployed smoke checks and release gate | | [roadmap](docs/roadmap.md) | Planned features |

Agent and contributor conventions live in [AGENTS.md](AGENTS.md).

Local development

Prerequisites: Node ≥24 and pnpm ≥11 (corepack enable). No Cloudflare account needed for the core local loop — wrangler dev simulates R2, KV, and D1 on disk:

pnpm bootstrap        # one-command setup: tooling, deps, env vars, local D1, default workspace
pnpm doctor           # diagnose the setup — reports what's missing and how to fix it

pnpm dev              # API on :8787 (local R2 + KV + D1)
pnpm dev:stack        # authenticated Auth + API + Web stack at 127.0.0.1:4321
pnpm check            # lint + format (the CI gate)
pnpm typecheck        # wrangler types + tsc across workspaces

bootstrap is idempotent (safe to re-run; never overwrites your env files or re-mints an existing local workspace) and doctor is read-only. Manual setup steps, the full dev-stack detail, and a curl smoke test live in [docs/local-dev.md](docs/local-dev.md).

License

[MIT](LICENSE).

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.