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)
Licensed soundtracks and sound effects matched to your video. Commercial use OK.
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.
SONILO_API_KEY, SONILO_API_URL, SONILO_MCP_BASE_PATH, TIME_OUT_SECONDSValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://api.sonilo.com/mcpOpen Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"sonilo": {
"command": "uvx",
"args": [
"sonilo-mcp"
],
"env": {
"SONILO_API_KEY": "your-value",
"SONILO_API_URL": "your-value",
"SONILO_MCP_BASE_PATH": "your-value",
"TIME_OUT_SECONDS": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http sonilo https://api.sonilo.com/mcpclaude mcp add sonilo --env SONILO_API_KEY=your-value --env SONILO_API_URL=your-value --env SONILO_MCP_BASE_PATH=your-value --env TIME_OUT_SECONDS=your-value -- uvx sonilo-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"sonilo": {
"url": "https://api.sonilo.com/mcp"
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"sonilo": {
"command": "uvx",
"args": [
"sonilo-mcp"
],
"env": {
"SONILO_API_KEY": "your-value",
"SONILO_API_URL": "your-value",
"SONILO_MCP_BASE_PATH": "your-value",
"TIME_OUT_SECONDS": "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": {
"sonilo": {
"type": "http",
"url": "https://api.sonilo.com/mcp"
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"sonilo": {
"type": "stdio",
"command": "uvx",
"args": [
"sonilo-mcp"
],
"env": {
"SONILO_API_KEY": "your-value",
"SONILO_API_URL": "your-value",
"SONILO_MCP_BASE_PATH": "your-value",
"TIME_OUT_SECONDS": "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.
ChatGPT connects only to servers on the internet:
https://api.sonilo.com/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
SONILO_API_URL envSONILO_MCP_BASE_PATH envTIME_OUT_SECONDS envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
The server asks you to sign in before it lists its tools.
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 with the GitHub account sonilo-ai, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 163 ms (HTTP 401)
Declares OAuth sign-in, so your AI app can take you to log in
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 3 of 3 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.
You need to fill in: SONILO_API_KEY
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (0.28.0) reached the registry 11 days 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 (Model Context Protocol) server that exposes Sonilo's licensed music and sound-effects API to MCP-compatible clients (Claude Code, Claude Desktop, Codex).
The flagship tool is `video_to_music`: hand it your finished video and it composes an original soundtrack matched to the cut — the music follows the pacing, emotion, and edits because the model saw them. Length matches the video automatically. Every track is licensed and safe for commercial use (terms apply). text_to_music is also available for fixed-length tracks with no video to match.
For sound design, `video_to_sfx` watches your video and generates matching sound effects, returned as a standalone audio file. text_to_sfx generates a standalone effect from a description.
▶ [Example result](https://github.com/cindyxu1030/sonilo-video-to-music-cookbook/blob/main/assets/demo-trailer.mp4) — an AI-generated trailer with its soundtrack composed by video_to_music from the assembled cut. For recipes covering any AI-video pipeline (stitch → grade → add music → mux), see the Sonilo video-to-music cookbook.
Sign in once with the CLI, then add the server with no secret in the config:
npm install -g sonilo-cli && sonilo login
claude mcp add sonilo -- uvx sonilo-mcp
Or hold an API key yourself — get one from the Sonilo dashboard:
claude mcp add sonilo --env SONILO_API_KEY=sk-... -- uvx sonilo-mcp
Then start a session and ask, e.g. *"Make background music that matches this video: ~/Desktop/promo.mp4."*
segments let you script effects to specific time ranges ([{start, end, prompt}]).wav, mp3, aac, or flac.proofread transcribes a video and translates the transcript into editable .srt files, one per language plus the source-language transcript. Read and correct the wording, then hand the files to dubbing as subtitles so the dub speaks exactly the approved text — nothing is voiced until you have signed off on it.text_to_music, video_to_music, video_to_video_music, video_to_sound, and video_to_video_sound accept variants_num (1–10, default 1): generate several distinct creative directions in one request instead of re-rolling one at a time. Cost scales linearly with N, and N > 1 is never covered by the free trial.text_to_music and video_to_music accept stems=true: get the generated track additionally split into drums, bass, vocals and other, at no extra charge. Separation adds a few minutes; on video_to_music it splits the generated music, never the video's own audio.dubbing gets one free run, a 15-second preview: the first single-language call without subtitles dubs only the first 15 seconds of the video. After that it bills video duration × number of languages (see Free trial below).The play_audio tool requires PortAudio at runtime (for sounddevice). On macOS/Linux, install via:
brew install portaudiosudo apt-get install libportaudio2uvx sonilo-mcp and pip install will pull the Python bindings, but the system PortAudio library must be installed separately. The other tools (text_to_music, video_to_music, text_to_sfx, video_to_sfx, audio_ducking, get_sfx_task, get_account_services, get_usage) work without PortAudio.
npm install -g sonilo-cli && sonilo login — and leave "env": {} below. Nothing secret goes in the config file."env".uvx): curl -LsSf https://astral.sh/uv/install.sh | sh
See the uv repo for other install methods.
{
"mcpServers": { "sonilo": { "command": "uvx", "args": ["sonilo-mcp"], "env": {} } } }
That is the whole config when you have signed in with sonilo login. To hold a key instead, or to change the defaults:
"env": {
"SONILO_API_KEY": "sk-...", "SONILO_API_URL": "https://api.sonilo.com", "TIME_OUT_SECONDS": "600" }
Signed in with the CLI (npm install -g sonilo-cli && sonilo login), the whole setup is one command:
codex mcp add sonilo -- uvx sonilo-mcp
Or, holding a key yourself:
codex mcp add sonilo --env SONILO_API_KEY=sk-... -- uvx sonilo-mcp
To configure it by hand instead:
sonilo login.uvx): curl -LsSf https://astral.sh/uv/install.sh | sh
Or you can add the server** to ~/.codex/config.toml:
[mcp_servers.sonilo]
command = "uvx" args = ["sonilo-mcp"]
sonilo login.[mcp_servers.sonilo.env] SONILO_API_KEY = "sk-..." SONILO_API_URL = "https://api.sonilo.com" TIME_OUT_SECONDS = "600"
/mcp to confirm sonilo is connected and its tools are listed.Once the server is connected, just ask your assistant in natural language. For example:
~/Desktop/promo.mp4."*https://example.com/clip.mp4 with a calm, ambient style."*~/Desktop/trailer.mp4 — add a soundtrack that matches the cut."*The assistant will call the matching tool (text_to_music, video_to_music, text_to_sfx, video_to_sfx, audio_ducking, get_sfx_task, get_account_services, get_usage, or play_audio) and save generated audio to your configured output directory.
The server takes its key from SONILO_API_KEY if that is set, and otherwise from the credential written by sonilo login (~/.config/sonilo/credentials.json, or $XDG_CONFIG_HOME/sonilo/). The environment variable wins on purpose, so any config that already sets it keeps resolving to the same account after an upgrade.
The credential is looked up by the server's own SONILO_API_URL, so a staging server never picks up a production sign-in. This server only ever reads the file: run sonilo login again to renew it (keys from a sign-in expire after 90 days) and sonilo logout to revoke it.
| Variable | Default | Description |
|---|---|---|
SONILO_API_KEY | _(from sonilo login)_ | Bearer token. Required only if you have not signed in with the CLI. |
SONILO_API_URL | https://api.sonilo.com | Public API base URL. |
SONILO_MCP_BASE_PATH | ~/Desktop | Default output directory and base for relative input paths. Also the confinement boundary (see below). |
SONILO_MCP_ALLOW_ANY_PATH | false | Set to true to let tools read/write files outside SONILO_MCP_BASE_PATH. |
TIME_OUT_SECONDS | 600 | Timeout, in seconds, for streaming music (text_to_music, and video_to_music without preserve_speech), uploads and downloads. Aligned with the backend's streaming read timeout. Task-based tools (sound effects, ducking, video-to-video, async music, analyze_video, proofread) wait at least 2700s (45 min) for their task whatever this is set to, because the backend lets a task wait up to 2400s in its queue; set it higher to wait longer. stems waits at least 75 min and dubbing at least 2 hours. |
Some MCP hosts impose their own tool-call timeout and may cut a call off before that wait ends. The task keeps running and is still billed: its id is in the server's stderr log as [sonilo-mcp] task submitted: , and get_sfx_task(" ") retrieves the result — nothing is lost.
By default, the file tools (video_to_music input, play_audio, and any output_directory) are confined to `SONILO_MCP_BASE_PATH`. Paths that resolve outside it (after symlink resolution) are rejected. This limits the blast radius if a client is tricked into reading or exfiltrating arbitrary files. To opt out — e.g. to read a video from elsewhere on disk — set SONILO_MCP_ALLOW_ANY_PATH=true.
| Tool | Description | Cost |
|---|---|---|
text_to_music(prompt, duration?, output_format?, variants_num?, stems?, output_directory?) | Generate music from a text prompt. variants_num (1–10, default 1) generates that many distinct variants in one request, each with its own title; N > 1 forces the backend's async mode automatically and is never covered by the free trial. stems (default false) also saves the track split into four separate instrument tracks — drums, bass, vocals and other — at no extra charge; it adds a few minutes (the call waits up to 75 min) and forces the backend's async mode automatically. A stems_error note in the result means only the free separation failed or was skipped — the music itself is fine. | ✅ |
| `video_to_music(video_path? \| video_url?, prompt?, preserv
Only the beginning is shown; read the rest in the repo