MCP server: One MCP server.

UpRes Cli

@auroracapitalMCP server · External

UpRes MCP: list models, credits, submit 4K image and video upscale jobs.

Image editingv0.2.0MITTypeScript
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: creates or changes data: records, files, settings.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

MCP Bundlehttps://github.com/auroracapital/upres-cli/releases/download/v0.2.0/upres-cli-0.2.0.mcpb

Distributed as an MCP bundle (`https://github.com/auroracapital/upres-cli/releases/download/v0.2.0/upres-cli-0.2.0.mcpb`) — download it and import the bundle in your MCP client.

README4 min read

npm version PyPI version License: MIT

Star this repo if UpRes helps you. GitHub stars

Official CLI + SDK for upres.ai — image, video, and speech restoration. One API, 14 public aliases, up to 8K output.

$ upres upscale photo.jpg --model flare --scale 4
Submitting job... model=flare
Job created: 550e8400-e29b-41d4-a716-446655440000 (status: pending)
Waiting for result.......
Downloading to photo_upscaled.jpg... done.

Result: photo_upscaled.jpg

Why we built this

  • Topaz is $200/yr, desktop-only, no API, no automation
  • Upscayl is great for one-offs but can't handle bulk exports or CI pipelines
  • Every other SaaS upscaler either watermarks your output, caps resolution at 2K, or charges per image with no monthly plan

upres.ai gives you a clean REST API, 14 public aliases, batch processing, and predictable pricing starting at $9/mo on the Creator launch deal.


Quickstart

Node.js

bash
npx upres-cli upscale photo.jpg

Or install globally:

bash
npm install -g upres-cli
upres upscale photo.jpg --model lumen --scale 8 --output photo_8k.jpg

Python

bash
pip install upres-ai
upres upscale photo.jpg --model flare --scale 4

Authentication

  1. Sign up at upres.ai (free — 5 upscales/month)
  2. Go to upres.ai/account/api-keys
  3. Generate a key — it's shown once
bash
export UPRES_API_KEY=upres_yourkey

Or save permanently:

bash
mkdir -p ~/.config/upres
echo '{"apiKey":"upres_yourkey"}' > ~/.config/upres/config.json

Key resolution order: --api-key flag → UPRES_API_KEY env var → ~/.config/upres/config.json


Commands

bash
# Upscale a single image (local file or URL)
upres upscale photo.jpg --model flare --scale 4
upres upscale photo.jpg --model lumen --scale 8 --output out.jpg
upres upscale https://example.com/photo.jpg --model prism

# Upscale video (AI-generated video from Sora, Kling, Runway etc.)
upres upscale clip.mp4 --model motion --scale 4

# Batch upscale a folder
upres batch ./photos/ --model flare --output ./upscaled/ --concurrency 5

# List available models
upres models

# List recent jobs
upres jobs --limit 20 --status completed

# Account / quota info
upres account

Node.js SDK

typescript
import { UpresClient } from "upres-cli";

const client = new UpresClient(); // reads UPRES_API_KEY from env

// Upscale a local file
const job = await client.createJobFromFile("photo.jpg", {
  model: "flare",
  scale: 4,
});

// Wait for completion
const completed = await client.waitForJob(job.id);

// Download result
await client.downloadResult(completed, "photo_4k.jpg");
console.log("Done:", completed.result_url);

Files over 50 MB are automatically uploaded via TUS resumable protocol.


Python SDK

python
from upres import UpresClient

with UpresClient() as client:                        # reads UPRES_API_KEY from env
    job = client.create_job_from_file(
        "photo.jpg",
        model="flare",
        scale=4,
    )
    completed = client.wait_for_job(job["id"])
    client.download_result(completed, "photo_4k.jpg")
    print("Done:", completed["result_url"])

The Python SDK uses httpx — async-ready, no heavy dependencies.


Examples

ExampleWhat it does
batch-upscale-folder.jsUpscale all images in a folder with configurable concurrency
restore-photo-folder.pyRestore old/scanned photos with Lumen
ecommerce-pipeline.jsProduct image pipeline: raw shots → 4K → publish-ready
lightroom-export-hook.mdAuto-upscale Lightroom exports via post-processing hook
figma-plugin-stub.mdFigma plugin integration guide

Models

14 public aliases across image, video, and speech. Each one tells you up front whether it invents detail or leaves your file alone. Aliases that do not enlarge ignore --scale.

AliasKindBest for
flareImageEveryday photos, fastest default
prismImageText, logos, product shots — keeps edges true
lumenImageMaximum detail recovery for print, up to 8x
mirageImageInvents new detail — art and hero images
hushImageFaithful denoise, same size as the source
keenImageDeblur and sharpen, same size
visageImageFaces only, does not enlarge
atelierImageHush, Visage if a portrait, then Lumen
motionVideoFast 4K finish for AI video
motion-xVideoCinema-grade, for film and commercials
stillVideoTemporal denoise, resolution stays put
cadenceVideoFrame interpolation, does not enlarge
atelier-xVideoStill, then Motion X
voiceSpeechSpeech denoise to 48 kHz. Not for music

Full model catalogue: upres.ai/models · Live spec: api.upres.ai/v1/openapi.json


Pricing

PlanPriceIncludesAPIWatermark
Free$05 upscales/mo—Yes
Creator$9/mo50 stills + 20 min 4K video/mo—No
Studio$39/mo250 stills + 90 min 4K video/moYesNo

Studio tier unlocks the full API, batch processing, and no output watermark.

Compare plans → · vs. Topaz → · vs. Upscayl →


MCP (Claude, Cursor, Hermes)

bash
claude mcp add upres -- npx -y github:auroracapital/upres-cli mcp

Or in claude_desktop_config.json / Cursor:

json
{
  "mcpServers": {
    "upres": {
      "command": "npx",
      "args": ["-y", "github:auroracapital/upres-cli", "mcp"],
      "env": { "UPRES_API_KEY": "upres_yourkey" }
    }
  }
}

Tools: upres_list_models, upres_get_credits, upres_upscale_image, upres_upscale_video, upres_enhance_audio, upres_get_job.


Free tier for open-source projects

If you're building something open-source on top of the API, email support@upres.ai with your repo link. We offer 500 ops/month for qualifying OSS projects.


Error handling

The SDK handles these errors automatically:

StatusBehavior
401Prints API key error + link to key management, exits
402Prints quota exceeded + link to pricing, exits
429Prints rate limit message (60 req/min), exits
5xxThrows UpresError with message

In Python: raises AuthError, QuotaExceededError, or UpresError.


Contributing

See CONTRIBUTING.md. Tests run with:

bash
# Node
npm test

# Python
pip install -e ".[dev]"
pytest tests/test_client.py -v

License

MIT — see LICENSE

Similar modules

Browse Image editing