# uploads.sh

Hosts coding agent artifacts at fixed URLs and consolidates screenshots, logs, and reports into a self-updating GitHub pull request comment.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 19
- Author: buildinternet
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/buildinternet/uploads
- Updated: 2026-10-24
- HTML: https://affpapa.org/en/nevibecode/mcp/uploadssh

## What it does

This MCP server lets coding agents publish files while working inside a Git branch. It accepts screenshots, screen recordings, test runs, JSON dumps, PDFs, and zip archives directly via raw bytes or URLs. Storage keys omit content hashes, meaning replacing a file keeps the exact same URL active everywhere it was embedded.

Once you open a pull request, the companion GitHub App consolidates staged files into a single comment. Marking screenshots with before and after states arranges them into a side-by-side comparison table. Users can also connect an external Cloudflare R2 bucket or S3-compatible storage to avoid hosted limits.

Running the server via stdio transport requires Node.js along with a valid `UPLOADS_TOKEN`. Connecting via the hosted HTTP endpoint at `https://agents.uploads.sh/mcp` works without configuring local CLI packages.

## Requirements
- Needs: Node.js (commands run via npx)
- Remote server: `https://agents.uploads.sh/mcp`
- Environment variables: `UPLOADS_TOKEN`, `UPLOADS_WORKSPACE`, `UPLOADS_API_URL` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

1. **Platform CLI: remote server**
```bash
claude mcp add --transport http mcp https://agents.uploads.sh/mcp
```

2. **Platform CLI**
```bash
claude mcp add --env UPLOADS_TOKEN=<UPLOADS_TOKEN> --env UPLOADS_WORKSPACE=<UPLOADS_WORKSPACE> --env UPLOADS_API_URL=<UPLOADS_API_URL> --transport stdio uploadssh -- npx -y @buildinternet/uploads
```
Replace <…> with your own values

### Codex

1. **Platform CLI: remote server**
```bash
codex mcp add uploadssh --url https://agents.uploads.sh/mcp
```

2. **Platform CLI**
```bash
codex mcp add uploadssh --env UPLOADS_TOKEN=<UPLOADS_TOKEN> --env UPLOADS_WORKSPACE=<UPLOADS_WORKSPACE> --env UPLOADS_API_URL=<UPLOADS_API_URL> -- npx -y @buildinternet/uploads
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "uploadssh": {
            "url": "https://agents.uploads.sh/mcp"
        }
    }
}
```
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "uploadssh": {
            "command": "npx",
            "args": [
                "-y",
                "@buildinternet/uploads"
            ],
            "env": {
                "UPLOADS_TOKEN": "<UPLOADS_TOKEN>",
                "UPLOADS_WORKSPACE": "<UPLOADS_WORKSPACE>",
                "UPLOADS_API_URL": "<UPLOADS_API_URL>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "uploadssh": {
            "type": "http",
            "url": "https://agents.uploads.sh/mcp"
        }
    }
}
```
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "uploadssh": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@buildinternet/uploads"
            ],
            "env": {
                "UPLOADS_TOKEN": "<UPLOADS_TOKEN>",
                "UPLOADS_WORKSPACE": "<UPLOADS_WORKSPACE>",
                "UPLOADS_API_URL": "<UPLOADS_API_URL>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

1. **Platform CLI: remote server**
```bash
gemini mcp add -t http uploadssh https://agents.uploads.sh/mcp
```

2. **Platform CLI**
```bash
gemini mcp add -e UPLOADS_TOKEN=<UPLOADS_TOKEN> -e UPLOADS_WORKSPACE=<UPLOADS_WORKSPACE> -e UPLOADS_API_URL=<UPLOADS_API_URL> uploadssh npx -y @buildinternet/uploads
```
Replace <…> with your own values

## When to use it
- publish agent screenshots and logs to public URLs before opening a PR
- group test runs and build artifacts into a single GitHub PR comment
- render side-by-side before and after UI comparisons for reviewers
- store agent assets in a private Cloudflare R2 or S3 bucket

## Example prompts
- Upload settings.png to uploads.sh with the path meta set to /settings
- Stage report.json on the current branch using uploads.sh
- Upload before.png and after.png as a visual comparison pair for the pull request

## Similar
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [GitDiagram](https://affpapa.org/en/nevibecode/mcp/gitdiagram.md) — MCP server · ★ 18446
- [Repowise](https://affpapa.org/en/nevibecode/mcp/repowise.md) — MCP server · ★ 7891
- [sem](https://affpapa.org/en/nevibecode/mcp/sem.md) — MCP server · ★ 3422
- [GitLab MCP Server](https://affpapa.org/en/nevibecode/mcp/gitlab-mcp-server.md) — MCP server · ★ 2065
- [Octocode MCP - AI Context Platform](https://affpapa.org/en/nevibecode/mcp/octocode-mcp-ai-context-platform.md) — MCP server · ★ 955

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
