Ai.compeller/compel

by Compellerai

109 downloads
Not rated
GitHub Website

About

Create AI music videos and audio-reactive visuals from songs through MCP.

Details

Author
Compellerai
Downloads
109
Categories
Design, Other, Media

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Ai.compeller/compel
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

{
  "mcpServers": {
    "compeller": {
      "url": "https://compeller.ai/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_COMPELLER_API_TOKEN"
      }
    }
  }
}

get_capabilities

Get Compeller platform capabilities, supported features, and API version.

get_pricing

Get current Compeller subscription plans and pricing.

list_styles

List available visual styles for Compeller video generation.

upload_media

Get upload instructions for media files (audio, images, video). Returns the upload URL and required headers. Requires API token authentication.

search_music

Search Deezer preview tracks by song, artist, or album. Use this when the user provides a song string but no MP3/WAV/FLAC file.

create_compel_from_music

Create a compel from a selected Deezer preview track. If the user provides an audio file instead, upload that file and use create_compel.

create_compel

Create a Compeller generation job from primary audio media and optional reference media. Returns compel id, status, and links to track progress and retrieve renderings.

get_compel

Get the current status, progress, and details of a Compeller generation job.

start_render

Start rendering a READY compel with default configuration so an agent can continue to final MP4 without opening the browser UI.

list_compels

List all Compeller generation jobs for the authenticated account, newest first.

search_compels

Search Compeller generation jobs by title for the authenticated account.

list_renderings

List all video renderings for a specific compel.

get_rendering

Get details of a specific video rendering.

search_media

Search and list uploaded media files for the authenticated account.

register_webhook

Register an HTTPS endpoint to receive signed push notifications for compel lifecycle events (compel.ready when renderable, compel.completed, compel.failed). Returns webhook_id and the HMAC-SHA256 signing secret exactly once - store the secret immediately, it is never returned again. Deliveries are signed via X-Compeller-Signature: sha256=<hex> over the raw body. Delivery is at-least-once: a failed delivery is retried with backoff (up to 6 attempts) and every retry carries the same X-Compeller-Event-Id, so dedupe on it.

list_webhooks

List all webhook endpoints registered for the authenticated account. Secrets are never returned by this tool.

delete_webhook

Delete a webhook endpoint by id. Removes the registration and stops future deliveries.

test_webhook_delivery

Synchronously POST a synthetic webhook.test event to a registered endpoint. Uses the same HMAC-SHA256 signature as real deliveries, runs the standard URL safety check at delivery time, and returns {webhook_id, event_id, event_type, delivered, response_status, response_body_preview, latency_ms, error?}. Ignores the endpoint's events subscription - test delivery is always on-demand. Use this to verify your integration before relying on compel.completed / compel.failed events.

update_webhook

Update one or more mutable fields on a registered webhook endpoint: url, events, active. At least one of these must be provided. Validation mirrors register_webhook (https-only, <= 2048 chars, URL safety blocklist). Returns the updated endpoint (secret is never returned by this tool - use rotate_webhook_secret for that).

rotate_webhook_secret

Mint a new HMAC-SHA256 signing secret for a registered webhook endpoint. The previous secret is invalidated immediately - integrators must update their receiver before the next compel terminal event fires. Returns the new secret exactly once; store it on receipt.

cancel_compel

Cancel an in-progress compel. Dequeues it if still queued, otherwise cancels any active external (AI provider) tasks and transitions it to CANCELLED. Idempotent - cancelling an already-CANCELLED compel succeeds. Use to stop a mis-prompted or runaway job before it consumes more render minutes.

get_account_credits

Get the authenticated account's render-minute balance and plan: minutes remaining (free + paid), monthly allowance, plan code, and whether the quota is exceeded. Call before starting an expensive render so an agent can make cost-aware decisions.

list_lighting_effects

List the COM-497 starter lighting effects available to launch as cues (e.g. "gobo-cycle", "x-move", "dimmer-pulse"). Each effect carries an id, the capabilities it needs, and a launch_contract template. Use the returned id as effect_id for launch_lighting_cue.

launch_lighting_cue

Launch a starter lighting effect onto a stage as a live cue (e.g. "gobo-cycle on the stage's 7R beams at speed 0.5"). Pass effect_id (from list_lighting_effects) and optional variables to override effect defaults. Validation is loud: an unknown effect, a launch_contract whose bindings a stage cannot render, or a missing required field is rejected. Returns the active cue including its launch_id, resolved variables, and launch_contract for REACT. REACT executes the cue per-frame; the live strobe slider stays authoritative and is never raised by a launch.

