Skip to main content
Glama

Quote animation

quote_animation
Read-only

Calculate the current credit price and issue a short-lived quote_id. This does not start generation or spend credits.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
requestYesComplete intended animation request; quoting starts no generation.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
creditsYesQuoted credits; show the amount to the user before generation.
quote_idYesShort-lived quote owned by this user and OAuth client; can bind to one logical generation key.
breakdownYesPublic cost components.
expires_atYesQuote expiry; re-quote and confirm if it expires or price changes.
resolved_exportNoResolved sampling summary for an independent FPS export.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / $defs / ExportOptions / properties / output_formats / items / enum
      Previous value: -[
      -  "clip_video",
      -  "webm_alpha",
      -  "prores_4444",
      -  "frames_zip",
      -  "spritesheet",
      -  "spritesheet_json",
      -  "unity_meta",
      -  "unity_pack",
      -  "godot_pack",
      -  "unreal_paper2d_pack",
      -  "cocos_creator_pack",
      -  "construct3_pack"
      -]New value: +[
      +  "clip_video",
      +  "webm_alpha",
      +  "prores_4444",
      +  "gif",
      +  "frames_zip",
      +  "spritesheet",
      +  "spritesheet_json",
      +  "unity_meta",
      +  "unity_pack",
      +  "godot_pack",
      +  "unreal_paper2d_pack",
      +  "cocos_creator_pack",
      +  "construct3_pack"
      +]
  2. Changed1 schema field changed
    • changedInput schema / $defs / ExportOptions / properties / output_formats / items / enum
      Previous value: -[
      -  "clip_video",
      -  "webm_alpha",
      -  "prores_4444",
      -  "frames_zip",
      -  "spritesheet",
      -  "spritesheet_json",
      -  "unity_meta",
      -  "unity_pack",
      -  "godot_pack",
      -  "unreal_paper2d_pack",
      -  "cocos_creator_pack"
      -]New value: +[
      +  "clip_video",
      +  "webm_alpha",
      +  "prores_4444",
      +  "frames_zip",
      +  "spritesheet",
      +  "spritesheet_json",
      +  "unity_meta",
      +  "unity_pack",
      +  "godot_pack",
      +  "unreal_paper2d_pack",
      +  "cocos_creator_pack",
      +  "construct3_pack"
      +]
  3. Changed13 schema fields changed
    • addedInput schema / $defs / AnimationCreateRequest / properties / export / default / fps
      Added value: +null
    • addedInput schema / $defs / ExportOptions / properties / fps
      Added value: +{
      +  "anyOf": [
      +    {
      +      "exclusiveMinimum": 0,
      +      "maximum": 60,
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Source-speed sampling frequency, without interpolation. Independent exports only; requires spritesheet and spritesheet_json. A short final frame preserves the selection duration.",
      +  "title": "Fps",
      +  "x-description-zh": "按源视频原速采样,不补帧;仅用于独立导出,需 spritesheet 和 spritesheet_json;短尾帧保留选区总时长。"
      +}
    • addedInput schema / $defs / ExportOptions / properties / frame_count / anyOf
      Added value: +[
      +  {
      +    "maximum": 240,
      +    "minimum": 1,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / $defs / ExportOptions / properties / frame_count / default
      Previous value: -24New value: +null
    • changedInput schema / $defs / ExportOptions / properties / frame_count / description
      Previous value: -"Number of frames sampled over the selected interval, not an FPS field."New value: +"Legacy uniform frame count, mutually exclusive with fps. When both are omitted, uses 24 frames."
    • removedInput schema / $defs / ExportOptions / properties / frame_count / maximum
      Removed value: -240
    • removedInput schema / $defs / ExportOptions / properties / frame_count / minimum
      Removed value: -1
    • removedInput schema / $defs / ExportOptions / properties / frame_count / type
      Removed value: -"integer"
    • changedInput schema / $defs / ExportOptions / properties / frame_count / x-description-zh
      Previous value: -"在选段内采样的帧数,不是 FPS 参数。"New value: +"旧版等间隔帧数,与 fps 互斥;两者均省略时使用 24 帧。"
    • changedInput schema / $defs / ExportOptions / properties / output_formats / description
      Previous value: -"Requested asset formats; defaults to spritesheet. Duplicates are removed. Metadata needs its matching texture."New value: +"Requested asset formats; defaults to spritesheet in frame_count mode, or spritesheet plus spritesheet_json in FPS mode. Duplicates are removed. Metadata needs its matching texture."
    • changedInput schema / $defs / ExportOptions / properties / output_formats / x-description-zh
      Previous value: -"请求的资产格式;默认 spritesheet,重复项会去重,元数据需配套纹理。"New value: +"请求的资产格式;帧数模式默认 spritesheet,FPS 模式默认 spritesheet 加 spritesheet_json。重复项会去重,元数据需配套纹理。"
    • addedOutput schema / $defs
      Added value: +{
      +  "ExportWarning": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "code": {
      +        "title": "Code",
      +        "type": "string"
      +      },
      +      "details": {
      +        "additionalProperties": true,
      +        "default": {},
      +        "title": "Details",
      +        "type": "object"
      +      },
      +      "message": {
      +        "title": "Message",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "code",
      +      "message"
      +    ],
      +    "title": "ExportWarning",
      +    "type": "object"
      +  },
      +  "ResolvedExport": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "duration_ms": {
      +        "description": "Sum of manifest frame durations in milliseconds.",
      +        "title": "Duration Ms",
      +        "type": "integer",
      +        "x-description-zh": "Manifest 逐帧时长的毫秒总和。"
      +      },
      +      "fps": {
      +        "description": "Target sampling frequency; never recalculated as frame_count / duration.",
      +        "title": "Fps",
      +        "type": "number",
      +        "x-description-zh": "目标采样频率,不按帧数除以时长重新计算。"
      +      },
      +      "frame_count": {
      +        "description": "Number of samples strictly before the selected end.",
      +        "title": "Frame Count",
      +        "type": "integer",
      +        "x-description-zh": "严格位于选区终点前的采样帧数。"
      +      },
      +      "selection": {
      +        "$ref": "#/$defs/Selection",
      +        "description": "Resolved source interval; full uses measured playable duration.",
      +        "x-description-zh": "实际源区间,full 使用实测可播放时长。"
      +      },
      +      "warnings": {
      +        "default": [],
      +        "description": "Sampling warnings, including repeated source frames without interpolation.",
      +        "items": {
      +          "$ref": "#/$defs/ExportWarning"
      +        },
      +        "title": "Warnings",
      +        "type": "array",
      +        "x-description-zh": "采样警告,包含未补帧而重复采到源帧的情况。"
      +      }
      +    },
      +    "required": [
      +      "selection",
      +      "fps",
      +      "frame_count",
      +      "duration_ms"
      +    ],
      +    "title": "ResolvedExport",
      +    "type": "object"
      +  },
      +  "Selection": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "duration_seconds": {
      +        "anyOf": [
      +          {
      +            "exclusiveMinimum": 0,
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Required when mode=range; positive interval length in seconds.",
      +        "title": "Duration Seconds",
      +        "x-description-zh": "mode=range 时必填,选段时长秒数必须为正。"
      +      },
      +      "mode": {
      +        "default": "full",
      +        "description": "full uses the complete source; range requires duration_seconds.",
      +        "enum": [
      +          "full",
      +          "range"
      +        ],
      +        "title": "Mode",
      +        "type": "string",
      +        "x-description-zh": "full 使用完整来源;range 必须提供 duration_seconds。"
      +      },
      +      "start_seconds": {
      +        "default": 0,
      +        "description": "Range start in seconds from the source beginning.",
      +        "minimum": 0,
      +        "title": "Start Seconds",
      +        "type": "number",
      +        "x-description-zh": "相对源视频起点的选段开始秒数。"
      +      }
      +    },
      +    "title": "Selection",
      +    "type": "object"
      +  }
      +}
    • addedOutput schema / properties / resolved_export
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/ResolvedExport"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Resolved sampling summary for an independent FPS export.",
      +  "x-description-zh": "独立 FPS 导出的确定采样摘要。"
      +}
  4. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: the quote_id is short-lived and no credits are spent, which tells the agent this is a cheap preflight call. It omits how long the quote stays valid, which matters because annotations mark it non-idempotent (repeat calls may reprice).

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 tight sentences with no waste; the core action and the key non-effect are both front-loaded. Nothing redundant with 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?

An output schema exists so return values need not be explained, and the description covers the pricing purpose and the no-spend guarantee. For a quoting endpoint whose value hinges on the quote's lifetime and its handoff to generate_animation, the vague 'short-lived' is the only meaningful gap.

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 description coverage is 100%, so the schema carries the burden of documenting the full AnimationCreateRequest tree. The description adds only the framing that the request must be the 'complete intended animation request', which is marginal beyond what the schema already says.

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 two-part action (calculate credit price, issue a short-lived quote_id) on the animation resource, which is clear and concrete. It differentiates itself from generate_animation by explicitly denying generation, but it never distinguishes itself from the closely named siblings quote_animation_export and quote_video_generation.

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 negative framing ('does not start generation or spend credits') implies this is the pricing step to call before generating, but usage is left to inference. No explicit when-to-use statement, no prerequisites, and no routing to quote_animation_export or quote_video_generation for other artifact types.

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