Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Sonilo Music & Sound Effects

by sonilo-aiversion 0.28.0i★ –iComputer or cloud
Registry nameio.github.sonilo-ai/sonilo-mcp

Install

Overview

Description from the maker (original English)

Licensed soundtracks and sound effects matched to your video. Commercial use OK.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Computer or cloud
  • Transport: stdio, Streamable HTTP
  • Category: Design, images & audio
  • You need to fill in: SONILO_API_KEY

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 3 of 3 passed
  • Runs on the maker’s server: what you ask it goes through their server.
  • You fill in yourself: SONILO_API_KEY, SONILO_API_URL, SONILO_MCP_BASE_PATH, TIME_OUT_SECONDS

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • Runs in the cloudNothing to install; it connects over the internet
  • PyPIPython’s uv installed (for the uvx command)

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:

  1. Open Settings → Connectors
  2. Press Add custom connector
  3. Paste the address below and press Add
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Add2https://…3
https://api.sonilo.com/mcp

Or run it on your computer

Open 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/mcp

Or run it on your computer

claude 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-mcp

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "sonilo": {
      "url": "https://api.sonilo.com/mcp"
    }
  }
}

Or run it on your computer

Open in Cursor

Or copy the settings yourself

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.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "sonilo": {
      "type": "http",
      "url": "https://api.sonilo.com/mcp"
    }
  }
}

Or run it on your computer

Open in VS Code

Or copy the settings yourself

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:

  1. Open ChatGPT on the web → Settings → Connectors (Apps)
  2. Press Create or Add (some plans need Developer mode under Advanced first)
  3. Paste the address below, give it a name and save
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Create2https://…3
https://api.sonilo.com/mcp

Menu names can differ slightly by plan and over time.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • SONILO_API_KEY secret env
    Sonilo API key from platform.sonilo.com/dashboard/api-keys. Optional: leave it unset to use the credential written by `sonilo login`.
  • SONILO_API_URL env
    Public API base URL
  • SONILO_MCP_BASE_PATH env
    Default output directory and file-access confinement boundary
  • TIME_OUT_SECONDS env
    Timeout in seconds for streaming music, uploads and downloads; task-based tools always wait at least 2700s for their task

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

The server asks you to sign in before it lists its tools.

Basic checksi

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

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account sonilo-ai, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • ✓ Pass

    Endpoint responds

    Responded in 163 ms (HTTP 401)

  • ✓ Pass

    Sign-in with OAuth

    Declares OAuth sign-in, so your AI app can take you to log in

  • … Not checked yet

    No hidden instructions in tool descriptions

    Not checked yet; we read the tool list when we check the endpoint

Compared with others in Design, images & audioi

  • More stars than 0% of the other 2204 servers in this category
  • Published to the registry more recently than 75% of the other 2204 servers in this category
  • Basic checks equal to or better than 100% of the other 2204 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Sonilo Music & Sound Effects safe?

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.

What keys or codes does it need?

You need to fill in: SONILO_API_KEY

Does it run on my computer or in the cloud?

Either way works: install it on your computer or connect to the cloud version.

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.28.0) reached the registry 11 days ago.

Which apps can use it?

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.

What can I use instead?

In the same category: Figma Context MCP, Claude Real Video, Figma MCP Server

Alternatives

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.

Runs on your computer★ 16,165MITUpdated 5 months ago
Install

Claude Real Video

by HUANGCHIHHUNGLeo

Let any LLM watch a video locally — and search everything it has ever watched.

Runs on your computer★ 2,284MITUpdated 2 months ago
Install

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.

Runs in the cloud★ 2,152Updated 13 months ago
Install

README from the maker

Open the README

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.

Sonilo MCP Server

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.

Quickstart with Claude Code

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."*

