Figma Context MCP
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
One API for 100+ AI video, image, music and speech models.
Pick the AI app you use, then copy the settings.
Passed 3/4 checks · What you ask goes through the maker’s server (mcp.unifically.com) · ✓ Commands checked Nov 13, 2026
First: which AI do you use?
Pick your app and the steps appear below.
Works with Claude · about 2 min
No key, nothing to install · Set it up once on claude.ai or the desktop app, then use it in chat · free accounts can add 1 · on Team/Enterprise an Owner adds it
CustomizeConnectors
Copy each value into the field with the same name in Claude, then click Continue
Unifically MCPhttps://mcp.unifically.com/mcpClick Continue past the sign-in settings Claude detected · under Authentication choose what the maker says (Sign in now, Sign in when needed or No sign in), then click Add
+ConnectorsUnifically MCP
Use Unifically MCP and tell me what you can do for me, then show me one thing✓ If Claude says it is using Unifically MCP or shows a Unifically MCP tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with ChatGPT, depending on your plan
Full MCP: ChatGPT Business, Enterprise or Edu on the web · Pro: connects with read/fetch permissions, so tools that change data may not work · Plus: not confirmed in OpenAI’s docs; if you see an add-custom-MCP option on the Plugins page you can try these steps · web only
Plugins+Add custom MCP server
Enter a name, paste the address under Connection, tick the risk warning and click Create as a plugin
Unifically MCPhttps://mcp.unifically.com/mcpStart a new chat and pick Unifically MCP from your plugins before typing
Use Unifically MCP and tell me what you can do for me, then show me one thing✓ If ChatGPT says it is using Unifically MCP or shows a Unifically MCP tool in the answer, you are connected
Menu names checked against OpenAI’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with Claude Code · about 2 min
No key, nothing to install
Mac: press Command+Space and type Terminal · Windows: open PowerShell
claude mcp add --transport http --scope user unifically https://mcp.unifically.com/mcpYou should see Unifically MCP listed as connected
Use Unifically MCP and tell me what you can do for me, then show me one thing✓ If Claude Code says it is using Unifically MCP or shows a Unifically MCP tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with Cursor · about 2 min
No key, nothing to install
Use Unifically MCP and tell me what you can do for me, then show me one thing✓ If Cursor says it is using Unifically MCP or shows a Unifically MCP tool in the answer, you are connected
Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with VS Code · about 2 min
No key, nothing to install
Use Unifically MCP and tell me what you can do for me, then show me one thing✓ If VS Code says it is using Unifically MCP or shows a Unifically MCP tool in the answer, you are connected
Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.
Address for apps that connect over the web
https://mcp.unifically.com/mcpJSON settings are under “For developers” below
Claude Code
claude mcp add --transport http --scope user unifically https://mcp.unifically.com/mcpCursor (~/.cursor/mcp.json)
{
"mcpServers": {
"unifically": {
"url": "https://mcp.unifically.com/mcp"
}
}
}VS Code (mcp.json)
{
"servers": {
"unifically": {
"type": "http",
"url": "https://mcp.unifically.com/mcp"
}
}
}These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.
Connect over the internet in
ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast
Tool names and descriptions exactly as the server reported them on Nov 10, 2026. The maker wrote them, not us; we show them as plain text.
generate_videoGenerate a video from a text prompt (and optional start/end frames). Defaults to Google Veo 3.1 Fast, which includes native audio. Switch model with the model parameter (Veo, Kling, Hailuo/MiniMax, and more). The tool waits for the result and returns the video URL; pass callback_
generate_imageGenerate or edit an image from a text prompt. Defaults to Google Nano Banana Pro. Pass image_urls to edit or use reference images. Returns the image URL. (To upscale an existing image, use upscale_media instead.)
generate_audioSpeech and sound: text-to-speech (default; optional voice_id, see list_resources), sound effects (model 'sfx', optional duration), multi-voice dialogue (model 'dialogue': pass the turns in the dialogue parameter, not prompt), transcription (model 'stt': pass audio_url, get text b
generate_musicFull Suno suite. mode 'music' (default) makes a new song from a description (or lyrics with custom:true). Transform an existing track (pass audio_url): 'cover' (new style), 'extend' (longer, +continue_at), 'add-vocals' / 'add-instrumental' (layer on). Split a prior clip (pass cli
edit_videoEdit an existing video from a prompt, or transfer motion onto a subject image. Pass the source in video_url and the change in prompt. Defaults to Google Gemini Omni video edit; switch with model ('kling-edit', 'wan-edit', or 'motion-control' for Kling motion transfer with a subje
upscale_mediaUpscale an image or a video. Pass exactly one source: image_url (Topaz image upscale — any image; multiplier via upscale_factor, preset/face_enhancement via provider_options), video_url (Topaz video upscale — any video; target size via resolution; preset/target_fps/frame_interpol
extend_videoExtend a previously generated video by its own model's extender (pass the task_id of the completed generation). Veo (default): requires prompt; aspect ratio is inherited. For a longer extension, try extending the extend-result's task_id again — chaining is not officially document
chatSend a prompt or a conversation to a language model (Claude, GPT, Gemini, Grok, DeepSeek, Kimi) and get the reply. Defaults to anthropic/claude-sonnet-5-5. Pass system for instructions, messages for multi-turn or vision (image parts), json for JSON mode. Returns the reply text pl
upload_file Looks like an instruction to the AIGet a public https URL for a file — the generation tools accept ONLY public https URLs, never local paths or inline data. FOR A LOCAL FILE: call this with the file's MIME type, e.g. { content_type: 'image/png' }. You get back an upload_url you can PUT the file to with plain curl
get_taskGet the status and (if completed) output URL of a task by id. Use to resume after a webhook, a polling timeout, or a generation started with wait:false. Pass wait:true to block until it finishes.
list_tasksList the account's past generation tasks, newest first, with pagination. Filter by status (processing/completed/failed), model id, category (video/image/audio/text/llm), provider, or a created_after/created_before time window. Use it to find an earlier generation's task_id (for g
list_resourcesList a model provider's voices so you can pass the right id to a generation tool. Default 'elevenlabs-voices' (the voices for generate_audio); also covers Kling and Google Veo voices. Returns each voice's id and name. (This is UnificAlly's resource catalog; it is not the MCP prot
list_modelsList the model catalog (video, image, audio, upscale, llm) with the short aliases you can pass as 'model'. Filter by category and/or provider (e.g. provider: 'google'). Use the returned ids or aliases on the generation tools, or category 'llm' ids on the chat tool. Refreshed hour
dry_run_costEstimate the cost of a task without creating it or charging the account. Pass the model and the full input payload.
check_balanceReturn the account's current balance in USD. Takes no parameters.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 13, 2026
The registry name was verified against the domain unifically.com (the registry checks domain ownership)
Code last changed 29 days ago
Not applicable: a cloud server run by the owner of unifically.com; you don't run code from the repo
Responded in 721 ms (HTTP 200)
No sign-in needed
1 tool descriptions contain text that looks like instructions to the AI. Read them below before installing
Ask, share a tip or report that it does not work. Sorted by what people marked helpful.
No posts yet. Be the first to ask or share.
Posts here are written by users, not the PopNx team.
No reviews yet
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 4 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed 29 days ago, and the latest version (1.0.0) reached the registry 3 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT on the web (full MCP on Business and above; Pro read-only).
In the same category: Figma Context MCP, AutoClip, Next AI Draw.io
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
Clip long videos into short clips with covers and captions. Local CLI and MCP.
draw.io diagrams your AI agent draws on a live browser canvas that you can also edit by hand
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
An MCP server for the UnificAlly API. It lets an AI assistant generate video, images, music, speech and sound effects, transcribe audio and upscale media through 100+ models (Veo 3.1, Kling, Seedance, Hailuo, Grok Imagine, Nano Banana, Flux, GPT Image, Suno, ElevenLabs, Topaz) with one API key.
It works in any MCP client: Cursor, Claude Desktop, Claude Code, Cline, Windsurf, Zed, ChatGPT Desktop, Goose, n8n and your own code.
{
"mcpServers": { "unifically": { "command": "npx", "args": ["-y", "@unifically/mcp-server"], "env": { "UNIFICALLY_API_KEY": "sk-..." } } } }
That block works as is for Cursor (.cursor/mcp.json), Claude Desktop (claude_desktop_config.json), Cline and Windsurf (~/.codeium/windsurf/mcp_config.json). Restart the client after saving.
Claude Code:
claude mcp add unifically -e UNIFICALLY_API_KEY=sk-... -- npx -y @unifically/mcp-server
Other clients
Zed (~/.config/zed/settings.json):
{
"context_servers": { "unifically": { "command": { "path": "npx", "args": ["-y", "@unifically/mcp-server"] }, "env": { "UNIFICALLY_API_KEY": "sk-..." } } } }
ChatGPT Desktop: Settings, Connectors, Add MCP server. Command npx -y @unifically/mcp-server, plus the UNIFICALLY_API_KEY variable.
Goose, n8n or anything else that speaks stdio:
UNIFICALLY_API_KEY=sk-... npx -y @unifically/mcp-server
On Windows, if the client says npx not found, use "command": "cmd", "args": ["/c", "npx", "-y", "@unifically/mcp-server"].
There is also a hosted server at https://mcp.unifically.com/mcp for clients that take a URL. See Remote server.
Ask the assistant for something:
Make a 16:9 image of a lighthouse at dusk, then a 6 second video that starts from it.
It calls the tools in order:
{ "name": "generate_image", "arguments": { "prompt": "a lighthouse at dusk, waves, warm light", "aspect_ratio": "16:9" } }
Generated image with google/nano-banana-pro. Result: https://files.unifically.com/image/....png [task_id: 7f3c...]
{ "name": "generate_video", "arguments": { "prompt": "slow push in, waves rolling", "image_url": "https://files.unifically.com/image/....png", "duration": 6 } }
Each generation tool waits for the job and returns the media URL. The structured result looks like this:
{
task_id: string, status: "completed" | "pending" | "processing", output: { video_url?, image_url?, audio_url?, image_urls?, audio_urls?, text? }, // when completed model: string, cost_usd?: number }
Under the hood each call is one request to the UnificAlly API (POST /v1/tasks with { model, input }, then GET /v1/tasks/{id}), the same one shown in the API docs.
| Tool | What it does | Spends balance |
|---|---|---|
generate_video | Text or image to video (Veo, Kling, Hailuo, Seedance, Grok and more). Optional start and end frames, reference images. | yes |
generate_image | Text to image and image editing (Nano Banana, GPT Image, Flux, Qwen, Kling, Grok, SeeDream). | yes |
generate_audio | Text to speech, sound effects, dialogue, transcription (stt), voice change (voice-changer), audio cleanup (voice-isolation). | yes |
generate_music | Suno: make a song, or cover, extend, add-vocals, add-instrumental or stems an existing track. | yes |
edit_video | Edit an existing clip from a prompt, or transfer motion onto a subject image (motion-control). | yes |
upscale_media | Topaz for any image or video (image_url / video_url), or task_id for the Veo and Grok upscalers. | yes |
extend_video | Extend a finished Veo (+8 s) or Grok Imagine generation. | yes |
upload_file | Turn a URL, or a local file on a stdio server, into a public CDN URL. | no |
get_task | Status and result of a task by id, optionally waiting for it. | no |
list_tasks | Past tasks, newest first, filtered by status, model, category, provider or time. | no |
list_resources | Voice lists for ElevenLabs (default), Kling and Veo. | no |
list_models | The model catalog and aliases. | no |
dry_run_cost | The price of a call without running it. | no |
check_balance | Account balance in USD. | no |
Every tool sets all four MCP hints. The seven tools that spend balance are marked destructiveHint: true and idempotentHint: false, so a client that auto-approves read-only tools still asks before a paid run. Failed generations are not charged.
Supported models, each with its parameters, id and a browser playground:
list_models returns the full live catalog.
prompt alone. model is optional and takes short aliases (veo, kling, flux, nano-banana-2, seedance, tts, sfx, stt) or full ids such as google/veo-3.1-fast.image_url, image_urls, end_image_url, reference_image_urls, audio_url, video_url) take public https URLs only. A local path or base64 string gets an error that says to upload first.start_frame_url, Veo's start_image_url, Seedance's first_frame_url). You pass image_url and the server renames it. Any field the server has no parameter for goes in provider_options, which also overrides the mapping.docs.unifically.com/llms.txt before running a model.wait, callback_url, provider_options and confirm_cost.get_task. 429, 5xx and network errors are retried with backoff.Models only read public URLs, so a local file goes to the UnificAlly CDN first.
upload_file { content_type: "image/png" } returns a one-time upload_url and the final file_url. The assistant sends the bytes with curl, without any API key in the shell: curl -X PUT '<upload_url>' --data-binary @photo.png
The URL is signed, single use and expires in about 5 minutes. The file keeps full quality.
upload_file { url } imports a file that is already online.upload_file { file_path } reads the file from disk, only when the server runs locally over stdio.There is no base64 upload, and the instructions tell the assistant never to send a user's file to another host. Both rules come from real failures: with a base64 size limit, agents shrank users' images to fit, and one agent without a key in its shell uploaded a private photo to a public file host.
High quality video and full songs can take minutes.
wait: false returns { task_id, status: "pending" } at once. Poll get_task until status is "completed".callback_url returns at once too, and the API POSTs the result to your webhook.Any task can be picked up later with get_task.
All off by default. Set them per deployment:
UNIFICALLY_CONFIRM_COST_ABOVE= : a call priced above this returns a quote, and runs only when the assistant retries with confirm_cost: true.UNIFICALLY_MAX_COST_PER_TASK= : a call priced above this is rejected. confirm_cost does not override it.UNIFICALLY_BLOCKED_MODELS=veo-quality,suno or UNIFICALLY_ALLOWED_MODELS=nano-banana-2,flux,tts: restrict which models can run.UNIFICALLY_DISABLE_GENERATION=true: read-only mode. Browsing, dry_run_cost and check_balance still work.| Variable | Required | Default |
|---|---|---|
UNIFICALLY_API_KEY | stdio only | none. HTTP callers send their own key. UNIFICALLY_KEY, UNIFICALLY_TOKEN and UNIFICALLY_API_TOKEN also work. |
UNIFICALLY_BASE_URL | no | https://api.unifically.com |
UNIFICALLY_FILES_BASE_URL | no | https://files.unifically.com |
UNIFICALLY_REQUEST_TIMEOUT_MS | no | 60000 |
UNIFICALLY_MAX_RETRIES | no | 3 |
UNIFICALLY_POLL_TIMEOUT_MS | no | 600000 |
UNIFICALLY_POLL_START_MS | no | 2000 |
UNIFICALLY_POLL_MAX_MS | no | 10000 |
UNIFICALLY_CONFIRM_COST_ABOVE | no | off |
UNIFICALLY_MAX_COST_PER_TASK | no | off |
UNIFICALLY_BLOCKED_MODELS | no | none |
UNIFICALLY_ALLOWED_MODELS | no | none |
UNIFICALLY_DISABLE_GENERATION | no | false |
MCP_TRANSPORT | no | stdio (or http) |
UNIFICALLY_HTTP_WAIT_BUDGET_MS | no | 85000, the longest an HTTP call blocks before returning the task_id |
PORT | no | set by the hosting platform |
UNIFICALLY_CORS_ORIGIN | no | * |
UNIFICALLY_TRUSTED_PROXIES | no | loopback. Also private, exact IPs or CIDRs allowed to send X-Forwarded-For. |
UNIFICALLY_TRUST_CF_CONNECTING_IP | no | false |
UNIFICALLY_RATE_PER_MIN | no | 120 requests per minute, per key and per account |
UNIFICALLY_RATE_BURST | no | 40 |
UNIFICALLY_PUBLIC_DISCOVERY | no | true. Lets keyless callers run initialize, tools/list, resources/list and ping. Set 0 to require a key for everything. |
UNIFICALLY_ANON_RATE_PER_MIN | no | 30 keyless requests per minute, per IP |
UNIFICALLY_ANON_RATE_BURST | no | 12 |
MCP_TRANSPORT=http serves Streamable HTTP on /mcp and legacy SSE on GET /sse + POST /messages. The hosted copy runs at https://mcp.unifically.com/mcp.
Each caller sends their own key, so one deployment serves many users and bills each one's own balance:
Authorization: Bearer (recommended)X-API-Key: ?api_key= for clients that only take a URL. Query strings can end up in proxy logs, so use a header when you can.{
"mcpServers": { "unifically": { "url": "https://mcp.unifically.com/mcp", "headers": { "Authorization": "Bearer sk-..." } } } }
For claude.ai (Settings, Connectors, Add custom connector) put the key in the URL: https://mcp.unifically.com/mcp?api_key=sk-.... For stdio-only clients, bridge with mcp-remote:
{
"mcpServers": { "unifically": { "command": "npx", "args": ["-y", "mcp-remote", "https://mcp.unifically.com/mcp", "--header", "Authorization: Bearer sk-..."] } } }
Details of the HTTP mode: