Skip to main content
Glama

Create TikTok carousels

create_tiktok_carousel
Destructive

Render a batch of TikTok photo carousels from a template: swipeable 1080x1920 slides, real library photos, the copy composited as REAL text (never generated into the image, so it says exactly what you write). ASYNC — returns a jobId; poll get_job until completed, and the slide URLs come back on the job itself. SPENDS 1 CREDIT PER CAROUSEL. Max 12 per call. Keys in values must come from list_carousel_templates; unknown ones are reported in ignoredKeys, not rejected. Image slots take either a collection:<pool> key (stock photos, see the template's examples) or a direct image URL. For candid phone-shot backgrounds that match each slide's line, generate them first with studio_generate_image (modelKey 'replicate-pruna-p-image-ideogram', 1 credit, aspectRatio '9:16', prompt like 'candid iPhone photo of a laptop showing a blurred inbox at night, phone-camera grain, no people, no readable text, no logos') and pass the returned URL.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNo
rowsYesOne carousel per entry
seedNoFixes photo picks so the same rows reproduce the same slides
templateKeyYesTemplate id from list_carousel_templates
noRepeatScopeNo'row' (default) de-dupes photos within one carousel; 'batch' across the whole batch

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare the write/destructive/open-world profile, and the description goes well beyond them: credit cost per carousel, async job lifecycle and where slide URLs land, the fact that copy is real text rather than rendered pixels, and the non-obvious behavior that unknown `values` keys are reported in ignoredKeys instead of rejected. That ignoredKeys detail is exactly the kind of silent-failure context an agent cannot get from structured fields.

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 purpose, then constraints (async, credits, max rows), then the optional image-generation recipe. It is long, and the embedded studio_generate_image prompt example is the one passage that reads as instruction rather than tool definition, but nearly every clause carries operational value.

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 high-complexity, credit-spending, destructive, async tool with no output schema, the description covers the return contract (jobId plus slide URLs on the job), cost, limits, key validation behavior, and the image-slot formats. Nothing an agent needs before invoking it is missing.

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 80%, so the baseline is 3; the description adds genuine semantic meaning on top — `values` keys must originate from list_carousel_templates (schema only says 'Keyed by the template's rowSchema keys'), image slots accept either a `collection:<pool>` reference or a direct URL, and the 12-row cap is restated. Seed and noRepeatScope are left to the schema, hence not a 5.

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?

Opens with a specific verb and resource: 'Render a batch of TikTok photo carousels from a template', then narrows the artifact ('swipeable 1080x1920 slides, real library photos, copy composited as REAL text'). This is clearly distinguishable from siblings like create_slides, create_video and create_social_post without opening any 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?

Explicitly states the async workflow ('returns a jobId; poll get_job until completed'), names the prerequisite tool for key discovery (list_carousel_templates), names the alternative generation path for backgrounds (studio_generate_image with specific modelKey and prompt recipe), and gives hard limits (max 12 per call). When/when-not and alternatives are all present.

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