Skip to main content
Glama

UpscaleX MCP/CLI

PyPI: Version License: MIT Python: 3.10+ MCP: Enabled Acceleration: Vulkan GPU

UpscaleX is a production-grade 8K and 16K image upscaler CLI and Model Context Protocol (MCP) server powered by RealESRGAN, Vulkan GPU hardware acceleration, and Lanczos supersampling.

Engineered for digital print workflows, large-format poster production, fine art reproductions, and autonomous AI coding agents in Claude Desktop, Antigravity, and Cursor.

Looking for quick setup? Read the Installation Guide for a copy-paste AI Agent setup prompt and manual instructions, or provide your AI coding assistant with the UpscaleX Agent Skill.


Table of Contents


Related MCP server: mcp-image-tools

Key Features

  • Dual-Mode Operation: Interactive command-line interface (upscalex) and standard Model Context Protocol server (upscalex-mcp).

  • 8K and 16K Presets:

    • 16K: Native 4x RealESRGAN deep-learning model upscale producing master files up to 400+ Megapixels.

    • 8K: 4x deep-learning inference followed by Lanczos-3 downsampling (Supersampling Anti-Aliasing / SSAA) for sharp edges and zero noise.

    • Custom Dimensions: Proportional scaling to arbitrary resolutions or physical print aspect ratios.

  • Cross-Platform Architecture: Tested and supported across Windows, Linux (Ubuntu, Debian, Fedora), and macOS (Apple Silicon arm64 & Intel x86_64).

  • GPU Acceleration with Seamless CPU Fallback: Automatically discovers and utilizes discrete Vulkan GPUs (NVIDIA RTX/GeForce, AMD Radeon, Intel Arc/Iris, Apple Silicon via MoltenVK). In headless Docker containers or environments without GPU drivers, the engine falls back to multi-threaded CPU Lanczos super-resolution with zero crashes.

  • Hardware Diagnostics: Integrated upscalex doctor command inspects system compute devices, Vulkan support, and recommended tile dimensions.

  • Memory-Safe Tiling: Sliding-window spatial tile decomposition (--tile-size 256) processes ultra-gigapixel images without Out-Of-Memory (OOM) failures on 4GB to 8GB GPUs.

  • Automated Engine Provisioning: Downloads and validates the precompiled platform binary automatically if not found locally.

  • Print Fidelity Analysis: Automatically calculates physical print dimensions in inches and centimeters at 300 DPI, 150 DPI, and 72 DPI.


Visual Quality Comparison

Below is an empirical comparison demonstrating UpscaleX 4x super-resolution reconstruction on a low-resolution pixelated source (663 × 531 px, 0.35 MP) upscaled to high-definition print fidelity (2,652 × 2,124 px, 5.63 MP) using the realesrgan-x4plus model.

Metric

Original Source

UpscaleX 4x Output

Pixel Dimensions

663 × 531

2,652 × 2,124

Total Megapixels

0.35 MP

5.63 MP (16× Pixel Multiplication)

Edge Reconstruction

Heavy block pixelation, ringing

Reconstructed circular spokes, sharp contours

Max 300 DPI Print Size

2.2 × 1.8 inches

8.8 × 7.1 inches

Model

—

realesrgan-x4plus

Hardware

—

NVIDIA GeForce RTX 3050 Laptop GPU (10.8s)


Documentation Directory

Comprehensive technical guides are available in the docs/ directory and repository root:


Quickstart

Option 1: Install from PyPI (Simplest for CLI & MCP)

pip install upscalex

Option 2: Clone and Install from Source (with uv)

git clone https://github.com/The-Open-Source-Founder/upscalex.git
cd upscalex

# Create virtual environment and install package
uv venv
uv pip install -e .

Inspect Available Models

upscalex models

Command-Line Interface

16K Upscale (Default 4x Model)

upscalex upscale input.png --target 16k

8K Supersampled Upscale

upscalex upscale poster.png --target 8k -o poster_8k.png

2D Illustration / Anime Artwork

upscalex upscale graphic.png --model realesrgan-x4plus-anime --target 8k

Image and Print Sizing Inspection

upscalex info input.png

Hardware and Content-Aware Model Recommendation

upscalex recommend input.png

For complete options and arguments, see the CLI Guide.


Model Context Protocol (MCP) Integration

UpscaleX runs as a native MCP server over stdio, enabling AI agents (Claude Desktop, Cursor, Antigravity, Windsurf, Zed) to inspect image metadata, evaluate print viability, and execute upscaling autonomously.

Server Invocation

# Standalone entrypoint
upscalex-mcp

# Or via CLI
upscalex serve

Client Configuration

Method 1: Using Pip (pip install upscalex)

A. Claude Desktop

Configuration file paths:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "upscalex": {
      "command": "upscalex-mcp"
    }
  }
}

Note: If your environment does not have global pip binaries in PATH, use explicit Python:

{
  "mcpServers": {
    "upscalex": {
      "command": "python",
      "args": ["-m", "upscalex.server"]
    }
  }
}
B. Default / Common MCP Clients (Cursor, Antigravity, Windsurf, Claude Code)

Configuration file: mcp_config.json or .cursor/mcp.json

{
  "mcpServers": {
    "upscalex": {
      "command": "upscalex-mcp"
    }
  }
}

Method 2: Using Git Clone & Source Checkout

A. Claude Desktop (with uv or virtualenv)
{
  "mcpServers": {
    "upscalex": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/absolute/path/to/upscalex",
        "upscalex-mcp"
      ]
    }
  }
}

Direct virtual environment alternative (Windows / Linux / macOS):

{
  "mcpServers": {
    "upscalex": {
      "command": "/absolute/path/to/upscalex/.venv/bin/python",
      "args": ["-m", "upscalex.server"]
    }
  }
}

(On Windows, use C:\\absolute\\path\\to\\upscalex\\.venv\\Scripts\\python.exe)

B. Default / Common MCP Clients (Cursor, Antigravity, Windsurf)

Configuration file: mcp_config.json or .cursor/mcp.json

{
  "mcpServers": {
    "upscalex": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/absolute/path/to/upscalex",
        "upscalex-mcp"
      ]
    }
  }
}

For complete tool schemas and JSON-RPC contracts, see the MCP Guide.


Model Matrix and Catalog

UpscaleX supports both pre-packaged core models and on-demand downloadable community models:

Model ID

Scale

Target Media

VRAM Requirement

Status

Description

realesrgan-x4plus

4x

Photos / Fine Art

Medium (4GB VRAM)

Installed

Flagship model for high-fidelity photography, art, and exhibition posters.

realesrgan-x4plus-anime

4x

Anime / Illustration

Medium (4GB VRAM)

Installed

Preserves flat colors, sharp contours, and line definition in 2D illustrations.

realesr-animevideov3-x4

4x

Video / Fast Previews

Low (1GB-2GB / CPU)

Installed

Lightweight 4x feed-forward model for fast turnaround and low-spec systems.

realesr-animevideov3-x2

2x

Animation / Video

Low (1GB-2GB / CPU)

Installed

Fast 2x model for video frames, icons, and lightweight web assets.

realesr-animevideov3-x3

3x

Animation / Video

Low (1GB-2GB / CPU)

Installed

Fast 3x model for intermediate scaling.

realesr-general-x4v3

4x

General / Compact

Low (2GB VRAM)

Installed

Official compact general model with low memory consumption.

4x-ultrasharp

4x

Portraits / Ultra-Detail

Medium-High (4GB-6GB)

Downloadable

Community champion for micro-textures, portraits, fabrics, and skin.

4x-nmkd-superscale

4x

Clean Photorealistic

Medium-High (4GB-6GB)

Downloadable

Trained on clean photography; preserves hair, threads, and foliage.

realesrgan-anime-6b

4x

Anime / Fast

Low (1GB-2GB / CPU)

Downloadable

