Skip to content

UGCfy AI

by ugcfy.ai · remote · no sign-in to list tools · v0.1.0 · published by ai.ugcfy

Break down any TikTok or Reels ad and rewrite it for your product. Hooks, scripts, CPM. No key.

Changes · 5

5 tools: 5 change things.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http ugcfy https://ugcfy.ai/api/mcp

Findings

Matches of fixed checks, with the text they matched.

2 warn
  • The server marks "generate_hooks" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "generate_hooks" says "generate": a word for a change.

    What this check looks for
  • The server marks "write_ugc_script" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "write_ugc_script" says "write": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

5 tools

Changes things 5Claude Code: ask
  • breakdown_adReverse-engineer a competitor TikTok or Instagram Reels ad: hook type and why it works, the segment-by-segment structure, selling points, call to action, and 2-3 copywriting moves …No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Reverse-engineer a competitor TikTok or Instagram Reels ad: hook type and why it works, the segment-by-segment structure, selling points, call to action, and 2-3 copywriting moves worth reusing. Pass a public video link, or paste the ad text if you already have it. Returns a breakdown_id you can hand to rewrite_ad_for_product.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • estimate_ad_costGive any two of budget (USD), impressions, and CPM, and get the third.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Give any two of budget (USD), impressions, and CPM, and get the third. Free and unlimited.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • generate_hooksWrite 8 scroll-stopping opening lines for a UGC-style video ad, each labelled with its hook type (problem, curiosity, social proof, POV, before-after, negativity) and the psycholog…1 finding

    Why it is in this group

    • The name "generate_hooks" says "generate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "generate_hooks" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "generate_hooks" says "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Write 8 scroll-stopping opening lines for a UGC-style video ad, each labelled with its hook type (problem, curiosity, social proof, POV, before-after, negativity) and the psychology behind it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • rewrite_ad_for_productTake a reference ad (a breakdown_id from breakdown_ad, a video link, or pasted ad text) and write 1-3 scene-by-scene UGC script variants for a different product that keep the same …No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Take a reference ad (a breakdown_id from breakdown_ad, a video link, or pasted ad text) and write 1-3 scene-by-scene UGC script variants for a different product that keep the same hook type and structure without copying the competitor. Returns an open_url that loads the scripts into UGCfy AI, where the user can render them as videos with AI actors.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • write_ugc_scriptAnalyze a product (link or description) and write 4 complete 20-30 second UGC video ad scripts with different angles, scene by scene, plus the product profile used (benefits, proof…1 finding

    Why it is in this group

    • The name "write_ugc_script" says "write": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "write_ugc_script" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "write_ugc_script" says "write": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Analyze a product (link or description) and write 4 complete 20-30 second UGC video ad scripts with different angles, scene by scene, plus the product profile used (benefits, proof points, objections). Use this when there is no reference ad to copy. Returns an open_url that loads the scripts into UGCfy AI to render as videos.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.1.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http ugcfy https://ugcfy.ai/api/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [],
    "ask": [
      "mcp__ugcfy__breakdown_ad",
      "mcp__ugcfy__rewrite_ad_for_product",
      "mcp__ugcfy__generate_hooks",
      "mcp__ugcfy__write_ugc_script",
      "mcp__ugcfy__estimate_ad_cost"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as ugcfy. Review it before you use it.