list_lighting_cues

List the live (non-stopped) lighting cues REACT is executing, including each cue's launch_id, resolved variables, launch_contract, and feedback. Optionally scope to one stage.

get_lighting_cue

Fetch a single live lighting cue by its launch_id, including resolved variables, launch_contract, and REACT feedback.

stop_lighting_cue

Stop a live cue by its launch_id. Idempotent - the cue is marked stop-requested so REACT drops it on its next refresh.

set_lighting_cue_variables

Update variables on a live cue (e.g. change cycle speed or intensity mid-show). Only the variables you pass change; the rest keep their current values. Stopped cues are rejected.

ack_lighting_cue

REACT/BAE acknowledgement for a launch_id. Idempotently records whether the executor accepted or rejected the cue and which executor observed it.

report_lighting_cue

REACT/BAE report-back for cue status, active variables, skipped bindings, capability misses, last_frame_at, and errors.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "ai.compeller/compel": {
            "compeller": {
                "url": "https://compeller.ai/api/mcp",
                "headers": {
                    "Authorization": "Bearer YOUR_COMPELLER_API_TOKEN"
                }
            }
        }
    }
}

McpServers

{
    "compeller": {
        "url": "https://compeller.ai/api/mcp",
        "headers": {
            "Authorization": "Bearer YOUR_COMPELLER_API_TOKEN"
        }
    }
}

- Discover available styles and capabilities— calllist_stylesandget_capabilitiesto see supported styles, platforms, and aspect ratios before creating a compel.
- Find a track for a music-driven compel— usesearch_musicto locate a track by song or artist name, then pass its ID tocreate_compel_from_music.
- Create a compel from uploaded media— useupload_mediato get upload instructions, then callcreate_compelwith the resultingprimary_media_id.
- Check account credits before rendering— callget_account_creditsto see remaining minutes and quota status so you can avoid starting a render that would fail.
- Monitor a compel and trigger final render— pollget_compelfor progress, then callstart_renderonce the compel is ready.
- Set up push notifications for compel events— useregister_webhookto receive signedcompel.readyandcompel.completedevents instead of polling.

The Compeller MCP endpoint implements theModel Context Protocolas a thin JSON-RPC 2.0 wrapper over the existing v1 REST API. It is intended for agent integrators (Claude Desktop, Cursor, custom MCP clients, DigiRAMP) that speak MCP natively rather than raw HTTP.

- Transport:Streamable HTTP (single JSON-RPC message per HTTP POST).
- URL:POST https://compeller.ai/api/mcp
- Protocol version:2024-11-05
- Server name / version:compeller-mcp/ seeinitializeresult.
- Tool contract:The tool list below is the public integration contract. Usetools/listfor the runtime-advertised set on the deployed server.
- Directory listings:
Official MCP Registry·Smithery·Glama

Anonymous (discovery) methods:initialize,tools/list,ping,notifications/initialized, plus the anonymous toolsget_capabilities,get_pricing,list_styles.

Every other tool requires a Compeller API token passed on the HTTP request itself,not inside the JSON-RPC body. Either header works:

Authorization: Bearer <api-token> X-API-Token: <api-token>

Tokens are issued per CompellerUser(same tokens used by/api/v1/). Agents can obtain one in either of two ways:

curl -s -X POST https://compeller.ai/api/login \ -H 'Content-Type: application/json' \ -d '{"username":"artist@example.com","password":"..."}'

Normal users receiveusernameandaccess_token.rolesappears only for accounts with roles beyond baselineROLE_COMPELLER;refresh_tokenandexpires_inappear only when non-empty.
- Or exchange credentials through the v1 auth helper, which returns the persistent API token:

curl -s -X POST https://compeller.ai/api/v1/auth/token \ -H 'Content-Type: application/json' \ -d '{"email":"artist@example.com","password":"..."}'

A missing or invalid token surfaces as atool error(isError: true) with message"API token required."/"Invalid API token.", not as a JSON-RPC error, so MCP clients can prompt the user for credentials.

Unknown methods return JSON-RPC error-32601 Method not found. Unknown tool names return-32602 Unknown tool. A malformed JSON body returns-32700 Parse error. A missing / wrongjsonrpcor missingmethodreturns-32600 Invalid Request.

