Skip to main content
Glama

StockCake

Upscale Image

upscale_image

Upscale a StockCake image or one of your edited images 2x, 4x or 8x (lossless PNG output). Charges credits. Waits up to 20 s, then returns a job_id for get_job. Re-sending identical arguments within 2 hours returns the same job (reused: true) instead of charging again. Requires a free StockCake account (the host will prompt to sign in).

Input Schema

NameRequiredDescriptionDefault
imageYesA StockCake image id (from search_images), one of your own edited image ids (from a previous result), or a job_id. Never a URL.
scaleYes
contextYesIn one sentence, what is the user trying to make or find?
llm_modelYesThe exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" — never guess.
conversation_idNoPass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "credits_charged": {
      -        "type": "number"
      -      },
      -      "image": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "dimensions": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "height": {
      -                    "type": "number"
      -                  },
      -                  "width": {
      -                    "type": "number"
      -                  }
      -                },
      -                "required": [
      -                  "width",
      -                  "height"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Output pixel size; null when the file could not be probed"
      -          },
      -          "id": {
      -            "description": "Edited image id — pass it to get_image (preview), download_image, or as an image reference",
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          },
      -          "url": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "id",
      -          "url",
      -          "dimensions"
      -        ],
      -        "type": "object"
      -      },
      -      "job_id": {
      -        "type": "string"
      -      },
      -      "status": {
      -        "const": "completed",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "job_id",
      -      "status",
      -      "image",
      -      "credits_charged"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "credits_charged": {
      -        "type": "number"
      -      },
      -      "job_id": {
      -        "type": "string"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "status": {
      -        "const": "pending",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "job_id",
      -      "status",
      -      "credits_charged",
      -      "message"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "code": {
      -        "type": "string"
      -      },
      -      "message": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "code",
      -      "message"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "credits_charged": {
      +        "type": "number"
      +      },
      +      "image": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "dimensions": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "height": {
      +                    "type": "number"
      +                  },
      +                  "width": {
      +                    "type": "number"
      +                  }
      +                },
      +                "required": [
      +                  "width",
      +                  "height"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Output pixel size; null when the file could not be probed"
      +          },
      +          "id": {
      +            "description": "Edited image id — pass it to get_image (preview), download_image, or as an image reference",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "url": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "url",
      +          "dimensions"
      +        ],
      +        "type": "object"
      +      },
      +      "job_id": {
      +        "type": "string"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "reused": {
      +        "const": true,
      +        "type": "boolean"
      +      },
      +      "status": {
      +        "const": "completed",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "job_id",
      +      "status",
      +      "image",
      +      "credits_charged"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "credits_charged": {
      +        "type": "number"
      +      },
      +      "job_id": {
      +        "type": "string"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "reused": {
      +        "const": true,
      +        "type": "boolean"
      +      },
      +      "status": {
      +        "const": "pending",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "job_id",
      +      "status",
      +      "credits_charged",
      +      "message"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "code": {
      +        "type": "string"
      +      },
      +      "message": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "code",
      +      "message"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed1 schema field changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "credits_charged": {
      -        "type": "number"
      -      },
      -      "image": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "id": {
      -            "description": "Edited image id — pass it to download_image or as an image reference",
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          },
      -          "url": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "id",
      -          "url"
      -        ],
      -        "type": "object"
      -      },
      -      "job_id": {
      -        "type": "string"
      -      },
      -      "status": {
      -        "const": "completed",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "job_id",
      -      "status",
      -      "image",
      -      "credits_charged"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "credits_charged": {
      -        "type": "number"
      -      },
      -      "job_id": {
      -        "type": "string"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "status": {
      -        "const": "pending",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "job_id",
      -      "status",
      -      "credits_charged",
      -      "message"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "code": {
      -        "type": "string"
      -      },
      -      "message": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "code",
      -      "message"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "credits_charged": {
      +        "type": "number"
      +      },
      +      "image": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "dimensions": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "height": {
      +                    "type": "number"
      +                  },
      +                  "width": {
      +                    "type": "number"
      +                  }
      +                },
      +                "required": [
      +                  "width",
      +                  "height"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Output pixel size; null when the file could not be probed"
      +          },
      +          "id": {
      +            "description": "Edited image id — pass it to get_image (preview), download_image, or as an image reference",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "url": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "url",
      +          "dimensions"
      +        ],
      +        "type": "object"
      +      },
      +      "job_id": {
      +        "type": "string"
      +      },
      +      "status": {
      +        "const": "completed",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "job_id",
      +      "status",
      +      "image",
      +      "credits_charged"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "credits_charged": {
      +        "type": "number"
      +      },
      +      "job_id": {
      +        "type": "string"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "status": {
      +        "const": "pending",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "job_id",
      +      "status",
      +      "credits_charged",
      +      "message"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "code": {
      +        "type": "string"
      +      },
      +      "message": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "code",
      +      "message"
      +    ],
      +    "type": "object"
      +  }
      +]
  3. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Discloses cost (charges credits), latency ceiling (20 s), the async handoff to get_job, the 2-hour dedupe window returning the same job with reused: true without re-charging, and the auth prerequisite. That is far more than the annotations convey; the only tension is that this dedupe behavior reads as effectively idempotent while idempotentHint is false, but the annotation is a hint and the description is explicit and more useful.

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?

Front-loaded with what is produced and at which scales, then cost, latency, polling path, dedupe, and auth in short declarative clauses. Every sentence carries a distinct operational fact with no filler.

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

Completeness5/5

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

Output schema exists, so return shape need not be described; the description still covers the essentials an agent needs before calling: credits spent, timeout behavior, follow-up tool (get_job), repeat-call semantics, and the account requirement.

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 80% and the image, context, llm_model and conversation_id parameters are already documented in the schema, including the 'never a URL' rule. The description only echoes the 2x/4x/8x scale options and adds no new syntax or format guidance for the parameters.

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 and resource (upscale a StockCake or edited image) plus the exact scale factors and output format (lossless PNG), which implicitly separates it from sibling resize_image. It does not name the sibling alternative explicitly, 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 Guidelines4/5

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

Gives clear operational context: it charges credits, blocks up to 20 s, then hands off a job_id to get_job, and requires a free account. It does not state when to prefer this over resize_image or what happens on non-square/oversized inputs, so no explicit exclusion is provided.

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.

Resources