MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · AI / LLM tooling

Say It Again

AI UGC videos of your store's products: read a product, write 3 scripts, make the video.

Checks passed
15 / 22

0 failed · 7 not measured

Median response
567 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
25

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
103
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
400
Publisher identityCan the publisher be traced to its source?
402

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 564 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name sayitagain.

  • Pass
    Lists tools

    tools/list returned 25 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 567 ms over 2 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 569 ms over 2 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    2 of 2 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Pass
    Stable tool list

    No tool was removed and no required parameter was added in the last 30 days.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    127 of 127 parameters have a description (100%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-10-22T08:35:32.15068Z, within 180 days.

  • Not measured
    Open-source licence

    The GitHub licence lookup has not returned an OSI result yet.

Start using Say It Again

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http say-it-again https://app.sayitagain.ai/mcp

Capabilities

Tools 25

another_language

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.

Discovered
change_video

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.

Discovered
describe_presenter

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.

Discovered
get_balance

The team's credits, its plan, and how many write_scripts calls it has left (scripts_left). Free.

Discovered
get_described

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.

Discovered
get_image_ads

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.

Discovered
get_product_video

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.

Discovered
get_scripts

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.

Discovered
get_video

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.

Discovered
keep_presenter

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.

Discovered
list_ads

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.

Discovered
list_presenters

The presenters a video can be made with, by id: ours and the ones the team described. Free.

Discovered
list_videos

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.

Discovered
make_image_ads

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.

Discovered
make_longer

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.

Discovered
make_product_video

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.

Discovered
make_video

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.

Discovered
other_sizes

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.

Discovered
quote_image_ads

What a set of image ads costs in credits, and whether the team's balance covers it. Free.

Discovered
quote_product_video

What a product video with these choices costs in credits, and whether the team's balance covers it. Free.

Discovered
quote_video

What a video with these choices costs in credits, and whether the team's balance covers it. Free.

Discovered
read_product

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.

Discovered
remake_product_video

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.

Discovered
set_presenter_voice

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.

Discovered
write_scripts

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.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected564 ms25
Connected569 ms25