6-block lightweight anime model for rapid processing.

Download Additional Models

Download models through the CLI or via the download_model MCP tool:

# Download 4x UltraSharp for portraits
upscalex download-model 4x-ultrasharp

# Download NMKD clean photo model
upscalex download-model 4x-nmkd-superscale

Testing and Verification

Run the test suite to verify model resolution calculation, CLI exit codes, and live GPU inference:

uv pip install -e ".[dev]"
uv run pytest -v

All tests must pass prior to submitting changes.


Contributing

Contributions to UpscaleX are welcome. Please read CONTRIBUTING.md for coding standards, pull request processes, and development guidelines.


License

This project is licensed under the MIT License. See the LICENSE file for details.

Available Tools

7 tools
calculate_print_dpiCalculate Print DpiA

Calculate print fidelity (DPI) for a given physical print size and recommend whether upscaling to 8K or 16K is required.

NameRequiredDescriptionDefault
image_pathYesPath to the image.
print_width_inchesYesDesired print width in inches (e.g. 24 for 24x36 poster).
print_height_inchesYesDesired print height in inches (e.g. 36 for 24x36 poster).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full behavioral burden. It implies a non-destructive calculation ('calculate', 'recommend'), but never confirms it is read-only, whether it mutates anything, or what thresholds define the 8K/16K recommendation. An output schema is present, which reduces the need to describe return values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with the core operation front-loaded and the secondary recommendation clause attached. No filler or redundant restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter computation with full schema coverage and an output schema, the description covers the essential operation and its advisory output. The only gap is that the 8K/16K recommendation logic is stated without any hint of the DPI thresholds that drive it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter documented including a concrete 24x36 example, so the baseline is 3. The description adds only the framing that width/height represent a desired physical print size, which the schema already conveys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific computed quantity (DPI for a given physical print size) and an additional deliverable (a recommendation on whether to upscale to 8K or 16K). This lets an agent distinguish it from siblings like get_image_metadata or upscale_image, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is a pre-print feasibility check that would precede upscale_image. There is no explicit statement of when to call this versus getting image metadata, and no exclusions or prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

download_modelDownload ModelB

Download open-weight model files on demand from upstream mirrors into the local models directory.

NameRequiredDescriptionDefault
model_idYesIdentifier of the model to download (e.g. '4x-ultrasharp', '4x-nmkd-superscale', 'realesr-general-x4v3', 'realesrgan-anime-6b').

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description does useful work by disclosing that this fetches from remote mirrors (network access) and writes into a local models directory (a mutation of local state). It stops short of the traits that matter most for a downloader: idempotency/skip-if-present behavior, overwrite semantics, file size or latency expectations, and failure handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence with zero filler; source, action and destination all land immediately. Nothing is wasted, though there is no structure beyond a single clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with a full schema and an output schema, the description covers the essential shape of the operation. It is only marginally complete, however, because an agent cannot tell from it whether repeated calls are safe, how long a download takes, or what happens on mirror failure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single model_id parameter is already documented with concrete examples in the schema. The description adds no additional meaning about accepted ID formats or validation beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Download') and resource ('open-weight model files'), plus the source ('upstream mirrors') and destination ('local models directory'). This clearly separates it from siblings like list_available_models and recommend_model, though it never names them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'On demand' hints at a trigger but gives no real when-to-use guidance: no mention of needing a model_id from list_available_models or recommend_model first, no note on whether to check if the file already exists, and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_image_metadataGet Image MetadataA

Retrieve comprehensive image metadata including resolution, megapixels, aspect ratio, file size, color space, and print sizing at 300 DPI.

