Say It Again
Server Details
AI UGC videos of your store's products: read a product, write 3 scripts, make the video.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- sayitagainai/mcp
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 25 tools
The set follows a legible quote_/make_/get_/list_ pattern that separates pricing, creation, polling, and enumeration for videos, product videos, and image ads. The main soft spot is the family of after-step transformations (change_video, make_longer, another_language, other_sizes) plus remake_product_video, which all operate on a finished video and are polled through the same get_video/get_product_video; descriptions do distinguish them, but an agent must read carefully to pick the right one.
Most names are verb_noun snake_case (make_video, quote_product_video, get_image_ads, keep_presenter, read_product), which is predictable. Deviations are the noun-only step names another_language and other_sizes, and get_described, whose object is a past participle rather than the resource name used elsewhere.
At 25 tools this is at the heavy end; the quote/make/get triple for videos, product videos, and image ads alone accounts for nine, plus four after-step tools. Nearly every tool has a real job, but the surface is broad enough that discovery and selection cost is noticeable.
Core creation and polling loops are well covered (quote, make, get, list for the main asset types), and error/refund states are exposed. However, list_videos only covers UGC videos, so there is no way to enumerate existing product videos or image ad sets, and there are no delete/cancel operations for assets or presenters.
Publisher details
- Operator
- Apolonis Social Media Management Services - FZCO, Dubai, United Arab Emirates · Publisher source
- Operator website
- https://sayitagain.ai
- Vendor relationship
- First-party
- Documentation
- https://sayitagain.ai/docs/api
- Trust center
- Not available
- Restrictions
- Needs a paid plan (Lite, Starter, Growth or Scale), not the free trial. Sign in as the team's owner from Claude, ChatGPT or a client on your own computer, or send an API key as a bearer token. · Publisher source
Available Tools
25 toolsanother_languageAnother languageADestructiveInspect
Make one finished video again in another language, into a new video beside it, as the app's Another language does: a UGC video with its own script and presenter, a product video with its voiceover said again over the same picture. This spends the team's credits: the price get_video or get_product_video lists in after_steps as another_language, or its voiced price for a voiced language, refunded if it fails. Only in a language that after_steps lists for it. Answers an id at once: call get_video with it, or get_product_video for a product video's, about once a minute until its status is ready or failed.
Inputs: id (required), credits (required), language (required), idempotency_key (required), +1 more.
change_videoChange a videoADestructiveInspect
Change one finished video as the person asks, made again into a new video beside it, as the app's Change does. This spends the team's credits: the price get_video lists in after_steps as change_video, refunded if it fails. Only for a video whose after_steps offers it. What to change is the person's own words; a change the video cannot be made with at all is answered with why and spends nothing. Answers an id at once: call get_video with it about once a minute until its status is ready or failed.
Inputs: id (required), change (required), credits (required), idempotency_key (required), +1 more.
describe_presenterDescribe a presenterAInspect
Draw a presenter of the team's own from a description of how they look, as the app's Describe a presenter does: an adult, invented, not a real person or a character. Free, and counted against the team's 5 drawings a day; a description refused, or a drawing that fails, gives its drawing back. Answers an id at once: call get_described with it every few seconds until its status is ready or refused.
Inputs: description (required), name.
get_balanceBalanceARead-onlyInspect
The team's credits, its plan, and how many write_scripts calls it has left (scripts_left). Free.
Inputs: no named parameters.
get_describedA presenter drawnBRead-onlyInspect
How a drawing from describe_presenter is going: checking, drawing, ready with its 3 pictures, each by its number with a link that works for an hour, and the voice the description said if it said one, or refused with why. The person chooses one of the pictures, which keep_presenter keeps. Free.
Inputs: id (required).
get_image_adsImage adsARead-onlyInspect
How a set from make_image_ads is going: queued, in_progress, ready with each image ad's headline, second line and button, in headline, subhead and cta, and its download_url, or failed with why and whether its credits were refunded. Each image ad's download_url is made new in every answer and works for the next hour: its download_expires_in_seconds is the seconds it has left as that answer is made. For a later download, call get_image_ads again for a new link. Free.
Inputs: id (required).
get_product_videoA product videoARead-onlyInspect
How a product video from make_product_video, or from a step after one, is going: queued, in_progress, ready or failed, with why and whether its credits were refunded. Once ready, it has after_steps, the steps it offers next with their prices in credits. Each ready video's download_url is made new in every answer and works for the next hour: its download_expires_in_seconds is the seconds it has left as that answer is made. For a later download, call get_product_video again for a new link. Free.
Inputs: id (required).
get_scriptsScriptsARead-onlyInspect
Scripts written by write_scripts: queued, in_progress, ready with each script's shots and lines, the language its lines are in and what it left out of the description, or failed. Free.
Inputs: id (required).
get_videoA videoARead-onlyInspect
How a video from make_video, or from a step after one, is going: queued, in_progress, ready or failed. Once ready, each video has after_steps, the steps it offers next with their prices in credits. Each ready video's download_url is made new in every answer and works for the next hour: its download_expires_in_seconds is the seconds it has left as that answer is made. For a later download, call get_video again for a new link. Free.
Inputs: id (required).
keep_presenterKeep a presenterBInspect
Keep one picture of a drawing as one of the team's presenters, with the voice the person chose for them. Answers the presenter's id, for presenters in the other tools. Free.
Inputs: id (required), picture (required), voice.
list_adsAds to build fromARead-onlyInspect
The ads the team's store already holds, from the Meta Ad Library and TikTok's, to build a video like one with ad: its Competitors, the Winning ads of its kind and the Meta Ad Library links it pasted, each with its id, library, advertiser, title, days running and whether it is a video, which ad needs. Free, and nothing is looked up.
Inputs: limit, source.
list_presentersPresentersBRead-onlyInspect
The presenters a video can be made with, by id: ours and the ones the team described. Free.
Inputs: no named parameters.
list_videosVideosARead-onlyInspect
The team's UGC videos, newest first. Each ready video's download_url is made new in every answer and works for the next hour: its download_expires_in_seconds is the seconds it has left as that answer is made. For a later download, call get_video again for a new link. Free.
Inputs: after, limit.
make_image_adsMake image adsADestructiveInspect
Make a set of image ads of a product, as the app's Image ads does: each ad a picture of the product drawn whole, with its own headline, second line and button, made from the product's page and the description. This spends the team's credits: the price quote_image_ads gives for the same count, refunded if the set fails. Answers an id at once: call get_image_ads with it about once a minute until its status is ready or failed.
Inputs: credits (required), product (required), idempotency_key (required), size, +2 more.
make_longerMake a video longerADestructiveInspect
Make one finished video longer, its take carried on with new lines written from the product page, into a new video beside it, as the app's Make this video 30 seconds does. This spends the team's credits: the price get_video lists in after_steps as make_longer, refunded if it fails. Only for a video whose after_steps offers it. Answers an id at once: call get_video with it about once a minute until its status is ready or failed.
Inputs: id (required), credits (required), idempotency_key (required), part.
make_product_videoMake a product videoADestructiveInspect
Make a product video, as the app's Product video does: the product alone on camera, doing what it does, with a voiceover, a voiceover over music or music alone, and no presenter, written from the product's page and the description. This spends the team's credits: the price quote_product_video gives for the same choices, refunded if the video fails. Answers an id at once: call get_product_video with it about once a minute until its status is ready or failed, which takes a few minutes.
Inputs: credits (required), product (required), idempotency_key (required), size, +9 more.
make_videoMake a videoADestructiveInspect
Make a UGC video of a product. This spends the team's credits: the price quote_video gives for the same choices, refunded if the video fails. Answers an id at once, and with languages an id for each language in ids: call get_video with each about once a minute until its status is ready or failed, which takes a few minutes.
Inputs: credits (required), product (required), idempotency_key (required), ad, +22 more.
other_sizesAnother sizeAIdempotentInspect
Lay one finished video out in another size, the same video cut for that frame, as the app's Other sizes does. Free. Only for a video whose after_steps lists other_sizes, in a size it lists. Answers an id at once: call get_video with it, or get_product_video for a product video's, every few seconds until its status is ready or failed. The same size asked again answers the one already made or being made.
Inputs: id (required), size (required).
quote_image_adsPrice image adsARead-onlyInspect
What a set of image ads costs in credits, and whether the team's balance covers it. Free.
Inputs: size, count.
quote_product_videoPrice a product videoARead-onlyInspect
What a product video with these choices costs in credits, and whether the team's balance covers it. Free.
Inputs: size, sound, quality, seconds, +4 more.
quote_videoPrice a videoARead-onlyInspect
What a video with these choices costs in credits, and whether the team's balance covers it. Free.
Inputs: ad, keep, size, angle, +12 more.
read_productRead a productAIdempotentInspect
Read a product's page from its link: its name, price, description, benefits, photos and the angles a video of it can argue, and an id to use in the other tools. Free, and counted against the team's product reads.
Inputs: url (required).
remake_product_videoRemake the product videoADestructiveInspect
Make an eligible finished product video again. quality best, the default, uses the current model: Wan 3.0, or Seedance 2.5 when Wan 3.0 is not offered. quality seedance25 selects Seedance 2.5 explicitly. It uses the video's own script, photos and choices to make a new product video beside it. The app offers the same model choices. This spends the team's credits: the price listed for the selected quality in after_steps.remake_product_video.choices from get_product_video. For the default best, the legacy after_steps.make_in_best price also applies. The step is refunded if it fails. Only for a video whose after_steps offers that remake. Answers an id at once: call get_product_video with it about once a minute until its status is ready or failed.
Inputs: id (required), credits (required), idempotency_key (required), quality.
set_presenter_voiceA presenter's voiceBIdempotentInspect
Say or change the voice one of the team's described presenters speaks in, which an Arabic video whose voice is added after filming asks for when its presenter has none: the person's choice, which a picture does not tell. Free.
Inputs: voice (required), presenter (required).
write_scriptsWrite 3 scriptsAInspect
Write three scripts for a UGC video of a product, to read before making one. Say It Again's own writer writes them from the product read_product read, held to its facts. Free, and counted against the calls get_balance gives as scripts_left. Answers an id at once: call get_scripts with it about once a minute until its status is ready or failed.
Inputs: product (required), ad, keep, size, +15 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
AI UGC creator videos for brands: read a brand, pick a reel format, draft scripts, quote and render.
AI product videos, photos and ads from a product link: TikTok, Reels and Shorts clips, earn per sale
Generate AI UGC video ads from any product URL — avatars, voiceover, OAuth Connect.
AI video studio on Velos: product videos, UGC ads, product photos, posting and autopilot.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceGenerate AI UGC video ads from any product URL in 5 minutes. Realistic AI avatars, natural voiceover, proven ad templates. No actors, no editing, no experience required.75 npm1MIT
- AlicenseBqualityBmaintenanceMake UGC-style video ads without filming: tell your AI assistant what to say and get a vertical clip of a realistic actor saying it, ready for TikTok, Reels or Shorts. Pick or describe an actor, choose a voice from samples, and see the price before rendering. It also makes faceless videos from a script or a short brief: narration over an opening animated clip and image scenes.571MIT

instantclipsofficial
AlicenseAqualityBmaintenanceEnables turning e-commerce products into short-form vertical videos for TikTok, Instagram Reels and Stories, with tools for importing products, editing creative direction, and rendering videos.10554 npmMIT- AlicenseAqualityBmaintenanceMake UGC videos for mobile apps with AI influencers who keep the same face, from any MCP client. Create a character, generate new looks, turn a look into a 5 or 10 second clip, add your app screen recording and a hook, then download the finished vertical video. Needs a ClipUGC API key.12124 npm4MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.