All tools return a singlecontententry oftype: textwhosetextfield is JSON-formatted structured output. On failure, the same response shape is returned withisError: trueand a human-readable error message incontent[0].text— never as a JSON-RPCerror.

Media and music (auth required unless noted)

style,target_platform, andaspect_ratioare constrained byenumin the tool schemas (seeget_capabilities.enums);stylevalues come straight fromlist_styles.

download_urlpoints atGET /api/v1/renderings/{id}/download(supports HTTP Range). Completed compel/rendering responses also include areacthandoff with the free REACT download (https://compeller.ai/download/desktop) and learn-more URL (https://compeller.ai/react) so agents can tell users how to experience the compel as a live performance system.

Unknown event names collapse silently to the wildcard; this mirrorsPOST /api/v1/webhooksso an agent never creates a no-op subscription.

Delivery is at-least-once.Each event is attempted immediately and, if your endpoint is unreachable or returns a non-2xx, retried with backoff — up to 6 attempts total (immediately, then after 1m, 5m, 30m, 2h, 6h). Every attempt carries the sameX-Compeller-Event-Idand a byte-identical signed body, so dedupe on that id. If all attempts are exhausted the event is dropped; reconcile viaget_compel.

register_webhookrejects destinations that point at internal infrastructure with a tool error: loopback, RFC1918 private ranges, link-local (including cloud metadata IPs like169.254.169.254), IPv6 ULA, CGNAT, multicast, the unspecified address, and hostnames ending in.local/.internal/.localhost. The same check re-runs at delivery time against resolved DNS on every attempt, so a hostname that rebinds to a blocked IP after registration is skipped for that attempt (logged); if it stays blocked it simply consumes its retry budget and is then dropped.

update_webhookaccepts any ofurl,events,active(at least one). URL validation mirrorsregister_webhook. Secrets are never returned by this tool.

rotate_webhook_secretmints a fresh 64-char hex signing secret, returns it exactly once, and invalidates the previous secret immediately. Store the new secret on receipt before the next real delivery.

Every delivery is signed exactly like the REST path — seeopenapi.yaml'sWebhookssection for the full envelope and header contract.

# 1. Handshake curl -s https://compeller.ai/api/mcp \ -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"my-agent","version":"1.0"}}}' # 2. List tools curl -s https://compeller.ai/api/mcp \ -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' # 3. Register a webhook (auth required) curl -s https://compeller.ai/api/mcp \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <api-token>' \ -d '{ "jsonrpc":"2.0", "id":3, "method":"tools/call", "params":{ "name":"register_webhook", "arguments":{ "url":"https://hooks.my-agent.io/compeller", "events":["compel.completed","compel.failed"] } } }'

The response to step 3 is a JSON-RPCresultcontainingcontent[0].text— itself a JSON document withwebhook_id,secret, etc. Storesecretimmediately; the server will not return it again.

Tool-level failures (validation, auth, not-found) are returned inside a successful JSON-RPC response as{result: {isError: true, content: [{type: "text", text: "..."}]}}. This is by MCP convention — it lets the LLM see and surface the failure verbatim.

Agent audio decision tree: if the user provides MP3/WAV/FLAC, useupload_mediathencreate_compel; if the user provides only a song/artist string, usesearch_musicthencreate_compel_from_music; do not synthesize a tone unless explicitly asked for generated test audio.

Official Cannon Studio MCP for AI video, image, 3D, audio, workflow, pricing, model, and developer API guidance.

MCP server for AI image, video, voice and music generation, routing prompts to Veo 3.1, Seedance 2.0, Nano Banana 2, GPT-Image-2 and more, from Claude, Cursor, ChatGPT or Codex.

Turn any language model into a multimodal powerhouse that can generate images, music, videos and more on the fly. Rostro's tools are designed to be used by language models from the ground up, expanding capabilities with minimal context bloat.

The World's First AI Music MCP Beyond images and video, your agent can now generate music.

All-in-one AI creative studio — generate videos, images, audio in 11 Indian languages, and 3D models via MCP. Hosted at mcp.arcframe.ai.

Enables AI assistants to interact with DaVinci Resolve Studio for advanced control over video editing, color grading, and audio.

A server for creating fast and free lipsync videos for digital avatars, supporting both realistic and cartoon styles.

Transcribe and summarize video content from links using various transcription services.

: MCP server for AI media generation (imagesflux, videosveo3.1, music suno v5, with deterministic cost control using reserve-burn-refund billing

AI Video, Image & Audio Generation with over 150 models

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.