Compeller
Measured conclusion: Alive, not deep-tested. L2 outcome: not_attempted.
Create and track AI music videos and audio-reactive visuals from songs.
| Author | ai.compeller |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Alive, not deep-tested |
| L1 liveness | alive |
| L1 latency | 342 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Compeller": {
"url": "https://compeller.ai/api/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (30)
get_capabilitiesread-onlyGet Compeller platform capabilities, supported features, and API version.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
get_pricingread-onlyGet current Compeller subscription plans and pricing.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
list_stylesread-onlyList available visual styles for Compeller video generation.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
upload_mediaread-onlyGet upload instructions for media files (audio, images, video). Returns the upload URL and required headers. Requires API token authentication.
Parameters:
name— string — Filename for the uploadtype— string — Media type: audio, image, video, or textmime_type— string — MIME type of the file
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
search_musicread-onlySearch Deezer preview tracks by song, artist, or album. Use this when the user provides a song string but no MP3/WAV/FLAC file.
Parameters:
query(required) — string — Song, artist, or album search querylimit— integer — Max results to return (default 10, max 20)
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
create_compel_from_musicCreate a compel from a selected Deezer preview track. If the user provides an audio file instead, upload that file and use create_compel.
Parameters:
track_id(required) — integer — Deezer track id returned by search_musicstyle— string — Visual style. Use one of the exact ids returned by list_styles (e.g. "Cinematic Realistic", "Anime / Manga"). Omit to use the account default.title— string — Optional compel title overrideaspect_ratio— string — Explicit aspect ratio override (takes precedence over target_platform).artist_context— string — Additional creative contexttarget_platform— string — Target platform; sets the aspect ratio when aspect_ratio is omitted.
Hints: read-only no · destructive no · idempotent not declared · open-world no
create_compelCreate a Compeller generation job from primary audio media and optional reference media. Returns compel id, status, and links to track progress and retrieve renderings.
Parameters:
title(required) — string — Title for the compelprimary_media_id(required) — integer — ID of the uploaded audio media to use as the primary trackstyle— string — Visual style. Use one of the exact ids returned by list_styles (e.g. "Cinematic Realistic", "Anime / Manga"). Omit to use the account default.aspect_ratio— string — Explicit aspect ratio override (takes precedence over target_platform).artist_context— string — Additional creative context about the artist or songtarget_platform— string — Target platform; sets the aspect ratio when aspect_ratio is omitted.
Hints: read-only no · destructive no · idempotent not declared · open-world no
get_compelread-onlyGet the current status, progress, and details of a Compeller generation job.
Parameters:
compel_id(required) — integer — The compel ID to check
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
start_renderStart rendering a READY compel with default configuration so an agent can continue to final MP4 without opening the browser UI.
Parameters:
compel_id(required) — integer — The READY compel ID to render
Hints: read-only no · destructive no · idempotent not declared · open-world no
list_compelsread-onlyList all Compeller generation jobs for the authenticated account, newest first.
Parameters:
limit— integer — Max results to return (default 20, max 100)offset— integer — Pagination offset
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
search_compelsread-onlySearch Compeller generation jobs by title for the authenticated account.
Parameters:
query(required) — string — Search query to match against compel titleslimit— integer — Max results to return (default 20)
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
list_renderingsread-onlyList all video renderings for a specific compel.
Parameters:
compel_id(required) — integer — The compel ID to list renderings for
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
get_renderingread-onlyGet details of a specific video rendering.
Parameters:
rendering_id(required) — integer — The rendering ID to retrieve
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
search_mediaread-onlySearch and list uploaded media files for the authenticated account.
Parameters:
type— string — Filter by media type: audio, image, video, or textlimit— integer — Max results to return (default 20, max 100)offset— integer — Pagination offset
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
register_webhookRegister 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.
Parameters:
url(required) — string — HTTPS URL to deliver events to (max 2048 chars)events— array — Event types to subscribe to. Omit or pass ["*"] for all. Known types: compel.ready (renderable - call start_render), compel.completed, compel.failed.
Hints: read-only no · destructive no · idempotent not declared · open-world yes
list_webhooksread-onlyList all webhook endpoints registered for the authenticated account. Secrets are never returned by this tool.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
delete_webhookdestructiveDelete a webhook endpoint by id. Removes the registration and stops future deliveries.
Parameters:
webhook_id(required) — integer — The webhook id returned by register_webhook or list_webhooks
Hints: read-only no · destructive yes · idempotent not declared · open-world no
test_webhook_deliverySynchronously 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.
Parameters:
webhook_id(required) — integer — The webhook id to test. Must belong to the authenticated account.
Hints: read-only no · destructive no · idempotent not declared · open-world yes
update_webhookUpdate 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).
Parameters:
webhook_id(required) — integer — The webhook id to updateurl— string — New HTTPS URL (max 2048 chars)active— boolean — Toggle delivery on/off without losing the registrationevents— array — Replacement event types. Omit to leave unchanged. ["*"] or an empty filtered list resets to wildcard.
Hints: read-only no · destructive no · idempotent not declared · open-world yes
rotate_webhook_secretdestructiveMint 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.
Parameters:
webhook_id(required) — integer — The webhook id to rotate the secret on
Hints: read-only no · destructive yes · idempotent not declared · open-world no
cancel_compeldestructiveCancel 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.
Parameters:
compel_id(required) — integer — The compel ID to cancel
Hints: read-only no · destructive yes · idempotent not declared · open-world no
get_account_creditsread-onlyGet 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.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
list_lighting_effectsread-onlyList 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.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
launch_lighting_cueLaunch 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.
Parameters:
stage_id— integer — The stage to launch onto (must belong to the authenticated account)effect_id— string — COM-497 starter effect id from list_lighting_effects, e.g. "gobo-cycle"variables— object — Optional variable overrides (name -> value), e.g. {"speed": 0.5}. Defaults come from the effect.launch_contract— object — Advanced: an explicit launch_contract to launch instead of resolving one from effect_id.
Hints: read-only no · destructive no · idempotent not declared · open-world not declared
list_lighting_cuesread-onlyList 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.
Parameters:
stage_id— integer — Optional stage id to scope the listing to (must belong to the authenticated account)
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
get_lighting_cueread-onlyFetch a single live lighting cue by its launch_id, including resolved variables, launch_contract, and REACT feedback.
Parameters:
launch_id(required) — string — The launch_id returned by launch_lighting_cue or list_lighting_cues
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
stop_lighting_cuedestructiveStop a live cue by its launch_id. Idempotent - the cue is marked stop-requested so REACT drops it on its next refresh.
Parameters:
launch_id(required) — string — The launch_id of the cue to stop
Hints: read-only no · destructive yes · idempotent not declared · open-world not declared
set_lighting_cue_variablesUpdate 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.
Parameters:
launch_id(required) — string — The launch_id of the cue to updatevariables(required) — object — Variables to set (name -> value), e.g. {"speed": 0.75}
Hints: read-only no · destructive no · idempotent not declared · open-world not declared
ack_lighting_cueREACT/BAE acknowledgement for a launch_id. Idempotently records whether the executor accepted or rejected the cue and which executor observed it.
Parameters:
launch_id(required) — string — The launch_id to acknowledgeaccepted(required) — boolean — true when REACT/BAE accepted the cue for executionexecutor_id— string — Stable REACT/BAE executor instance idobserved_at— string — Executor observation timestamprejected_reason— string — Required by convention when accepted=false
Hints: read-only no · destructive no · idempotent not declared · open-world not declared
report_lighting_cueREACT/BAE report-back for cue status, active variables, skipped bindings, capability misses, last_frame_at, and errors.
Parameters:
launch_id(required) — string — The launch_id to reporterror— stringstatus— string — ACTIVE, STOP_REQUESTED, or STOPPEDexecutor_id— stringlast_frame_at— stringactive_variables— object — Variables actually being sampled by REACT/BAEskipped_bindings— arraycapability_misses— array
Hints: read-only no · destructive no · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.