# Mubert Music MCP

> MCP server for the Mubert B2B Music API. Generates royalty-free music cleared for
> commercial use, streams it, and searches a pre-made catalogue. Endpoint: `https://mcp.mubert.com/mcp`
> (streamable HTTP). This page is for connecting; once connected, the server's own
> instructions and the `mubert-music-mcp` skill carry the rules.

## Connect

Add the URL and nothing else. On first use the client opens a browser page on this server
where you either paste the `company-id` and `license-token` from your Mubert confirmation
email, or pick a plan and pay first — the credentials arrive by email, and you paste them on
the same page. The client then holds its own token; the license never leaves this server.

Claude Code:

```
claude mcp add --transport http mubert-music https://mcp.mubert.com/mcp
```

Claude Desktop, Cursor, or any client that takes a JSON config:

```json
{
  "mcpServers": {
    "mubert-music": {
      "type": "http",
      "url": "https://mcp.mubert.com/mcp"
    }
  }
}
```

No account yet? https://mubert.com/api — or just connect and choose a plan on the page that opens.

For a backend, CI, or a client that cannot open a browser, send the credentials as headers
instead; the server provisions its own end-user customer, so there is nothing else to obtain:

```
claude mcp add --transport http mubert-music https://mcp.mubert.com/mcp \
  --header "Authorization: Bearer <license-token>" \
  --header "X-Mubert-Company-Id: <company-id>"
```

Optional `X-Mubert-Client-Key: <stable id>` decides which Mubert customer this installation
runs under. Keep it stable: every new value provisions a customer and consumes a seat.

## Before generating anything

Call `get_capabilities` first. It reports what this license permits — bitrates, formats,
modes, max duration — and how much quota is left. Those values are per-license and cannot be
guessed. Prefer `search_library` (free) before generating, prefer a `playlist_index` over a
text prompt, and round durations to a stocked value (5, 6, 8, 10, 15, 20, 30, 40, 60, 180,
240, 300 s) so a track can come back instantly.

## Skill

The tools carry the rules; the `mubert-music-mcp` skill carries the strategy — the order of
calls that keeps a session cheap, how to refine a track step by step, what to do on each
error. It is published with the other Mubert skills at https://github.com/MubertAI/skills:

```
npx skills add MubertAI/skills
```

The same repo holds the raw-API skills (`mubert-generate`, `mubert-library`, …) for writing
code that calls the API directly; this one is for getting music through the tools.

## Tools

Read-only, spend no quota:

- `get_capabilities` — What this Mubert license allows and how much quota is left.
- `get_library_filters` — Discover which filter values the pre-made library actually has.
- `get_track` — Fetch one track: its status, parameters, download URL and expiry.
- `list_customers` — List the customers provisioned under this license.
- `list_plans` — List the self-serve plans a company can subscribe to.
- `list_playlists` — List the music channels available for generation and streaming.
- `list_tracks` — List tracks generated by this client, newest first by default.
- `search_library` — Search Mubert's pre-made royalty-free catalogue.
- `wait_for_track` — Keep waiting for a generation that had not finished yet.

Mutating — generate, stream, provision, or hand back a payment link:

- `create_checkout_link` — Create a Stripe Checkout link for a plan.
- `delete_customer` — Delete a customer and free its seat.
- `edit_track` — Re-roll or remove parts of an existing track — "swap the bass", "drop
- `generate_track` — Generate a royalty-free track from a prompt, a playlist, or an image.
- `generate_track_instant` — Take a pre-rendered track from the store, or fail fast.
- `open_billing_portal` — Get a Stripe billing-portal link for the connected company.
- `provision_customer` — Create Mubert credentials for one of your product's users.
- `regenerate_similar` — Generate a variation on an existing track.
- `restart_stream` — Jump the running stream to fresh music from the same playlist.
- `set_stream_intensity` — Change the energy of the running stream without interrupting playback.
- `set_stream_loop` — Make the running stream loop a section, or stop looping.
- `start_stream` — Open an endless, non-repeating music stream and return its URL.

## Prompts

- `make-a-loop-pack` — Generate a set of seamless loops for a game or app.
- `pick-a-plan` — Compare Mubert plans against actual usage and get a checkout link.
- `refine-a-track` — Generate a track and then adjust it part by part.
- `score-a-video` — Find or generate music for a video or clip of a known length.

## Resources

- `mubert://capabilities` — What the connected Mubert license permits — features, bitrates, formats, modes, max duration — and how much quota is left in each scope. Read this before choosing generation parameters.
- `mubert://playlists` — Every playlist_index available for generation and streaming, as category.group.channel, with the bpm range and keys each channel supports.
- `mubert://usage` — Just the counters: tracks and streaming seconds used against their limits, per scope, and when the daily and monthly ones reset.