NameRequiredDescriptionDefault
image_pathYesPath to the image file to inspect.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full burden; 'Retrieve' implies a read-only, non-destructive operation and the mention of print sizing at 300 DPI hints at derived rather than stored values. It does not state behavior for missing/unsupported files, accepted formats, or whether files are modified — modest gaps for a simple read tool with an output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, and the field enumeration is informative rather than redundant. Slightly list-heavy, but nothing needs trimming.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one required path parameter) and has an output schema, so return values need not be restated. The description is sufficient for correct invocation; only minor behavioral details (formats, error cases) are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter, and schema coverage is 100% with a clear description ('Path to the image file to inspect'), so the schema does the work. The description adds nothing about path form (relative vs absolute) or supported image extensions, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('Retrieve comprehensive image metadata') and enumerates the returned fields (resolution, megapixels, aspect ratio, file size, color space, print sizing). This clearly separates it from mutation siblings like upscale_image, though it never explicitly distinguishes itself from calculate_print_dpi, whose DPI/print-sizing territory it partially overlaps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the name and the 'inspect an image file' framing; there is no explicit when-to-use statement, no exclusions, and no pointer to calculate_print_dpi for dedicated print-DPI computation. An agent can infer the context but must reason about the overlap itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_system_diagnosticsGet System DiagnosticsA

Check cross-platform hardware profile, OS, CPU thread count, Vulkan status, and detected GPU acceleration hardware.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full behavioral burden. It signals a passive inspection of the machine's environment, but never explicitly states it is read-only/non-destructive, whether it can fail or return partial results (e.g. Vulkan unavailable, no GPU detected), or whether it requires elevated permissions. The enumerated fields do give a reasonable picture of the behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with a tight enumeration and no filler. Every listed item is substantive information about what the agent will get back.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter diagnostic with an output schema, the description covers the important ground by naming the data categories returned. The remaining gap is failure/edge-case behavior (missing Vulkan, no discrete GPU), which the output schema may or may not express.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. The description correctly makes no attempt to describe inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Check') and enumerates the concrete resource fields returned: hardware profile, OS, CPU thread count, Vulkan status, GPU acceleration. This clearly separates it from the image/model-focused siblings (upscale_image, download_model, list_available_models). It stops short of an explicit contrast statement, but the domain difference is obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is a pre-flight hardware probe, plausibly useful before recommend_model or download_model. There is no explicit 'use when' clause, no mention of whether it should be called once per session or cached, and no stated preconditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_available_modelsList Available ModelsA

List all supported models in the catalog with installation status, VRAM requirements, and ideal media targets.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden; it discloses that each entry carries installation status, VRAM requirements, and ideal media targets, which implies a read-only catalog read. It does not state whether the catalog reflects locally installed state only or a remote catalog, nor whether the call is expensive or cached.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, and the returned-field list is appended where it adds value. It could be marginally tighter, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be re-explained, and the description still summarizes them usefully. For a zero-parameter, read-only list tool this is nearly complete; only the sibling-routing context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly implies no filtering options exist, since it promises 'all' models.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('all supported models in the catalog'), and adds the fields surfaced per entry. It does not explicitly position itself against siblings like recommend_model or download_model, so an agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Use is implied by 'list all supported models', but there is no explicit when-to-use or when-not-to-use, and no pointer to recommend_model for selection advice or download_model for installing an entry. The catalog-reading role is guessable, not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recommend_modelRecommend ModelB

Inspect host GPU specifications, VRAM tier, CPU threads, and image characteristics (photos vs illustrations) to recommend the optimal model, target preset, and tile size.

NameRequiredDescriptionDefault
priorityNoOptimization priority ('balanced', 'speed', 'quality').balanced
image_pathYesPath to the image file to evaluate.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full behavioral burden. It usefully discloses that the tool inspects host hardware locally and classifies the image (photos vs illustrations), but it never states that the operation is side-effect-free, or whether a recommended model must first be fetched via download_model. That ambiguity about a possible write step is a real gap for an unannotated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that leads with what is inspected and ends with what is produced. Every clause carries information; the only minor cost is the slightly run-on enumeration of inputs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and both parameters are documented. However, for a tool that sits between hardware diagnostics and model download/upscaling siblings, the description does not establish prerequisites or workflow position, leaving the agent to guess the sequence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already documented, making 3 the baseline. The description adds meaning to image_path by explaining it is used for photo-vs-illustration classification, but says nothing about how the priority parameter ('balanced', 'speed', 'quality') changes the recommendation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names specific verbs (inspect, recommend) and a concrete resource (model, preset, tile size), plus the evidence it uses (GPU specs, VRAM tier, CPU threads, image characteristics). This separates it from pure-lookup siblings such as list_available_models or get_image_metadata, though the overlap with get_system_diagnostics is not explicitly addressed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the tool clearly belongs at the start of an upscaling workflow, but there is no explicit when-to-use statement, no exclusion of alternatives, and no mention of how it relates to get_system_diagnostics or download_model. The agent must infer the ordering and the routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upscale_imageUpscale ImageA

