Figma Context MCP
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
Description from the maker (original English)
One API for 100+ AI video, image, music and speech models.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
AuthorizationYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Run this in your terminal
claude mcp add --transport http unifically https://mcp.unifically.com/mcp --header 'Authorization: your-value'Fill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"unifically": {
"url": "https://mcp.unifically.com/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"unifically": {
"type": "http",
"url": "https://mcp.unifically.com/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Your choice stays on this device in a cookie; no account needed.
Authorization HTTP headerThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
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 7, 2026
The registry name was verified against the domain unifically.com (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 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 –, 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 in developer mode.
In the same category: Figma Context MCP, Claude Real Video, Figma MCP Server
Servers in the same category from other makers, sorted by stars.
Reading a card:★ 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.
Let any LLM watch a video locally — and search everything it has ever watched.
Figma’s official server gives AI your design data so it can turn designs into code or describe them accurately. Connects to Figma’s cloud.
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:
Only the beginning is shown; read the rest in the repo