Visualizee MCP server
Connect Visualizee to Claude, Claude Code, Cursor, or any MCP client. Render images and video by chat with your own account, credits, and workspace.
Visualizee ships a hosted MCP (Model Context Protocol) server, so any MCP-capable assistant, including Claude, Claude Code, and Cursor, can render with your Visualizee account. Your assistant gets six tools: it can generate images (with an inline preview right in the chat) and video clips, collect a render that is still processing, upload your local photos as references, look up the available models, and check your credits. Everything runs against your own account, and every render is filed into your Visualizee workspace.
The server lives at a single URL:
https://visualizee.app/api/mcp
It speaks Streamable HTTP and authorizes with OAuth 2.1: the first time a client connects, you sign in at visualizee.app and approve access. There are no API keys.
Blog and marketing imagery generated straight from your writing tool, renders dropped into a proposal while you draft it in Claude, or agent workflows that produce visuals on a schedule. If your assistant can call tools, it can now render.
Connect from Claude Code
Add the server from your terminal:
claude mcp add --transport http visualizee https://visualizee.app/api/mcp
Then, inside a Claude Code session, run /mcp and pick visualizee to authenticate. Your browser opens visualizee.app; sign in and approve access. From that point the tools are available in every session.
If you prefer project-level config, add this to .mcp.json in your project root:
{
"mcpServers": {
"visualizee": {
"type": "http",
"url": "https://visualizee.app/api/mcp"
}
}
}
Connect from claude.ai and Claude Desktop
Open connector settings
Go to Settings → Connectors and choose Add custom connector.
Add the server
Name it Visualizee and paste https://visualizee.app/api/mcp as the URL.
Sign in
Click Connect. You will be sent to visualizee.app to sign in and approve access, then returned to Claude. Enable the connector in a chat and ask for a render.
Connect from Lovable
Add the connector
Open the Connectors dashboard, scroll to the bottom of the All view, and
pick the Custom (MCP) card. Name it Visualizee and paste
https://visualizee.app/api/mcp as the server URL.
Authorize
Keep OAuth selected and click Add & authorize. Sign in at visualizee.app, approve access, and ask for a render in the Lovable chat.
Connect from Cursor
Add the server to .cursor/mcp.json (per project) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"visualizee": {
"url": "https://visualizee.app/api/mcp"
}
}
}
Cursor will prompt you to authenticate on first use. Any other MCP client that supports Streamable HTTP and OAuth works the same way: point it at the URL and sign in when asked.
The tools
| Tool | What it does |
|---|---|
render_image | Generates an image, waits for it to finish (up to about 4 minutes), and returns an inline preview plus the final image URL and a link to the file in your workspace. Also the edit tool: pass a previous render as a reference to iterate on it. |
upload_image | Uploads a local photo or screenshot (up to 8 MB) to your workspace and returns a public URL
to use as a |
render_video | Generates a video clip, optionally animating reference images. Returns the clip, or a
|
get_render | Fetches a render by its |
list_models | Lists the available image and video models with their categories, credit costs, and supported parameters. |
get_credits | Reports the remaining credits and what the plan can render - image and video resolution ceilings, pro renders left this month, and whether output is watermarked. |
You rarely call these by name. Ask for what you want ("render a 16:9 image of ...") and the assistant picks the right tool and parameters.
render_image parameters
| Parameter | Default | Notes |
|---|---|---|
prompt | required | Plain-language description of the image. |
modelId | best base model | An id from list_models. Only set it when you want a specific model. |
aspectRatio | 1:1 | For example 16:9, 4:3, 9:16. Must be supported by the model. |
resolution | 1024 | Long-edge scale, for example 1024 or 2048. |
ingredientUrls | none | Up to 4 reference image URLs for image-to-image: a previous render to iterate on, or a URL
from |
fileName | Claude MCP renders | The Visualizee file the render is saved into, found or created by name. |
folderName | workspace root | A top-level folder for that file, found or created by name. |
Editing and iterating
There is no separate edit tool - editing is a render with the previous image as a reference. To change something about a result, ask for another render with the previous render's URL in ingredientUrls and an instruction that states what to preserve and what to change:
"Take the last render and change only the wheels to black 19-inch rims - keep the car, camera angle, and lighting exactly the same."
Two things make this reliable:
- State a preserve/change contract. A reference image alone drifts; naming what must stay identical ("keep the composition and materials, change only the sky to dusk") is what keeps a series consistent.
- Chain result URLs. Each result reports its URL; feed it into the next call to build a series of variations from the same base.
Your own photos work the same way. If the image lives on your machine ("here's a photo of my kitchen"), the assistant calls upload_image first, then uses the returned URL as an ingredient. Ingredient URLs are checked for reachability before a render starts, so a dead link fails fast and never costs credits.
Rendering video
render_video generates a clip, optionally animating reference images you pass in ingredientUrls. It defaults to Seedance 2.0 at 1080p (or the best resolution your plan allows), 16:9, the model's shortest duration, and audio on.
A clip is billed as roughly base cost x seconds x resolution multiplier. On Seedance 2.0 that means a 5-second 1080p clip costs about 3,400 credits, where a typical image costs around 10. Higher resolutions multiply sharply (1080p is 2.25x the base, 4K is 5.12x). Your assistant is instructed to confirm duration, resolution, and audio with you - and to tell you the credit cost - before it renders.
Video parameters
| Parameter | Default | Notes |
|---|---|---|
prompt | required | A director's brief plus a beat timeline. See below. |
duration | model minimum | Seconds, from the model's supported list (Seedance 2.0: 4-15). Cost scales linearly. |
resolution | 1080p | 720p, 1080p, or 4K. Capped by your plan - see below. |
aspectRatio | 16:9 | For example 9:16 for vertical, 21:9 for cinematic. |
audio | true | Generates a soundtrack. Costs nothing extra on Seedance 2.0. |
ingredientUrls | none | Reference images to animate (up to 9 on Seedance 2.0). |
Video resolution is capped per plan: Hobby renders at 720p, Pro up to 1080p, and Max up to 4K. Asking for more than your plan allows names the resolution you can use rather than silently downgrading the clip - the What your plan can render table under Credits and limits has the full picture.
Collecting a finished clip
Video takes noticeably longer than an image - commonly two to eight minutes. render_video waits about two and a half minutes; if the clip is not ready by then it returns a generationId and status pending. Your assistant then calls get_render with that id to collect the finished video. Credits are charged once, and the render completes in your workspace either way.
Prompting for video
Video models respond to plain-language directing, not parameter lists. A good prompt has two parts:
- The brief - what the subject and scene do (the reference images already show what things look like), one primary camera move, and the atmosphere.
- A beat timeline covering the whole clip, one line per beat:
[00:00-00:02] slow dolly forward begins, wind stirs the grass.
Every image you attach goes into one reference list tagged @Image1, @Image2, and so on. There is no first-frame/last-frame slot - several images are read as references to the same subject unless you explicitly ask for a transition between them.
When audio is on, describe the sound in the prompt: ambient tone, the diegetic effects the scene would make, and optionally music by character rather than by artist name. Ask for dialogue only if you want it, keep lines short, and say who is speaking. When audio is off, the prompt should not mention sound at all.
Where renders end up
Every MCP render is saved into your Visualizee workspace, not just returned as a URL. The fileName and folderName parameters control where:
- With no names given, renders collect in a file called Claude MCP renders at the workspace root.
- Pass a
fileNameper logical group, for example one file per blog post or per project, and afolderNamesuch as "Blog posts" to keep things tidy. - Names match case-insensitively and are created on the fly, so repeated renders for the same job always land in the same file, even when several run in parallel.
Each result includes a direct link to the file, so you can jump from the chat into the workspace and keep iterating there with Vizzy.
Credits and limits
- Renders cost the same credits as in the app; the cost and remaining balance are reported with every result. See plans & credits for what your tier includes.
- If a render fails or cannot start, the credits are refunded automatically.
- Pro-tier models respect your plan's monthly pro-render limit. Seedance 2.0, the default video model, is a pro-tier model.
- Video is billed per second and per resolution, so clips cost hundreds to thousands of credits where images cost tens. Read the Rendering video section above before turning an assistant loose on it.
What your plan can render
Every request is checked against your plan before any credits move, and a request that exceeds it comes back with the nearest thing you can run rather than a bare refusal:
| Limit | Free | Hobby | Pro | Max |
|---|---|---|---|---|
| Image resolution | 1024 | 2048 | uncapped | uncapped |
| Video resolution | 720p | 720p | 1080p | 4K |
| Pro renders / month | 1 | 15 | unlimited | unlimited |
So asking for a 2048px image on Free answers "the Free plan renders images up to 1024px - re-run with resolution 1024"; asking for 4K video on Pro points at 1080p; and exhausting the pro-render quota names a base model that does the same job without touching it. When a clip costs more credits than you hold, the reply names the largest clip your balance does cover - for example "the largest clip your balance covers is 6s 720p for 1,824 credits".
Call get_credits to read all of this up front - credits, both resolution ceilings, pro renders left, and whether output is watermarked - so an assistant can choose workable settings before spending anything.
render_image waits for the result and can take a few minutes at high resolutions. If a render times out but completes later, the image still appears in the target file in your workspace, and failed renders refund on their own. render_video waits a shorter window and hands back a generationId for get_render instead, because clips routinely outlast a single request.
Example prompts
Things you can ask once the server is connected:
- "Render a 16:9 hero image of a Scandinavian living room at golden hour and save it in folder 'Blog posts', file 'Autumn palettes'."
- "List the Visualizee models and pick the cheapest one that supports 21:9."
- "Use this product photo as a reference and render it in a minimalist concrete showroom, 4:3."
- "Take the render you just made and change only the wall color to sage green - keep everything else identical."
- "Animate that render into a 5-second clip with a slow push-in and soft room tone - tell me what it will cost first."
- "How many render credits do I have left?"