Uniscript — AI Carousel Maker
Server Details
Finished TikTok/Instagram carousels from a topic, photos or video. Edit any layer, export PSD/SVG.
- Status
- Healthy
- Uptime
- 58.6% over 21 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- sindebobel123/uniscript-mcp
- GitHub Stars
- 0
- Server Listing
- Uniscript MCP
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 14 tools
build_carousel (idea_id → carousel) and create_carousel (topic → carousel, does idea generation internally) overlap significantly, and create_carousel_from_video duplicates the video_to_idea + build_carousel pipeline. Descriptions do clarify the differences, but an agent could easily misselect between these pairs.
Nearly all tools follow a consistent verb_noun snake_case pattern (create_carousel, get_carousel, list_carousels, upload_image, export_layers). The lone outlier is video_to_idea, which uses a noun-pipeline form instead of a verb, a minor deviation.
14 tools is well within the sweet spot for this domain, and every tool covers a distinct capability (creation, editing, export, media upload, account/billing, discovery). No tool feels padding.
The surface covers the full carousel lifecycle — idea generation, creation (from topic, idea, or video), editing, retrieval, listing, export, uploads, and billing. The one clear gap is a delete/remove_carousel operation, forcing agents to work around carousel cleanup.
Available Tools
14 toolsbuild_carouselBuild carousel from ideaAInspect
Turn an idea from generate_ideas into a finished carousel (slides + photos + render). Takes about 20–40 s, uses 1 carousel.
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | Color theme id (list_options). Default: uniscript. | |
| images | No | Your own photos to build the carousel from (https links or base64), like 'Your photos' in the app. | |
| layout | No | editorial = photo on top, text below; overlay = text over full photo; frame = framed photo. | |
| slides | No | Number of slides. Default: AI decides. | |
| idea_id | Yes | Id of the idea to build into a carousel. | |
| strategy | No | Carousel structure id (list_options), e.g. listicle, howto, myths. | |
| body_font | No | Body font name (list_options.fonts). | |
| mix_stock | No | With images/photo_ids: also allow Uniscript stock photos (default: only yours). | |
| photo_ids | No | Already uploaded photo_ids (upload_image) to build from. | |
| hook_style | No | Premium cover background style id (list_options.hook_styles), like the 'Hook style' option in the app. | |
| headline_font | No | Headline font name (list_options.fonts). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-readonly, non-destructive, non-idempotent, closed-world write. The description adds meaningful context beyond that: a 20–40 s runtime expectation and that it consumes 1 carousel credit — both operationally relevant for an agent deciding whether to call it and how to handle latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the core action front-loaded and the cost/latency caveat trailing. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter generative tool with a fully documented schema and no output schema, the description covers origin, output shape (slides + photos + render), latency, and quota. The one gap is that it never says what identifier or handle comes back, which matters if the agent needs to poll get_carousel or edit_carousel afterward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every one of the 11 parameters (theme, layout, strategy, slides, fonts, images/photo_ids, mix_stock, hook_style) is already documented in the schema, including defaults and cross-references to list_options. The description adds no parameter semantics of its own, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Turn an idea ... into a finished carousel') and names the upstream producer (generate_ideas), so the agent knows an idea_id must come from there. It does not, however, distinguish itself from the sibling create_carousel, which an agent could easily confuse with this one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The prerequisite ('an idea from generate_ideas') and cost ('uses 1 carousel') are stated, which implies when this tool is appropriate. But there is no explicit when-not guidance and no mention of when to prefer create_carousel or create_carousel_from_video instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_carouselCreate carouselAInspect
Create a finished carousel from a topic in one step: Uniscript comes up with the idea, writes the slides, picks photos and renders PNG slides. Takes about 20–40 s. Uses 1 carousel from the user's plan. Returns slide URLs, every slide's layers (for edit_carousel) and a preview image.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Force slide language (en, ru, uk, es, fr, de, it, pt, pl, tr…). Default: detected from topic. | |
| mode | No | value = useful content (default); promo = advertises a business (fill brand/about). | |
| about | No | Promo mode: what the business does, offer details. | |
| brand | No | Promo mode: company / product name. | |
| niche | No | Niche id from list_options (sets the photo style). Default: general. | |
| theme | No | Color theme id (list_options). Default: uniscript. | |
| topic | Yes | What the carousel is about, e.g. '5 mistakes when brewing coffee at home'. Slide language follows the topic language. | |
| images | No | Your own photos to build the carousel from (https links or base64), like 'Your photos' in the app. | |
| layout | No | editorial = photo on top, text below; overlay = text over full photo; frame = framed photo. | |
| slides | No | Number of slides. Default: AI decides. | |
| strategy | No | Carousel structure id (list_options), e.g. listicle, howto, myths. | |
| body_font | No | Body font name (list_options.fonts). | |
| mix_stock | No | With images/photo_ids: also allow Uniscript stock photos (default: only yours). | |
| photo_ids | No | Already uploaded photo_ids (upload_image) to build from. | |
| hook_style | No | Premium cover background style id (list_options.hook_styles), like the 'Hook style' option in the app. | |
| hook_formula | No | Hook formula id for the cover headline (list_options). Default: AI picks. | |
| niche_custom | No | Free-text niche if none fits, e.g. 'ceramics studio'. | |
| headline_font | No | Headline font name (list_options.fonts). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Going well beyond the annotations, it discloses latency ('about 20-40 s'), cost ('Uses 1 carousel from the user's plan'), and the return payload (slide URLs, per-slide layers, preview image). The credit consumption in particular is critical behavioral context for a non-read-only, non-idempotent operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with the core action, then cost/latency, then return shape. No filler and nothing repeated from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generation tool with no output schema, it covers the three things an agent most needs before calling: what it produces, what it costs (plan credit), and how long it takes, plus a pointer to edit_carousel for the returned layers. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with defaults, enums, and cross-references to list_options documented per property, so the schema does the heavy lifting. The description adds no parameter-level detail beyond naming the topic concept, which meets the baseline but no more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states a specific verb and resource ('Create a finished carousel from a topic in one step') and enumerates the internal pipeline (idea, slides, photos, render), so the agent knows exactly what it produces. It does not explicitly distinguish itself from the sibling build_carousel, which is the closest candidate for confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicit usage context is clear: topic-in, finished carousel-out, and it points to edit_carousel for follow-up edits. However, it names no alternative for when a different path (build_carousel, create_carousel_from_video, supplying your own photos) should be chosen, leaving the agent to infer from the parameter names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_carousel_from_videoCreate carousel from videoAInspect
Make a carousel from a video — a link (TikTok, Instagram Reels, YouTube Shorts, VK, RuTube…), the file as base64 (≤20 MB) or an upload_id (≤30 MB, see get_video_upload_url). Uniscript watches the video, gets the point and builds the carousel. Takes about 30–60 s. Uses 1 carousel.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Force slide language (en, ru, uk, es, fr, de, it, pt, pl, tr…). Default: detected from topic. | |
| mode | No | value = useful content (default); promo = advertises a business (fill brand/about). | |
| theme | No | Color theme id (list_options). Default: uniscript. | |
| images | No | Your own photos to build the carousel from (https links or base64), like 'Your photos' in the app. | |
| layout | No | editorial = photo on top, text below; overlay = text over full photo; frame = framed photo. | |
| slides | No | Number of slides. Default: AI decides. | |
| filename | No | With video_base64: original file name, e.g. clip.mp4. | |
| strategy | No | Carousel structure id (list_options), e.g. listicle, howto, myths. | |
| body_font | No | Body font name (list_options.fonts). | |
| mix_stock | No | With images/photo_ids: also allow Uniscript stock photos (default: only yours). | |
| photo_ids | No | Already uploaded photo_ids (upload_image) to build from. | |
| upload_id | No | A file uploaded via get_video_upload_url (up to 30 MB). | |
| video_url | No | Link to the video: TikTok, Instagram Reels, YouTube Shorts, VK, RuTube… | |
| hook_style | No | Premium cover background style id (list_options.hook_styles), like the 'Hook style' option in the app. | |
| video_base64 | No | The video file itself as base64 (up to 20 MB). | |
| headline_font | No | Headline font name (list_options.fonts). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the non-read-only, non-destructive, non-idempotent profile, so the bar is lower. The description adds two things annotations can't convey: latency ('about 30–60 s') and cost ('Uses 1 carousel'), plus hard size ceilings per input path — genuinely useful pre-call context. It stops short of saying whether a retry consumes another carousel credit, which is the natural follow-up question.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded: the resource and accepted inputs come first, then pacing and cost. Three sentences with no filler, though the middle line ('Uniscript watches the video, gets the point and builds the carousel') is brand-voice padding rather than operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 16 all-optional parameters and no output schema, the description should state the minimum viable call and what comes back (carousel id? URL?). It covers latency, cost and input sizes but leaves the agent guessing whether video_url alone suffices and what handle the call returns — a real gap for a zero-required-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already explains all 16 parameters, including the 20 MB / 30 MB limits and the list_options references. The description mostly restates the input-source trio and adds no new syntax, defaults, or interaction rules (e.g. whether images can be combined with video_base64), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Make a carousel from a video') and immediately enumerates the accepted video sources (link, base64, upload_id), which distinguishes it from build_carousel, create_carousel and video_to_idea. An agent can tell this is the video-input path 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It routes the agent usefully to get_video_upload_url for the upload_id path and to list_options for theme/strategy/fonts, so usage is implied for those sub-flows. But it never says when to pick this over the sibling build_carousel/create_carousel (e.g. 'use this when you have a video, use create_carousel when you have a topic'), so the core selection decision is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_carouselEdit carousel layersAInspect
Change an existing carousel layer by layer and re-render it — no AI, free (doesn't use the plan). Remove elements (op=hide, e.g. layer=number on slide 3), change texts (set_text), move or recolor a layer (op=style with dx/dy/color), put your own image (set_photo with image_url/base64), delete/move/duplicate/insert slides, switch theme, layout or fonts. Saves a new version and returns new slide URLs plus a preview.
| Name | Required | Description | Default |
|---|---|---|---|
| edits | No | Applied in order. | |
| theme | No | Color theme id (list_options). Default: uniscript. | |
| layout | No | editorial = photo on top, text below; overlay = text over full photo; frame = framed photo. | |
| body_font | No | Body font name (list_options.fonts). | |
| version_id | No | Version to start from. Default: latest. | |
| carousel_id | Yes | Carousel id (the id returned when the carousel was created). | |
| headline_font | No | Headline font name (list_options.fonts). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real context beyond the annotations: cost model (no AI, no plan usage), non-destructive versioned save, and the return payload ('new slide URLs plus a preview'). Since annotations already declare readOnlyHint=false and destructiveHint=false, the description usefully explains why deletion ops are still non-destructive (a new version is saved). It does not describe failure modes or how layer/slide mismatches are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and cost in the first clause, then lists capabilities and the return value. It is a single long sentence with dense em-dash clauses — efficient but slightly harder to scan than a short structured list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by stating the return ('new slide URLs plus a preview'). It covers versioning (version_id default latest, a new version is saved) and the theme/layout/font knobs. Minor gaps remain around error behavior for invalid slide/layer references.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including the nested edit fields is already documented in the schema. The description's inline examples (op=hide with layer=number on slide 3, op=style with dx/dy/color) illustrate combinations but add little beyond the schema; the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Change an existing carousel layer by layer and re-render it') and scopes it to existing carousels, which separates it from the create/build siblings without needing their schemas. The enumerated operations (hide, set_text, set_photo, style, slide ops, theme/layout/fonts) make the surface area concrete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear selection signal — 'no AI, free (doesn't use the plan)' — which tells the agent this is the cheap path versus AI-generation siblings, and 'existing' implies the creation tools are for new carousels. It does not explicitly name an alternative tool or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_layersExport layered PSD/SVGAInspect
Export a carousel as layered files: PSD per slide (Photoshop, free Photopea) and SVG per slide (Figma, Illustrator) — every element (background, title, body, number, button…) is a separate layer; SVG texts stay editable. Free.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Default both. | |
| version_id | No | Version id of the carousel; omit for the latest version. | |
| carousel_id | Yes | Carousel id (the id returned when the carousel was created). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag this as non-read-only, non-idempotent, and non-destructive, so the safety bar is partly cleared. The description adds useful output behavior (SVG text remains editable) and a cost signal ("Free"), but with idempotentHint=false it never says a new export is generated on each call or where/how the files are retrieved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the output format named first and elaboration after. Slightly padded by repeated promotional asides ("free Photopea", trailing "Free."), but nothing structurally wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description does not explain what the call returns — file URLs, an export job, or a packaged archive — which matters for a non-idempotent export. Inputs are fully covered by the schema, so the remaining gap is on the return side.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so carousel_id, version_id, and the format enum are already documented, including the 'both' default. The description reinforces the per-slide, per-format output shape but adds no format-selection guidance or syntax beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (export) and resource (carousel) plus the exact artifact produced: one PSD and one SVG per slide, with each element as a separate layer. It is unmistakable against siblings like build_carousel, edit_carousel, or get_carousel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Compatibility notes (Photoshop/Photopea for PSD, Figma/Illustrator for SVG) strongly imply the use case — handing layers to an external design tool — but the description never states when to choose this over get_carousel or create_carousel, nor any prerequisites. Usage is inferred rather than instructed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_ideasGenerate carousel ideasAInspect
Brainstorm carousel ideas (titles + summaries) without building them. Free. Returns idea ids that build_carousel accepts.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Force slide language (en, ru, uk, es, fr, de, it, pt, pl, tr…). Default: detected from topic. | |
| mode | No | value = useful content (default); promo = advertises a business (fill brand/about). | |
| about | No | Promo mode: what the business does, offer details. | |
| brand | No | Promo mode: company / product name. | |
| count | No | How many ideas to generate (default 3). | |
| niche | No | Niche id from list_options (sets the photo style). Default: general. | |
| topic | No | What the carousel is about, e.g. '5 mistakes when brewing coffee at home'. Slide language follows the topic language. | |
| hook_formula | No | Hook formula id for the cover headline (list_options). Default: AI picks. | |
| niche_custom | No | Free-text niche if none fits, e.g. 'ceramics studio'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations it adds two pieces of context the structured fields don't carry: the operation is "Free" (cost implication) and it does not build anything, only produces titles/summaries. "Returns idea ids" also clarifies this is a generative step that yields handles rather than a persisted carousel, consistent with readOnlyHint=false. It does not say how long idea ids remain valid or whether they are reusable, leaving a modest gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, with the core action first and the chaining hint last. Nothing is repeated from the title, and every clause carries new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 all-optional parameters and no output schema, the description steps in to describe the return value (titles, summaries, idea ids) and its downstream use, which is the most important missing structured info. It does not explain what happens with defaulted params like mode or niche, but that is largely covered by the schema itself.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each of the 9 parameters already has a substantive description (language override, value vs promo mode, count range, niche ids from list_options). The tool description adds no parameter-level meaning beyond that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Brainstorm carousel ideas (titles + summaries)") and immediately delimits scope with "without building them," which separates it from build_carousel and create_carousel in the sibling list. It also names the downstream consumer, so the agent knows exactly which tool the output feeds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "without building them" plus "Returns idea ids that build_carousel accepts" gives clear routing: use this to ideate, then hand ids to build_carousel. It does not explicitly state when *not* to use it (e.g. when an existing carousel should be edited instead), so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accountGet accountBRead-onlyIdempotentInspect
The user's plan and how many carousels are left.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is fully covered. The description adds the only non-structured signal — that the response contains plan and remaining carousel count — but says nothing about quota semantics (reset cadence, units, error cases when unauthenticated).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the most useful fact (remaining carousels) is present up front. It is slightly clipped to the point of being a fragment, which costs a point on structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no input params and no output schema, the description is the only place return information can live, and it only names two fields. It leaves unclear what else the account payload contains or what 'carousels left' counts against, which matters for a quota-checking tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly does not invent parameter behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a noun phrase that describes the payload (the user's plan and remaining carousel quota) rather than stating an action, so the verb must be inferred from the name 'get_account'. It does add concrete content beyond the name, but it does not distinguish this from siblings like get_payment_link or list_carousels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus alternatives such as get_payment_link or list_carousels, and no prerequisites or exclusions are stated. The agent must infer that this is the quota/plan check, which is implied at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_carouselGet carouselBRead-onlyIdempotentInspect
Get a carousel: slide URLs, each slide's layers with their texts/visibility, and a preview image.
| Name | Required | Description | Default |
|---|---|---|---|
| version_id | No | Version id of the carousel; omit for the latest version. | |
| carousel_id | Yes | Carousel id (the id returned when the carousel was created). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds the return shape—slide URLs, per-slide layers and visibility, preview image—but no auth, rate-limit, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that lists the returned data and contains no filler. It is appropriately sized for a simple read tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only tool with complete schema coverage and no output schema, the description adequately discloses the return contents. It could mention latest-version behavior or error cases, but the schema covers version selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are described in the schema, including version_id's 'omit for latest version' behavior. The description adds no parameter detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Get') and resource ('a carousel') and enumerates the return contents (slide URLs, layers, texts/visibility, preview image). It does not explicitly contrast with list_carousels or other siblings, so it is clear but not maximally differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No sentence states when to use this tool instead of list_carousels, edit_carousel, or build_carousel, nor when to omit version_id. Usage is only implied by the name and required carousel_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_payment_linkGet payment linkARead-onlyIdempotentInspect
Get a checkout page to buy or renew a Uniscript subscription (needed for the API). Works without an active subscription. Open the link and pay with a card; the plan activates automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| plan | Yes | starter 40, pro 120, agency 300 carousels/month. | |
| period | No | Billing period of the plan (default month). | |
| region | No | intl = USD prices (default); ru = rubles via T-Bank. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and non-open-world behavior. The description adds useful context beyond that: the payment happens outside the tool by opening the link, and the plan activates automatically after card payment.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no waste. The core action and the key condition are front-loaded, followed by concise operational guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter tool with full schema descriptions and annotations covering safety profile, the description is complete enough. It explains what the tool returns conceptually, how it is used, and when it applies, without needing an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter has an enum plus explanatory text. The tool description does not add any parameter semantics beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Get a checkout page" for buying or renewing a Uniscript subscription. It also clarifies the scope that the page is needed for API access and works without an active subscription. This clearly distinguishes it from the carousel/content siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for use: buying or renewing a subscription, needed for the API, and usable without an active subscription. It does not explicitly name alternatives or when not to use it, but the relevant usage conditions are well covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_video_upload_urlGet video upload URLARead-onlyIdempotentInspect
Returns an upload URL for a video file up to 30 MB (multipart field 'video'); the response contains an upload_id accepted by create_carousel_from_video and video_to_idea.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as a safe, idempotent, non-destructive read, so the description's job is to add operational detail — and it does: the 30 MB size ceiling, the exact multipart field name 'video', and the upload_id in the response. It omits things like accepted video formats or URL expiry, which is why it is not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with zero filler; the size limit and field name come first and the downstream consumers are named at the end. Every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with no output schema, the description covers what is returned (an upload URL plus upload_id) and what the upload_id is for. It does not explain the format of the returned URL or the upload mechanism, leaving a small gap for an agent that must actually perform the multipart POST.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description does add useful semantics for the subsequent upload call by specifying the multipart field name 'video', which the schema cannot express.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns an upload URL for a video file') plus the concrete constraint of 30 MB and the multipart field name 'video'. This differentiates it from the sibling upload_image, which handles images rather than videos, without needing to open either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly routes the agent forward by naming the two consumers of the returned upload_id: create_carousel_from_video and video_to_idea. It does not give an explicit exclusion (e.g., 'use upload_image for images'), so it falls short of a full when/when-not statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_carouselsList carouselsARead-onlyIdempotentInspect
List the user's carousels, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many carousels to return (default 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuine value with the 'newest first' ordering, but says nothing about truncation or the fact that limit caps at 50 with no offset/cursor for paging past that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. Scope and ordering both appear before the reader could lose interest.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-param list tool with rich annotations and no output schema, this covers the essentials: what is listed, whose it is, and in what order. The only real omission is pagination behavior past the 50-item cap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the limit parameter already documents its default and 1-50 range. The description adds no format or usage detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('List') and resource ('the user's carousels') with a scope qualifier ('the user's'), which separates it from get_carousel (single item) and the create/build/edit siblings. It stops short of explicitly naming those siblings, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The listing intent implies when to use it (browsing the collection) versus get_carousel (fetching one by id), but this is inferred from the verb rather than stated. No explicit when-not guidance or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_optionsList optionsCRead-onlyIdempotentInspect
Available niches, color themes, layouts, carousel structures, hook formulas, fonts, languages and layer names.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language for labels. Default en. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety is fully covered. The description adds value by naming the categories of data returned, but says nothing about response shape (flat lists vs grouped objects) or size, so it does not go beyond a light enumeration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short fragment with zero filler, and the most useful items (niches, themes, layouts) are front-loaded. It loses a point for being a fragment that omits the verb, making it read like a data label rather than an instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only, single-optional-param tool with no output schema, the description conveys roughly what comes back and nothing else is strictly required. Still, without any hint at the response structure or how the listed options connect to the create/build tools, an agent must call it blind.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one optional parameter (lang) exists and the schema documents it fully at 100% coverage, so the schema carries the burden. The description mentions 'languages' in its list of returned options, which could be confused with the lang parameter rather than clarifying it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description enumerates what the tool exposes (niches, color themes, layouts, carousel structures, hook formulas, fonts, languages, layer names), which does distinguish it from siblings like build_carousel or generate_ideas. However, it is a bare noun phrase with no verb — it never says it 'lists' or 'returns' these options, so the purpose is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus alternatives such as generate_ideas or build_carousel. In particular, it never says this is the discovery step that supplies valid values for the carousel-building tools, which is the main reason an agent would reach for it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_imageUpload imageAInspect
Upload your own image (https link or base64) to use in carousels; returns photo_id for edit_carousel set_photo.
| Name | Required | Description | Default |
|---|---|---|---|
| image_url | No | Public https URL of a JPEG/PNG/WebP image. | |
| image_base64 | No | The image file as base64 (JPEG/PNG/WebP), used when there is no URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-idempotent, non-destructive, closed-world operation. The description adds meaningful context beyond annotations by disclosing the return value (photo_id) and its intended consumer (edit_carousel set_photo). It does not mention upload limits, authentication requirements, or what happens on failure, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with zero waste. It packs the action, input forms, use case, and return value into one compact statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter upload tool with no output schema and fully documented input parameters, the description supplies the missing return-value information (photo_id) and tells the agent exactly where that value is consumed. Nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both image_url and image_base64 are fully documented in the schema itself, including accepted formats and the fallback relationship between them. The description only echoes the two input forms without adding syntax or constraints beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Upload your own image'), specifies the accepted input forms (https link or base64), and names the downstream purpose (use in carousels). It clearly distinguishes this tool from siblings like create_carousel or create_carousel_from_video by identifying it as the media-upload step that feeds edit_carousel set_photo.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: upload an image to use in carousels, and the returned photo_id is for edit_carousel set_photo. It does not explicitly name when-not-to-use or alternative tools, but the downstream handoff provides enough guidance for an agent to place this tool correctly in a workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_to_ideaTurn video into ideaAInspect
Watch a video (link, base64 file or upload_id) and turn it into a carousel idea (no slides yet). Returns an idea_id that build_carousel accepts.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Force slide language (en, ru, uk, es, fr, de, it, pt, pl, tr…). Default: detected from topic. | |
| mode | No | value = useful content (default); promo = advertises a business (fill brand/about). | |
| filename | No | With video_base64: original file name, e.g. clip.mp4. | |
| upload_id | No | A file uploaded via get_video_upload_url (up to 30 MB). | |
| video_url | No | Link to the video: TikTok, Instagram Reels, YouTube Shorts, VK, RuTube… | |
| video_base64 | No | The video file itself as base64 (up to 20 MB). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, non-destructive, non-idempotent, so the safety profile is covered. The description adds real context beyond them: the tool stops at idea generation rather than producing slides, and it emits an idea_id that another tool consumes. It omits processing characteristics (time, limits beyond the schema, what happens on unsupported URLs), which keeps it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler; the input forms and the output contract are both front-loaded. Every clause carries information an agent needs to select and chain the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly discloses the return value (idea_id) and its consumer, and it clarifies that no slides are produced. For a non-idempotent processing tool it could say more about failure modes or processing expectations, but nothing essential to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds value by grouping the three video sources (link, base64 file, upload_id) into a single 'choose one of these' signal that the flat schema does not convey. It does not spell out mutual exclusivity or defaults for mode/lang, which remain schema-only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('watch a video ... turn it into a carousel idea') and enumerates the three accepted input forms. It also names the downstream consumer of the returned idea_id (build_carousel), which helps distinguish it from siblings. It does not differentiate from create_carousel_from_video, which reads like a near-neighbour.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '(no slides yet)' plus 'Returns an idea_id that build_carousel accepts' establishes where this tool sits in the pipeline and what the next step is. There is no explicit 'use X instead when...' guidance against create_carousel_from_video, so the routing edge case is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
14 tool updates
- First observed
build_carousel - First observed
create_carousel - First observed
create_carousel_from_video - First observed
edit_carousel - First observed
export_layers - First observed
generate_ideas - First observed
get_account - First observed
get_carousel - First observed
get_payment_link - First observed
get_video_upload_url - First observed
list_carousels - First observed
list_options - First observed
upload_image - First observed
video_to_idea
Related MCP Connectors
Carousel assistant: your AI writes the slides, Karou renders Instagram, LinkedIn, TikTok carousels.
Create short-form videos and photo carousels for TikTok, Instagram Reels, and YouTube Shorts.
Turn a URL, YouTube video or text into a branded LinkedIn/Instagram carousel PDF. No key needed.
Clone viral TikTok/Instagram slideshows for your business. Async; 6 tools; Bearer API key.
Related MCP Servers
- AlicenseAqualityBmaintenanceTurn idead and markdown into branded, multi-page social carousels and slideshows for TikTok, LinkedIn, Instagram, Threads and Xiaohongshu.37MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI clients to generate premium 4K carousel slides from a single instruction, combining expert copywriting, AI image generation, and premium typography compositing.-
- FlicenseNot gradedqualityDmaintenanceGenerates ready-to-post Instagram carousel PNGs from a topic string, using AI (Gemini or Claude) for content and storing images in S3.-
- AlicenseNot gradedqualityCmaintenanceTurns photos plus a short brief into finished social-media designs such as stories, carousels, reel covers and invites. It searches and ranks templates, uploads images, places photos and copy, and returns rendered designs with links for further editing.Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.