Skip to main content
Glama

Finish thumbnail upload

finalize_post_thumbnail
Destructive

Finalizes a thumbnail upload started with create_post_thumbnail_upload. Call this after PUTting the image bytes to the presigned URL. Verifies the bytes landed in S3 with an image content-type (jpeg/png/webp/gif) and writes custom_thumbnail_url + custom_thumbnail_s3_key on the post's video_settings row. All sibling posts on the same upload use the new cover at publish time (YouTube, Instagram Reels, Facebook Reels and Pinterest). Errors: 'reserved' when the PUT hasn't landed yet (retry in a few seconds), or 'unsupported content type' when the object's Content-Type isn't an image MIME.

Input Schema

NameRequiredDescriptionDefault
upload_tokenYesThe upload_token returned by create_post_thumbnail_upload. Identifies the specific pending upload in S3.
video_post_idYesThe video_posts.id you passed to create_post_thumbnail_upload.
idempotency_keyNoOptional client-generated key (e.g., a UUID) to make retries safe. Identical calls with the same key within 10 minutes return the original result instead of running the write twice.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing what is mutated (the post's video_settings row), a cross-post side effect (sibling posts on the same upload use the cover at publish time, across four named platforms), and concrete error strings with remediation. This is exactly the kind of write-scope and failure-mode detail annotations cannot convey.

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-loads the action and the prerequisite, then layers in side effects and errors. Every sentence carries information an agent needs; there is no filler or restatement of the title.

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?

For an annotated mutation with no output schema, the description covers prerequisite state, mutation target, cross-post consequences, and error handling. An agent has everything needed to call it correctly and to recover from the common failure mode.

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; the description adds value by tying upload_token to the 'reserved' error condition and explaining that its absence of a landed PUT is what triggers the retry. The idempotency_key is left to the schema, which documents it well.

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?

States a specific verb and resource ('finalizes a thumbnail upload') and explicitly ties it to the sibling create_post_thumbnail_upload, so an agent can place it in the upload flow without opening either schema. It also names the exact fields written (custom_thumbnail_url, custom_thumbnail_s3_key).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

Gives an explicit ordering precondition: call only after PUTting image bytes to the presigned URL obtained from create_post_thumbnail_upload. The retry guidance for the 'reserved' error also tells the agent what to do when the prerequisite isn't yet satisfied.

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.