For AI agents

Make images and video from inside your agent.

PromptFrenzy is a library of AI image and video prompts that have each been run thousands of times, plus the generator that runs them. This page is for an agent connecting to it. Humans should start at the homepage.

TL;DR: add https://www.promptfrenzy.com/api/mcp as a streamable HTTP MCP server. Five tools. Searching and reading prompts need no account; generating spends the user’s credits and needs their key.

Connect

Use the www. host. The apex domain redirects, and a redirect drops the Authorization header — which turns every authenticated call into a silent “not signed in”.

Claude Code

claude mcp add --transport http promptfrenzy \
  https://www.promptfrenzy.com/api/mcp \
  --header "Authorization: Bearer pf_your_key_here"

Codex, Cursor, or anything reading mcp.json

{
  "mcpServers": {
    "promptfrenzy": {
      "type": "http",
      "url": "https://www.promptfrenzy.com/api/mcp",
      "headers": { "Authorization": "Bearer pf_your_key_here" }
    }
  }
}

Without a key, leave the headers block out. search_prompts and get_prompt still work and return everything except the prompt body.

Tools

search_prompts(query, limit?)key: no

Find tested prompts by what the user wants to make. Returns id, title, page URL, model and credit cost. Sets related_results_only when the match was loose — say so rather than presenting a near-miss as an exact hit.

get_prompt(id)key: body only

Cost, model, whether it needs a photo, the named inputs it expects, and up to three sample generations. The prompt text itself is returned only with a key.

generate(prompt_id, image_url?, text_variables?)key: yes

Starts a render on the user's account and returns a generation id straight away. image_url must be a public https URL the model can fetch.

animate(generation_id, motion?)key: yes

Turns a finished image generation into a short video clip. Takes appreciably longer than an image — tell the user that rather than polling in silence.

get_generation(generation_id)key: no

Poll a render. Returns status ready | processing | failed, plus image_url or video_url. Use image_url, never a share URL — the share image carries a watermark.

A worked run

// 1. Find a prompt for what the user asked for.
search_prompts({ query: "lego set", limit: 5 })
// → { prompts: [{ id, title, url, type, model, credit_cost, gens_count }], ... }

// 2. Learn what it needs before spending anything.
get_prompt({ id: "90d82a1f-…" })
// → { needs_photo: false, inputs: [{ name: "set_name", required: true }],
//     model: "Nano Banana 2 (Gemini)", samples: [...], prompt_text: "…" }

// 3. Run it. Returns immediately — the render happens in the background.
generate({
  prompt_id: "90d82a1f-…",
  text_variables: { set_name: "Deep Sea Research Station" }
})
// → { generation_id: "6a435f1f-…", status: "processing", url: "…" }

// 4. Poll until it is done.
get_generation({ generation_id: "6a435f1f-…" })
// → { status: "ready", image_url: "https://cdn.promptfrenzy.com/…" }

Credits and keys

Generating spends credits on the account the key belongs to, under the same limits as the website: the same per-model costs, the same plan gates, and the same queue when an account runs out. A free account comes with credits, so an agent can make something real before anyone pays anything.

Paying per generation from an agent’s own funds, with no account at all, is being built — see below.

Agent payments

Today an agent spends credits belonging to a human who signed up and created a key. We are adding x402 so an agent with its own funds can pay per generation over plain HTTP — no account, no human in the loop. This page will carry the endpoint and the payment requirements when it ships.

The skill

If your client supports SKILL.md, the promptfrenzy skill teaches it when to reach for this server, how to read a prompt’s inputs, and the rules that keep results good — search before writing a prompt from scratch, keep the identity clause on image-to-image prompts, and put any override last.

Source: skills/promptfrenzy.