HyperFrames MCP Server: Generate Video and Images from Claude
What this MCP server is
The HyperFrames MCP server is the hosted endpoint at https://hyperframes.net/api/mcp. It exposes the same generation pipeline the website runs โ text-to-video, image-to-video, reference-to-video, text-to-image and image-to-image โ as Model Context Protocol tools, so an assistant can start a render and fetch the result without a browser.
It is a remote MCP server: nothing to install, no Node process to keep alive. You send JSON-RPC over HTTP with an API key, and every call is billed to the account that owns that key, in the same credits the website uses.
Which HyperFrames this connects to
Two different products share the name.
| HeyGen's HyperFrames framework | This site, hyperframes.net | |
|---|---|---|
| What it is | An open-source HTML-to-MP4 renderer built on headless Chrome and FFmpeg | A hosted AI studio: a prompt or a photo becomes a clip |
| Licence / cost | Apache 2.0, renders locally | Credits per generation |
| How Claude fits | Run the CLI yourself; Anthropic bills the tokens | This MCP server; HyperFrames bills the generation |
If you came here looking for the framework's CLI, the HyperFrames CLI guide is the right page. The MCP server below does not render HTML โ it generates new footage.
Before you connect
- Create an account on hyperframes.net โ a new account starts with 20 credits, enough for one 1K image, valid for seven days.
- Open Settings โ API keys and create a key. The secret is shown once.
- Keep the key out of source control. Treat it like a password: anyone holding it can spend your credits.
New keys look like sk-hh1-.... Every request must carry it:
Authorization: Bearer sk-hh1-...Add it to Claude Code
claude mcp add --transport http hyperframes https://hyperframes.net/api/mcp \
--header "Authorization: Bearer sk-hh1-your-key"Then run /mcp inside Claude Code; hyperframes should list as connected with five tools. To share the server with a repository, add --scope project and commit the result โ the header value is a secret, so keep it in your shell environment instead of the checked-in file.
Add it to another MCP client
Any client that speaks Streamable HTTP takes the same three fields:
{
"mcpServers": {
"hyperframes": {
"type": "http",
"url": "https://hyperframes.net/api/mcp",
"headers": {
"Authorization": "Bearer sk-hh1-your-key"
}
}
}
}Clients that only support stdio can bridge with npx mcp-remote https://hyperframes.net/api/mcp --header "Authorization: Bearer sk-hh1-your-key".
Tools
| Tool | What it does | Arguments |
|---|---|---|
list_models | Lists the scenes and the credit cost of each | optional media_type: video or image |
get_credits | Returns promotional, purchased and total credits | none |
generate_video | Starts a text-, image- or reference-to-video job | prompt, optional image_url, video_urls, scene, duration_seconds, resolution, fast, aspect_ratio, generate_audio, web_search, seed |
generate_image | Starts a text-to-image or image-to-image job | prompt, optional image_url, scene, aspect_ratio, resolution, output_format, web_search, seed |
get_generation | Fetches one task and returns its media URLs | id โ the task id returned above |
Generation is asynchronous. generate_video and generate_image return a task id immediately; call get_generation with that id until status is success, failed or canceled.
Every output is also reviewed before it is returned. While that review is pending the task keeps reporting processing, even when the provider finished in seconds; it usually clears on the next poll a moment later. If the reviewer is slow or unreachable the task waits up to 20 minutes, then fails as moderation_unavailable and the credits go back. Keep polling at a relaxed interval; do not start a second generation because the first looks stuck. If nobody polls at all, a scheduled sweep fails the task as generation_timeout after 30 minutes and the credits go back.
What a generation costs
| Scene | Credits |
|---|---|
| Text-to-image / image-to-image at 1K | 20 |
| Text-to-image / image-to-image at 2K | 30 |
| Video, 480p, fast | 5 per second of runtime |
| Video, 720p, fast | 10 per second of runtime |
| Video, 480p or 720p, standard (not fast) | 6 or 12 per second |
| Reference-to-video with a reference clip | +3 per second |
| Web search grounding | +1 per request |
The defaults are a 15-second 720p clip in fast mode โ 150 credits โ and a 1K image. Ask for list_models before a long render if you want the exact number; the tool reports the same price the server charges.
Two rules are enforced server-side:
- Video spends purchased credits only. Signup, daily and promotional credits can generate images but never render time.
- A failed task returns its credits. Money is never moved by a generation; only the credit ledger is touched.
Limits
- Prompt length: 4000 characters.
duration_seconds: 4 to 15, default 15.resolution:480por720pfor video,1Kor2Kfor images.- Requests: 120 per minute per account.
- Reference images and clips must be public
http(s)URLs that point at the file itself.
Troubleshooting
| Symptom | Cause and fix |
|---|---|
401 invalid API key | The key was deleted, or the header is malformed. Create a new key on Settings โ API keys. |
insufficient credits | The account balance is below the cost of this request. |
video requires purchased credits | The balance is promotional only. Buy a pack, or switch to generate_image. |
image_url is required for image-to-image requests | You passed scene: "image-to-image" without image_url, or the URL is not reachable. |
400 invalid generate payload | A required field is missing or the wrong type โ prompt is mandatory for both generate tools. |
Task on processing for more than a minute | Output content review, not the provider. It normally clears on the next poll; if the reviewer stays unreachable for 20 minutes the task fails as moderation_unavailable and is refunded. A task nobody polls fails as generation_timeout at 30 minutes and is refunded. |
Privacy and data
Prompts, reference media and outputs are handled under the site's acceptable use policy and privacy policy. Content moderation runs on every generation, identically for MCP and browser traffic. Do not send credentials, private documents or other people's personal data in a prompt or a reference URL.