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. 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 导出的确定采样摘要。"
      +}
  2. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark it readOnlyHint=true, and the description adds that it issues a short-lived quote_id and does not spend credits. This goes beyond the annotation by clarifying the side-effect-free nature and the temporary validity of the quote. No contradiction with annotations.

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 concise sentences with no fluff. The primary action and the critical non-effect are stated upfront, making the description easily scannable and informative.

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 has an output schema, so return values are covered elsewhere. The description adequately covers the purpose and the key behavioral constraint (no generation/spend). The only minor gap is not explaining how the quote_id is used later, but that is likely in the output schema or sibling tool descriptions.

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?

The single parameter 'request' is fully documented in the schema with rich nested descriptions. The tool description itself adds no parameter-specific guidance, but schema coverage is 100%, so the baseline of 3 is appropriate. The description's lack of additional parameter insight is acceptable given the schema's thoroughness.

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 uses a specific verb ('Calculate') and a clear resource ('current credit price') and result ('short-lived quote_id'). It explicitly states it does not start generation or spend credits, which distinguishes it from generation tools. The name and context reinforce the animation generation quoting purpose.

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 description implies usage before generation ('does not start generation') but does not explicitly name alternatives like quote_animation_export or state when to prefer this tool. The 'short-lived quote_id' hints at a pre-generation step, but the agent is left to infer the exact selection criteria against sibling tools.

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