Skip to main content
Glama

Upload or Generate Asset

upload_asset

Upload assets for PowerPoint (.pptx) generation: company template, logo, image, or document — or AI-generate an image.

Purposes: • logo — company logo for chrome (PNG/JPG/SVG, max 5MB) → logo_id • image — image for the Image component (max 10MB) → asset_id • theme — company template PPTX → theme_id; slides with it render NATIVELY on the template (masters/layouts/chrome) • generate_image — AI-generate via prompt → asset_id • translate — PPTX to translate → deck job_id (requires target_language) • pdf — PDF → editable slides; pass target_language to also translate • recreate — image OF a slide → editable PPTX slide (honest annotate/preserve fallback). Use image to just place a picture

Files >3MB (pdf/translate/theme) — and recreate on chat hosts — omit data: a drop-zone appears in the result card; bytes never pass through the agent.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataNoBase64-encoded file content. Required for logo/image/theme/translate. Optional for pdf — omit to get a drop-zone (recommended for files >3MB).
sizeNoImage dimensions for generate_image (default 1024×1024)
modelNoExplicit gateway model ID. Overrides `quality`.
job_idNoFor purpose=brand: keep the look a recreate rendered in — pass that recreate's job_id and its exact kit is saved as yours (no upload, no charge).
promptNoImage description (required when purpose=generate_image)
purposeYesAsset type (required). brand = a .pptx/.potx corporate template imported as your brand kit (theme is the same thing under its old name).
qualityNodraft = Flux Schnell. balanced (default) = Gemini Flash Image. premium = GPT Image 2. Overridden by `model`.
filenameNoOriginal filename (for type detection)
positionNoLogo position: top-left / top-right / bottom-left / bottom-right
theme_idNoFor purpose=recreate: the brand kit or built-in theme to render the recreated slide in — your kit slug, `slug@version`, or a built-in id. Omit to keep the look of the source image.
theme_nameNoName for extracted theme (purpose=theme)
target_languageNoRequired for purpose=translate. Optional for purpose=pdf — chains pdf→pptx→translate in one call.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / job_id
      Added value: +{
      +  "description": "For purpose=brand: keep the look a recreate rendered in — pass that recreate's job_id and its exact kit is saved as yours (no upload, no charge).",
      +  "type": "string"
      +}
    • addedInput schema / properties / theme_id
      Added value: +{
      +  "description": "For purpose=recreate: the brand kit or built-in theme to render the recreated slide in — your kit slug, `slug@version`, or a built-in id. Omit to keep the look of the source image.",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / target_language / enum
      Previous value: -[
      -  "en",
      -  "de",
      -  "fr",
      -  "es",
      -  "it",
      -  "pt",
      -  "nl",
      -  "sv",
      -  "da",
      -  "no",
      -  "fi",
      -  "is",
      -  "pl",
      -  "cs",
      -  "sk",
      -  "hu",
      -  "ro",
      -  "hr",
      -  "sl",
      -  "et",
      -  "lt",
      -  "lv",
      -  "ru",
      -  "uk",
      -  "bg",
      -  "sr",
      -  "tr",
      -  "ca",
      -  "gl",
      -  "id",
      -  "vi",
      -  "el"
      -]New value: +[
      +  "en",
      +  "de",
      +  "fr",
      +  "es",
      +  "it",
      +  "pt",
      +  "nl",
      +  "sv",
      +  "da",
      +  "no",
      +  "fi",
      +  "is",
      +  "pl",
      +  "cs",
      +  "sk",
      +  "hu",
      +  "ro",
      +  "hr",
      +  "sl",
      +  "et",
      +  "lt",
      +  "lv",
      +  "ru",
      +  "uk",
      +  "bg",
      +  "sr",
      +  "tr",
      +  "ca",
      +  "gl",
      +  "id",
      +  "vi",
      +  "el",
      +  "zh",
      +  "ja",
      +  "ko"
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / quality / description
      Previous value: -"draft = Flux Schnell. balanced (default) = FLUX.2 Flash. premium = GPT Image 2. Overridden by `model`."New value: +"draft = Flux Schnell. balanced (default) = Gemini Flash Image. premium = GPT Image 2. Overridden by `model`."
  4. Changed1 schema field changed
    • changedInput schema / properties / quality / description
      Previous value: -"draft = Flux Schnell. balanced (default) = Gemini Flash Image. premium = Imagen 4 Fast. Overridden by `model`."New value: +"draft = Flux Schnell. balanced (default) = FLUX.2 Flash. premium = GPT Image 2. Overridden by `model`."
  5. Changed2 schema fields changed
    • changedInput schema / properties / purpose / description
      Previous value: -"Asset type (required)"New value: +"Asset type (required). brand = a .pptx/.potx corporate template imported as your brand kit (theme is the same thing under its old name)."
    • changedInput schema / properties / purpose / enum
      Previous value: -[
      -  "logo",
      -  "image",
      -  "theme",
      -  "generate_image",
      -  "translate",
      -  "pdf",
      -  "recreate"
      -]New value: +[
      +  "logo",
      +  "image",
      +  "theme",
      +  "brand",
      +  "generate_image",
      +  "translate",
      +  "pdf",
      +  "recreate"
      +]
  6. Changed1 schema field changed
    • changedInput schema / properties / purpose / enum
      Previous value: -[
      -  "logo",
      -  "image",
      -  "theme",
      -  "generate_image",
      -  "translate",
      -  "pdf"
      -]New value: +[
      +  "logo",
      +  "image",
      +  "theme",
      +  "generate_image",
      +  "translate",
      +  "pdf",
      +  "recreate"
      +]
  7. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, non-destructive, non-idempotent mutation. The description adds substantial context beyond that: per-type size caps (5MB/10MB), the >3MB drop-zone path where 'bytes never pass through the agent', and the brand purpose being 'no upload, no charge'. It stops short of stating idempotency or failure behavior, so not a 5.

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?

Front-loaded with the one-line purpose, then a scannable bulleted purpose list, then the drop-zone rule. Dense but every line carries invocation-relevant detail; slightly heavy on prose in the recreate and brand bullets.

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 12-parameter tool with no output schema, the description covers the purpose→parameter→output-field mapping and the large-file escape hatch, and explicitly names the IDs returned. Missing idempotency/retry guidance and sibling disambiguation for translate keeps it from a 5.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds real value by mapping parameters to purposes (target_language required for translate, optional for pdf chaining; theme_id/theme_name only meaningful for recreate/theme) — cross-parameter relationships the schema states only piecewise.

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 states a specific verb (upload/generate) and enumerates every resource it handles with purpose-specific output field names (logo_id, asset_id, theme_id, job_id). An agent can tell exactly what each purpose produces without opening the schema.

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?

Each purpose carries a clear 'use when' note (e.g., 'recreate — image OF a slide... Use `image` to just place a picture') and files >3MB are routed to a drop-zone. It does not, however, clarify when to use its `translate` purpose versus the sibling translate_deck tool, which is a meaningful omission.

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.