Why Sonilo

  • Video-to-music — give it a video and Sonilo composes a full-length score matched to its pacing, motion, and emotion. Transitions and beat drops align to your cut points, and the track matches the video's duration exactly — no prompts or manual syncing required.
  • Text-to-music — generate tracks from a text description (genre, mood, tempo, instrumentation), at an exact duration (5–360s) or none at all, in which case Sonilo picks a length that suits the prompt.
  • Video-to-SFX — Sonilo watches the video and generates sound effects for what it sees. You get the SFX as a standalone audio file. Optional segments let you script effects to specific time ranges ([{start, end, prompt}]).
  • Text-to-SFX — generate a standalone sound effect from a description (0.5–180s), in wav, mp3, aac, or flac.
  • Proofread before dubbing — 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.
  • Fully licensed, commercial-safe — music licensed via Shutterstock; every generated track is cleared for commercial use on social, brand content, and advertising, with no Content ID worries.
  • Video-to-sound — generate music and sound effects for the same clip in one call, mixed into a single balanced soundtrack. Get back the mixed audio, or a new video with it muxed in.
  • Multiple variants per call — 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.
  • Instrument stems — 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.
  • Pay as you go — billed only for the seconds of music you generate. Self-serve accounts start with free runs on every endpoint, no card required: 2 each on text-to-music, text-to-sfx, audio-ducking and proofread, and 1 each on video-to-music, video-to-sfx, video-to-video-music, video-to-video-sfx, video-to-sound and video-to-video-sound. After that, calls bill at the normal rate. 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).
Audio Playback Dependencies

The play_audio tool requires PortAudio at runtime (for sounddevice). On macOS/Linux, install via:

  • macOS: brew install portaudio
  • Debian/Ubuntu: sudo apt-get install libportaudio2

uvx 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.

Quickstart with Claude Desktop

  1. Authenticate, either way round:
  • Sign in with the CLI — npm install -g sonilo-cli && sonilo login — and leave "env": {} below. Nothing secret goes in the config file.
  • Or get an API key from the Sonilo dashboard and put it in "env".
  1. Install the `uv` package manager (provides uvx):
   curl -LsSf https://astral.sh/uv/install.sh | sh

See the uv repo for other install methods.

  1. Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json to include the following:
   {

"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" }

  1. Restart Claude Desktop. You should see the Sonilo tools available in the tool menu.

Quickstart with Codex

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:

  1. Get your API key from the Sonilo dashboard — or skip this step if you signed in with sonilo login.
  1. Install the `uv` package manager (provides uvx):
   curl -LsSf https://astral.sh/uv/install.sh | sh
  1. **Go to Codex > Settings > MCP servers to fill out the following:

Or you can add the server** to ~/.codex/config.toml:

   [mcp_servers.sonilo]

command = "uvx" args = ["sonilo-mcp"]

Omit this whole block when you have signed in with sonilo login.

[mcp_servers.sonilo.env] SONILO_API_KEY = "sk-..." SONILO_API_URL = "https://api.sonilo.com" TIME_OUT_SECONDS = "600"

  1. Restart Codex (or start a new session), then run /mcp to confirm sonilo is connected and its tools are listed.

Example usage

Once the server is connected, just ask your assistant in natural language. For example:

  • *"Make background music that matches this video: ~/Desktop/promo.mp4."*
  • *"Compose music for https://example.com/clip.mp4 with a calm, ambient style."*
  • *"I stitched my AI-generated clips into ~/Desktop/trailer.mp4 — add a soundtrack that matches the cut."*
  • *"Use Sonilo mcp to generate 30 seconds of upbeat lo-fi hip-hop for a study playlist and save it to my Desktop."*
  • *"Use Sonilo to write an epic orchestral cinematic track, about 60 seconds long."*
  • *"What Sonilo services and limits does my account have?"*
  • *"Show my Sonilo usage for the last 7 days."*
  • *"Play the track you just generated."*

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.

Configuration

Authentication

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.

Environment Variables
VariableDefaultDescription
SONILO_API_KEY_(from sonilo login)_Bearer token. Required only if you have not signed in with the CLI.
SONILO_API_URLhttps://api.sonilo.comPublic API base URL.
SONILO_MCP_BASE_PATH~/DesktopDefault output directory and base for relative input paths. Also the confinement boundary (see below).
SONILO_MCP_ALLOW_ANY_PATHfalseSet to true to let tools read/write files outside SONILO_MCP_BASE_PATH.
TIME_OUT_SECONDS600Timeout, 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.

File access & confinement

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.

Tools

ToolDescriptionCost
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

Ask PopNx