Skip to main content
Glama

Upscale a photo or video

upscale

Make a photo or video sharper and bigger. Uses site credits with OAuth or USD with an API key; videos are priced by length.

Input Schema

NameRequiredDescriptionDefault
sizeNoTarget size. Photos: 2k, 4k (default) or 8k. Videos: 720p, 1080p (default), 2k or 4k.
imageNoChatGPT only: the photo the user attached.
max_usdNoAPI key only: maximum approved USD as a decimal string with up to 9 fractional digits. Set currency to USD. Only set after the user confirms the quoted cost_usd. Never convert max_credits.
currencyNoBilling unit: USD for API keys; credits for OAuth (optional for existing OAuth clients).
image_urlNoA photo to make sharper and bigger (https or popnow:// link).
video_urlNoOr a video to make sharper (https or popnow:// link).
max_creditsNoOAuth only: the most site credits the user agreed to spend on this. Only set it after the user confirmed a quoted price.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / currency
      Added value: +{
      +  "description": "Billing unit: USD for API keys; credits for OAuth (optional for existing OAuth clients).",
      +  "type": "string"
      +}
    • changedInput schema / properties / image / type
      Previous value: -[
      -  "null",
      -  "object"
      -]New value: +"object"
    • changedInput schema / properties / max_credits / description
      Previous value: -"The most credits the user agreed to spend on this. Only set it after the user confirmed a quoted price."New value: +"OAuth only: the most site credits the user agreed to spend on this. Only set it after the user confirmed a quoted price."
    • addedInput schema / properties / max_usd
      Added value: +{
      +  "description": "API key only: maximum approved USD as a decimal string with up to 9 fractional digits. Set currency to USD. Only set after the user confirms the quoted cost_usd. Never convert max_credits.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A3.7/5.0
Behavior4/5

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

The annotations already declare this is a non-readonly, non-destructive, non-idempotent, open-world operation; the description adds real value on top by disclosing the dual billing model (site credits under OAuth, USD under an API key) and that video cost is length-dependent. It stops short of describing that this likely creates an async job whose result must be fetched, which is the main behavioral gap.

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 short sentences with the core action first and the billing caveat second; nothing is wasted and the important constraint (cost depends on medium and auth type) lands early.

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 7-parameter, nested-object, cost-incurring mutation tool with no output schema, the description is thin: it never says what the call returns, whether the result is synchronous or a job to poll via get_job, or what happens to credits on failure. The schema covers parameters well, but the operational contract is left implicit.

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 size options, the image object, image_url/video_url, and the max_credits/max_usd confirmation flow are already fully documented in the schema. The description only adds that video pricing depends on length, which is marginal over the structured data.

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?

A specific verb-plus-resource statement ('Make a photo or video sharper and bigger') that immediately tells an agent this is the enlargement/enhancement tool. It is distinguished from siblings by its stated scope but never references adjacent tools such as edit_image or expand_image, so there is no explicit sibling differentiation.

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?

The billing sentence implies two usage contexts (OAuth session vs API key) and warns that video cost scales with length, which nudges the agent toward a cost check. However, there is no explicit 'use this instead of X when...' guidance and no statement of preconditions or when not to call it.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.