Upscale an image to 8K, 16K, 4x, or custom resolution using UpscaleX. Automatically optimizes between Vulkan GPU acceleration and multi-threaded CPU fallback.

NameRequiredDescriptionDefault
ttaNoEnable Test-Time Augmentation for higher quality at the cost of speed.
modelNoRealESRGAN model ID from catalog (e.g. 'realesrgan-x4plus', 'realesrgan-x4plus-anime', '4x-ultrasharp', '4x-nmkd-superscale').realesrgan-x4plus
gpu_idNoHardware device selection: 'auto' (picks discrete GPU), integer ID ('0', '1'), or 'cpu' for CPU-only multi-threaded processing.auto
targetNoTarget resolution preset ('16k', '8k', '4k', '4x', '2x', or 'WIDTHxHEIGHT'). Defaults to '16k' (4x upscale).16k
tile_sizeNoGPU tile size in pixels (default 256, safe for 4GB-8GB VRAM).
image_pathYesAbsolute or relative path to the source image (PNG, JPG, WEBP).
output_pathNoOptional path for the upscaled output. If omitted, saves next to source.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses the Vulkan GPU vs multi-threaded CPU fallback behavior, which is real added context, but omits that this is a write operation producing a file, whether an existing output is overwritten, and the dependency on model availability.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two front-loaded sentences with no redundant wording: the first states the action and targets, the second states the runtime behavior. Nothing needs trimming.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the schema fully covers parameters. The description covers hardware selection behavior well; the only meaningful omission is the prerequisite relationship to the model-listing/downloading siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all seven parameters are already documented in the schema. The description only echoes the target presets and adds no syntax, constraint, or interaction guidance beyond that, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb (upscale), resource (image), and named engine (UpscaleX) with the supported targets (8K, 16K, 4x, custom). No sibling tool does anything similar, so an agent can distinguish it immediately from get_image_metadata or recommend_model.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: call this when you need a resolution increase. However, it never states prerequisites, such as whether the referenced model must first be fetched via download_model or validated via recommend_model, nor when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv0.1.2
    • First observedcalculate_print_dpi
    • First observeddownload_model
    • First observedget_image_metadata
    • First observedget_system_diagnostics
    • First observedlist_available_models
    • First observedrecommend_model
    • First observedupscale_image

TDQS

A3.7/5.0

Scored across 7 tools

Disambiguation4/5

Each tool has a recognizable distinct role: diagnostics, upscaling, recommendation, download, metadata, catalog listing, and DPI math. The only mild overlap is recommend_model vs list_available_models and get_image_metadata's print sizing vs calculate_print_dpi, but the descriptions make the boundaries clear enough.

Naming Consistency5/5

All seven tools follow a strict snake_case verb_noun pattern (get_, upscale_, recommend_, download_, list_, calculate_), with no mixed conventions or vague names.

Tool Count5/5

Seven tools is well-scoped for an image-upscaling service: one primary action plus the supporting discovery, setup, and inspection steps needed to use it.

Completeness4/5

The surface covers the full pipeline from hardware detection through model discovery/download and upscaling to metadata and print-fidelity checks. Minor gaps exist: no job status/progress check for long upscales and no way to remove or uninstall a downloaded model despite listing installation status.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers