Generate UGC video ad scripts and render ads with your Promptify credits from any MCP client.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional API key alternative to OAuth. Use Bearer followed by your Promptify API key from Settings → API.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Estimate an ad plan before anything is spent, using the render engine's cost tables. For a saved ad's exact remaining cost, call render_ad with adId and no confirmation. Starting a render requires the user to approve that quote.
How many scenes the ad will have (typically 3-5).
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http promptify https://www.promptify.pro/api/mcp
Headers
Authorization (optional, not in the config above): Optional API key alternative to OAuth. Use Bearer followed by your Promptify API key from Settings → API.Estimate an ad plan before anything is spent, using the render engine's cost tables. For a saved ad's exact remaining cost, call render_ad with adId and no confirmation. Starting a render requires the user to approve that quote.
| Argument | Type | Description |
|---|---|---|
| scenes* | number | How many scenes the ad will have (typically 3-5). |
{
"type": "object",
"required": [
"scenes"
],
"properties": {
"scenes": {
"type": "number",
"description": "How many scenes the ad will have (typically 3-5)."
}
}
}Generate a full ad script package for a product: 10 hooks, a scene-by-scene script, and model-native video prompts (Veo/Kling). Costs about 2-3 credits, metered and refunded in full if it fails. This CREATES an ad in the user's Promptify workspace and returns a link to it — it does not render video.
| Argument | Type | Description |
|---|---|---|
| format | string | UGC testimonial | Unboxing | Problem → solution | Street interview | Before/after | Founder story |
| language | string | Language to write the ad in. Defaults to English. |
| productUrl | string | Optional product page URL. |
| templateId | string | Optional template id from list_templates — builds the ad on that hook device and beat structure. |
| productTitle* | string | The product's name. |
| productDescription | string | What it is and who it's for. The more concrete, the better the script. |
{
"type": "object",
"required": [
"productTitle"
],
"properties": {
"format": {
"type": "string",
"description": "UGC testimonial | Unboxing | Problem → solution | Street interview | Before/after | Founder story"
},
"language": {
"type": "string",
"description": "Language to write the ad in. Defaults to English."
},
"productUrl": {
"type": "string",
"description": "Optional product page URL."
},
"templateId": {
"type": "string",
"description": "Optional template id from list_templates — builds the ad on that hook device and beat structure."
},
"productTitle": {
"type": "string",
"description": "The product's name."
},
"productDescription": {
"type": "string",
"description": "What it is and who it's for. The more concrete, the better the script."
}
}
}One ad in full: its hooks, its scene-by-scene script, and its model-native prompts. Use after list_ads when the user wants the actual content.
| Argument | Type | Description |
|---|---|---|
| adId* | string | The ad's id, from list_ads. |
{
"type": "object",
"required": [
"adId"
],
"properties": {
"adId": {
"type": "string",
"description": "The ad's id, from list_ads."
}
}
}What this workspace has MADE, what it EXPORTED (downloaded — the only activation signal), and real CLICKS on its Promptify short links, grouped by format and language. Clicks may be compared between the user's own ads; they are NOT a rate — there are no impressions, CTR, spend or ROAS anywhere in this product, so never state or imply one.
No arguments.
{
"type": "object",
"properties": {}
}The workspace's saved brand profile — category, channels, languages, markets, preferred model. Read it before proposing an ad so the suggestion fits what they actually sell.
No arguments.
{
"type": "object",
"properties": {}
}Check remaining subscription, purchased and total credits in this workspace. Costs no credits. If credits are low, follow the pricing link to buy more.
No arguments.
{
"type": "object",
"properties": {}
}Get Promptify's pricing page for credit packs and monthly plans. Costs no credits.
No arguments.
{
"type": "object",
"properties": {}
}The ads in this Promptify workspace: title, status, format, language, whether the user exported it, and real link clicks. Use it to answer 'what have I made' or to pick an ad to talk about.
| Argument | Type | Description |
|---|---|---|
| limit | number | How many, newest first (default 20, max 50). |
{
"type": "object",
"properties": {
"limit": {
"type": "number",
"description": "How many, newest first (default 20, max 50)."
}
}
}Promptify's ad template library: each is a hook device plus a timed beat structure (e.g. 'skeptic-converts', 'negative hook', 'problem-agitate-solve'). Pass a template's id to generate_ad_script to build the ad on that structure. These are craft patterns, not proven winners — no template has performance data behind it.
| Argument | Type | Description |
|---|---|---|
| language | string | Filter by language code: EN, ES, PT, AR, FR, ZH. |
{
"type": "object",
"properties": {
"language": {
"type": "string",
"description": "Filter by language code: EN, ES, PT, AR, FR, ZH."
}
}
}First call with adId to get the real credit quote without spending. Show the user the cost and ask for approval. Only then call again with confirm: true and expectedCredits equal to totalCredits from the quote. A changed quote requires approval again. Uses the studio's paid render service; check progress and finish/export in the results URL.
| Argument | Type | Description |
|---|---|---|
| adId* | string | The ad's id, from list_ads or generate_ad_script. |
| confirm | boolean | True only after the user approves the quoted credit cost. |
| expectedCredits | number | The exact totalCredits the user approved. |
{
"type": "object",
"required": [
"adId"
],
"properties": {
"adId": {
"type": "string",
"description": "The ad's id, from list_ads or generate_ad_script."
},
"confirm": {
"type": "boolean",
"description": "True only after the user approves the quoted credit cost."
},
"expectedCredits": {
"type": "number",
"description": "The exact totalCredits the user approved."
}
}
}Read a product page and return its title, description and price. Costs no credits. Use this before generating so the ad is grounded in what the page actually says, instead of what the model assumes.
| Argument | Type | Description |
|---|---|---|
| url* | string | The product page URL. |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The product page URL."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 12, 2026.
What changed in this server's tools since we started watching, newest first. Each change is scanned again.