Skip to content
Agentmart
Submit a tool

uploads.sh

Host files from coding agents; stage on a branch and attach to GitHub PRs.

Connector by uploads.shOfficial · Domain verified by the MCP Registry

IndexedApache-2.0Local (stdio)Remote (HTTP)★ 19
Write a review

Install

Works with Claude Code, VS Code, Codex, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/uploads-sh-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Remote endpoint

  • https://agents.uploads.sh/mcp Remote (HTTP)

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Host files from coding agents; stage on a branch and attach to GitHub PRs.

Use cases: version-control, file-management

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
19 read · 8 write · 10 delete
Secrets
2 (API keys, tokens or passwords)
Install scripts
None found
Runs as
Node.js package

Tools by what they do 37

Read from the source code; the running server may list different tools.

Read 19 · Look things up without changing anything.

  • changelog
  • doctor
  • feed_get
  • find_files
  • gallery_find_by_reference
  • gallery_get
  • get_metadata
  • list
  • list_activity
  • list_held
  • list_metadata_keys
  • list_repo_files
Show 7 more tools
  • look_at_files
  • repo_link_status
  • search_docs
  • search_files
  • staged
  • usage
  • whoami

Write 8 · Create, change, send or run things.

  • approve
  • feed_create
  • gallery_add
  • gallery_create
  • gallery_link
  • reconcile
  • reply
  • report

Delete 10 · Delete, drop, revoke or wipe things.

  • attach
  • comment
  • delete
  • promote
  • purge_expired
  • put
  • screenshot
  • set_metadata
  • sign_upload_url
  • unstage

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • Authorization
  • UPLOADS_TOKEN

Other settings (environment variables or headers).

  • UPLOADS_API_URL
  • UPLOADS_WORKSPACE

Network hosts it talks to 1

  • agents.uploads.sh · found in remote endpoint, install command

Files it touches

  • Any path the agent passes to its tools

Tools (37)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • approveApprove held files

    Release uploads held for review (see `list_held`): pass `keys`, or `pr`/`issue` + `repo` to approve every held file there. The file returns at the same URL and the managed PR comment re-syncs. Check the file first: if it shows a real credential, rotate it and delete the file instead of approving. Same as `uploads approve`.

  • attachAttach to GitHubcan change or delete data

    Upload one or more files as stable PR/issue attachments (in parallel) and maintain a managed GitHub comment. Returns `uploads` and `failures` (one bad file does not abort the batch). Each success has `url`, `embedUrl`, and `markdown` (prefer embedUrl for GitHub). With no pr/issue, targets the current branch PR, and files already staged for that branch are promoted into it (`promotion`/`promoteError`; renamed branches are followed automatically, or name the old branch with fromBranch). Attachments are public and keys are predictable; upload only non-sensitive media.

  • changelogProduct changelogread-only

    Read recent uploads.sh product updates (platform and CLI). Returns the latest entries with titles, dates, summaries, and a link to the full changelog at https://uploads.sh/changelog. Same as `uploads changelog`.

  • commentSync attachments commentcan change or delete data

    Refresh the managed attachments comment on a GitHub PR or issue without re-uploading. Use after deleting media. Requires `repo` and exactly one of `pr`/`issue`. `held` counts files there held for review; see `list_held`.

  • deleteDelete filecan change or delete data

    Permanently delete one uploaded file by key, along with its metadata. A files:write token can delete a gh/ object the server stamped as its upload. Older files and any other object need files:delete. Deleting a PR or issue attachment refreshes the managed comment.

  • doctorDiagnose setupread-only

    Diagnose the configuration: API health, token auth, and workspace/token alignment. Returns the same report as `uploads doctor --json`, including hints.

  • feed_createCreate change feed

    Create a public newest-first screenshot feed (same product as CLI `uploads feed create`). Pass `repo` alone for the whole GitHub repo. Pass `pr` plus `repo` — or `github` as owner/repo#123 / a GitHub PR URL — to scope that same feed to one pull request. `issue` does the same for an issue. Optional `path` filters by page-path metadata. Creating the same scope again returns the existing URL. This is a live query, not a curated gallery. Anyone who knows the URL can view it. See https://uploads.sh/docs/feeds.

  • feed_getGet change feedread-only

    Get a workspace-owned change feed by ID, including its current newest-first screenshots and the canonical public /c/<id> URL. Each item includes pageUrl (`/c/<id>/<item>`) for the pager. The feed may be repo-wide or scoped to one pull request / issue (see `number` and `kind` on the result). Anyone with the URL can view the media.

  • find_filesFind filesread-only

    Search files by metadata (`filters`) and/or filename substring (`name`). At least one is required.

  • gallery_addAdd gallery item

    Add one existing, publicly served workspace object to a gallery. The tool reads the current version before writing and does not upload or delete the object.

  • gallery_createCreate gallery

    Create a public ordered media gallery in this workspace. The returned canonical URL is suitable for an agent response, but anyone who knows it can view the gallery and its media.

  • gallery_find_by_referenceFind galleriesread-only

    Find galleries in this workspace linked to an external reference. Returns canonical public gallery URLs without contacting the provider.

  • gallery_getGet galleryread-only

    Get a workspace-owned gallery, including its ordered media and canonical public URL. Gallery media is public to anyone with the URL.

  • gallery_linkLink gallery

    Link a gallery to an external reference. Uses provider-neutral fields; github currently accepts owner/repo#number or a strict GitHub issue/PR URL. No GitHub credentials or API calls are used.

  • get_metadataGet metadataread-only

    Read the queryable tags on one file. Returns `{ metadata }` (empty when none).

Show 22 more tools
  • listList filesread-only

    List uploaded objects in the workspace, optionally filtered by key prefix. Paginate with cursor; each item includes its public URL when the workspace has one.

  • list_activityList recent activityread-only

    Recent GitHub-tagged activity in this workspace, grouped by pull request (default) or by repo. Pull rows are pull requests that received media tagged gh.kind=pull, newest last_media_at first. The default window is 90 days. Set all to true to lift it. Optional repo and state (open, closed, or merged) narrow those rows. A title is included only when the repo is linked to this workspace. Repo rows are distinct gh.repo values, newest metadata updated_at first. These times are not the object's uploaded-at. Untagged uploads are absent. This does not publish a feed. Pass cursor back unchanged with th…

  • list_heldList held filesread-only

    List uploads held for review. The classifier holds a file it thinks shows a secret (an API key, a password, a token) or sensitive personal data (an ID, a card number). A held file stays out of the managed PR comment, feeds, galleries, and its /f/ page, and its raw URL may 404, until a workspace member approves it with `approve`. Pass `pr`/`issue` + `repo` for one PR or issue, or `prefix`. Each item has `reason` (`secret: api_key`, `pii: financial`) and `area`, an approximate box around the flagged content as fractions of the image (null when unknown).

  • list_metadata_keysList metadata keysread-only

    List metadata keys in the workspace (with counts). Pass `key` to list that key's values instead. Use before `find_files`.

  • list_repo_filesList files in a reporead-only

    Files tagged with gh.repo for one repository, newest metadata updated_at first. That time is not the object's uploaded-at. repo is owner/name. Optional pr matches gh.number. Optional path matches the path tag exactly. type is a filename suffix class: screenshot, video, or other. PDFs are other. Promoted copies (gh.status=promoted) are omitted. This does not publish a feed. Pass cursor back unchanged with the same arguments for the next page.

  • look_at_files

    Description is built at runtime.

  • promotePromote staged attachmentscan change or delete data

    Copy staged or existing files into a PR's stable `gh/…/pull/…` prefix, then refresh the managed comment. Pass `branch` and/or `keys`. Requires `repo` and `pr`.

  • purge_expiredPurge expired filescan change or delete data

    Delete objects older than the workspace retentionDays setting, then reconcile. Skips if retention is unset. Requires files:delete.

  • putUpload filecan change or delete data

    Upload a file (or files) and get a public URL plus GitHub-ready markdown. Prefer the returned `embedUrl` in GitHub markdown. All uploads are public. Pass `pr`+`repo` to attach to a PR (stable key + managed comment). A result with `holdCheck: "pending"` may still be held for review if it shows a secret; `comment.held` counts files on the PR or issue held for review; see `list_held`. Pass `branch`+`repo` to stage for a PR that does not exist yet; if that branch already has one open PR (repo linked to this workspace), the file attaches to it instead. This server has no git, so in a checkout read …

  • reconcileReconcile usage

    Rebuild usage ledger bytes/objects from storage (source of truth). Preserves the monthly upload counter. Requires files:write.

  • reply

    Answer the person and end. This is the only way your answer reaches them.

  • repo_link_statusCheck repo bindingread-only

    Whether files staged for a repo will auto-attach into that repo's PRs from this workspace. Returns a tri-state `binding`: "self" (this repo is bound to this workspace — staged files will auto-attach), "other" (bound to a different workspace — they will not; the owning workspace is deliberately never disclosed), or "none" (unbound).

  • reportSend diagnostic report

    Send an explicit diagnostic report to the uploads team (message + optional text log). Only call this when the user asked to submit feedback, a bug report, or error logs — never automatically. Do not include tokens, secrets, or private file contents. Same as `uploads report`.

  • screenshotCapture screenshotcan change or delete data

    Capture a URL or local HTML file and host it. Shares put's attach, comment, and metadata options. `via=local` needs Chrome; `via=remote` renders server-side. localhost URLs are local-only.

  • search_docsSearch uploads.sh docsread-only

    Search the public uploads.sh documentation. Use this to answer questions about uploads.sh product workflows, including: attaching screenshots and video to GitHub PRs and issues; staging files before a PR exists; galleries; the GitHub App; comment config (.uploads.yml); hosted MCP and agent setup; screenshot capture and annotate; plans and limits; bring-your-own bucket. Same as `uploads docs`. Returns titles, URLs, and snippets. Pass `page` to fetch the full markdown of one page (slug, path, or URL). Omit `query` to list the catalog.

  • search_files

    Search public files in the connected uploads.sh workspaces, newest first. Give at least one of query, kind, screen, or surface.

  • set_metadataSet metadatacan change or delete data

    Set or delete queryable tags on an existing file. `set` wins over `delete` for the same key. Tags appear on the public file page — do not store secrets. Requires `set` and/or `delete`.

  • sign_upload_urlSign upload URLscan change or delete data

    Description is built at runtime.

  • stagedList staged filesread-only

    List files staged for a git branch and whether they will auto-attach when a PR opens. Returns `{ repo, branch, files, binding }`.

  • unstageUnstage files

    Clear staged files for a branch, or specific keys, without deleting them. Sets gh.status=unstaged so they drop out of auto-promotion. Pass repo and branch, or keys. Needs files:write.

  • usageShow usageread-only

    Workspace storage and monthly upload counters (and remaining headroom when budgets are configured).

  • whoamiWho am Iread-only

    Show the current uploads.sh identity: the workspace this token acts in and its scopes. A successful result also means the server is up.

Compare and alternatives

    Featured in

    Signals

    Stars
    19
    Forks
    3
    Open issues
    78
    Weekly downloads
    979
    Last commit
    Oct 23, 2026 (5 days ago)
    Last release
    Oct 22, 2026 (6 days ago)
    Last package publish
    Oct 22, 2026 (6 days ago)

    From GitHub (fetched Oct 24, 2026) and the package registry.

    Details

    Registry name
    sh.uploads/mcp
    Version
    0.60.0
    Auth
    Bearer token, API key
    License
    Apache-2.0
    Website
    uploads.sh
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026
    Cite this page

    uploads.sh MCP server. Agent Mart. https://agentmart.dev/connectors/uploads-sh-mcp (last updated 2026-10-24)