Skip to main content
Glama

Create thumbnail upload

create_post_thumbnail_upload

Reserves a presigned S3 PUT URL scoped to a specific video post's custom-thumbnail slot. Use this when the user has a LOCAL image file they want as the cover for an existing video post. Returns { upload_token, presigned_url, method: 'PUT', expires_at }. PUT the image bytes to presigned_url with Content-Type set to image/jpeg, image/png, image/webp, or image/gif. Then call finalize_post_thumbnail with the same video_post_id and upload_token to wire it in as the cover. The cover is used on YouTube, Instagram Reels, Facebook Reels and Pinterest. Does NOT create a video_uploads library entry, so nothing to clean up afterward. For a public image URL, use update_post with custom_thumbnail_url directly. For an image already in the library, use update_post with custom_thumbnail_upload_id.

Input Schema

NameRequiredDescriptionDefault
video_post_idYesThe video_posts.id whose cover you want to set. All sibling posts on the same upload share the cover (they read from the same video_settings row).
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.6/5.0
Behavior5/5

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

Annotations only declare the generic write/non-destructive profile; the description goes far beyond by disclosing the return shape ({ upload_token, presigned_url, method, expires_at }), that the URL expires, allowed Content-Types, the mandatory finalize_post_thumbnail follow-up, and the absence of cleanup side effects. It also reveals the cross-post sharing behavior that a caller would otherwise not anticipate.

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 core action and return contract, then alternatives last — a sensible ordering with little filler. The platform list ('YouTube, Instagram Reels, Facebook Reels and Pinterest') is the one sentence that borders on trivia for a caller deciding how to invoke the tool.

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 a write tool with no output schema, the description supplies the return shape, the required follow-up call, the upload protocol, and the side-effect profile. Nothing an agent needs in order to invoke it correctly is missing.

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 coverage is 100% and the video_post_id description already explains the shared-cover semantics, so the schema does the heavy lifting. The description reinforces that the same video_post_id must be passed to finalize_post_thumbnail but adds no new syntax or constraints for idempotency_key. Baseline 3 applies.

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 precise verb and resource ('Reserves a presigned S3 PUT URL scoped to a specific video post's custom-thumbnail slot') and explicitly separates itself from create_video_upload ('Does NOT create a video_uploads library entry'). An agent can distinguish it from every sibling without opening a schema.

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 the exact triggering condition ('when the user has a LOCAL image file ... for an existing video post') and names two alternative paths with the condition selecting each: public image URL -> update_post with custom_thumbnail_url; already-in-library image -> update_post with custom_thumbnail_upload_id. Both when-to-use and when-not-to-use are covered.

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.