putty
MCPMedia

Media

Generate, edit, and compose brand assets. Every output is a tracked asset with a credit cost.

The Media category makes images and video from a brand kit, and hands them back as tracked assets. An asset has a status, a credit cost, and — once it is completed — a signed URL. Nothing returns a file inline.

The queue model

Generation is asynchronous. media_generate_image, media_edit_image, media_generate_video and media_vectorize_logo return an asset id and "status": "queued" immediately; the work runs on the media queue. Poll media_status with that id until it is completed, then the same call returns the signed URL.

The URL is always a Putty-signed link into Putty's own storage. Generated files are copied into that bucket before the asset completes, so it does not point at a third-party host that could expire it or change under you.

Video needs a confirmation

media_generate_video is two calls by design. Call it without confirm and it prices the job, creates the asset in needs_confirmation, and submits nothing. Show the user the quoted credits and the duration. Call it again with confirm: true to spend them. There is no way to start a video job without having shown someone the price first.

Composed graphics

media_compose_graphic is the one tool that draws words. It renders one of four committed HTML layouts to PNG in a sandbox with headless Chromium, in the brand kit's real palette, fonts and type scale: og (1200×630), x-header (1500×500), post-square (1080×1080), post-portrait (1080×1350). Every text-free asset in a marketing pack is generated instead.

media_brand_pack is the whole set in one tracked job — a favicon set, an OG card, an X header, a profile picture, a 512×512 token logo, and three launch-post images. The pack id is derived from the brand kit, so calling it twice for the same kit returns the same id and the dashboard de-duplicates rather than showing two.

Finding an asset id

media_asset_list lists the assets you own, newest first, optionally filtered to one project or one stored file kind. It is where you look before media_edit_image or media_generate_video, both of which take a completed source asset.

On this page