MCP 서버

Compeller

ai.compeller/compel

이 MCP로 할 수 있는 일

Creates and manages AI-generated music videos and audio-reactive visuals, including media uploads, rendering, visual styles, and live lighting cues.

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.
입력 스키마
{'type': 'object', 'required': ['launch_id', 'accepted'], 'properties': {'accepted': {'type': 'boolean', 'description': 'true when REACT/BAE accepted the cue for execution'}, 'launch_id': {'type': 'string', 'description': 'The launch_id to acknowledge'}, 'executor_id': {'type': 'string', 'description': 'Stable REACT/BAE executor instance id'}, 'observed_at': {'type': 'string', 'description': 'Executor observation timestamp'}, 'rejected_reason': {'type': 'string', 'description': 'Required by convention when accepted=false'}}}
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.
파괴적 작업
입력 스키마
{'type': 'object', 'required': ['compel_id'], 'properties': {'compel_id': {'type': 'integer', 'description': 'The compel ID to cancel'}}}
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.
입력 스키마
{'type': 'object', 'required': ['title', 'primary_media_id'], 'properties': {'style': {'enum': ['Cinematic Realistic', 'Photo Realistic', 'Cyberpunk', 'Anime / Manga', 'Film Noir', 'Watercolor Painting', 'Oil Painting', '3D Render / Pixar', 'Retro 80s Synthwave', 'Vintage Film Grain', 'Comic Book / Pop Art', 'Fantasy / Ethereal', 'Horror / Dark Gothic', 'Steampunk', 'Neon Glow', 'Minimalist / Abstract', 'Surrealist', 'Documentary', 'Vaporwave', 'Pencil Sketch', 'Noir Detective', 'Claymation / Stop Motion', 'Studio Ghibli', 'Baroque / Renaissance', 'Lo-Fi / Grainy VHS', 'Glitch Art / Digital', 'Psychedelic'], 'type': 'string', 'description': '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': {'type': 'string', 'description': 'Title for the compel'}, 'aspect_ratio': {'enum': ['16:9', '9:16', '1:1'], 'type': 'string', 'description': 'Explicit aspect ratio override (takes precedence over target_platform).'}, 'artist_context': {'type': 'string', 'description': 'Additional creative context about the artist or song'}, 'target_platform': {'enum': ['tiktok', 'reels', 'shorts', 'instagram', 'square', 'youtube', 'web'], 'type': 'string', 'description': 'Target platform; sets the aspect ratio when aspect_ratio is omitted.'}, 'primary_media_id': {'type': 'integer', 'description': 'ID of the uploaded audio media to use as the primary track'}}}
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.
입력 스키마
{'type': 'object', 'required': ['track_id'], 'properties': {'style': {'enum': ['Cinematic Realistic', 'Photo Realistic', 'Cyberpunk', 'Anime / Manga', 'Film Noir', 'Watercolor Painting', 'Oil Painting', '3D Render / Pixar', 'Retro 80s Synthwave', 'Vintage Film Grain', 'Comic Book / Pop Art', 'Fantasy / Ethereal', 'Horror / Dark Gothic', 'Steampunk', 'Neon Glow', 'Minimalist / Abstract', 'Surrealist', 'Documentary', 'Vaporwave', 'Pencil Sketch', 'Noir Detective', 'Claymation / Stop Motion', 'Studio Ghibli', 'Baroque / Renaissance', 'Lo-Fi / Grainy VHS', 'Glitch Art / Digital', 'Psychedelic'], 'type': 'string', 'description': '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': {'type': 'string', 'description': 'Optional compel title override'}, 'track_id': {'type': 'integer', 'description': 'Deezer track id returned by search_music'}, 'aspect_ratio': {'enum': ['16:9', '9:16', '1:1'], 'type': 'string', 'description': 'Explicit aspect ratio override (takes precedence over target_platform).'}, 'artist_context': {'type': 'string', 'description': 'Additional creative context'}, 'target_platform': {'enum': ['tiktok', 'reels', 'shorts', 'instagram', 'square', 'youtube', 'web'], 'type': 'string', 'description': 'Target platform; sets the aspect ratio when aspect_ratio is omitted.'}}}
delete_webhook
Delete a webhook endpoint by id. Removes the registration and stops future deliveries.
파괴적 작업
입력 스키마
{'type': 'object', 'required': ['webhook_id'], 'properties': {'webhook_id': {'type': 'integer', 'description': 'The webhook id returned by register_webhook or list_webhooks'}}}
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.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
get_capabilities
Get Compeller platform capabilities, supported features, and API version.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
get_compel
Get the current status, progress, and details of a Compeller generation job.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['compel_id'], 'properties': {'compel_id': {'type': 'integer', 'description': 'The compel ID to check'}}}
get_lighting_cue
Fetch a single live lighting cue by its launch_id, including resolved variables, launch_contract, and REACT feedback.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['launch_id'], 'properties': {'launch_id': {'type': 'string', 'description': 'The launch_id returned by launch_lighting_cue or list_lighting_cues'}}}
get_pricing
Get current Compeller subscription plans and pricing.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
get_rendering
Get details of a specific video rendering.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['rendering_id'], 'properties': {'rendering_id': {'type': 'integer', 'description': 'The rendering ID to retrieve'}}}
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.
입력 스키마
{'type': 'object', 'required': [], 'properties': {'stage_id': {'type': 'integer', 'description': 'The stage to launch onto (must belong to the authenticated account)'}, 'effect_id': {'type': 'string', 'description': 'COM-497 starter effect id from list_lighting_effects, e.g. "gobo-cycle"'}, 'variables': {'type': 'object', 'description': 'Optional variable overrides (name -> value), e.g. {"speed": 0.5}. Defaults come from the effect.'}, 'launch_contract': {'type': 'object', 'description': 'Advanced: an explicit launch_contract to launch instead of resolving one from effect_id.'}}}
list_compels
List all Compeller generation jobs for the authenticated account, newest first.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'description': 'Max results to return (default 20, max 100)'}, 'offset': {'type': 'integer', 'description': 'Pagination offset'}}}
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.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'stage_id': {'type': 'integer', 'description': 'Optional stage id to scope the listing to (must belong to the authenticated account)'}}}
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.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
list_renderings
List all video renderings for a specific compel.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['compel_id'], 'properties': {'compel_id': {'type': 'integer', 'description': 'The compel ID to list renderings for'}}}
list_styles
List available visual styles for Compeller video generation.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
list_webhooks
List all webhook endpoints registered for the authenticated account. Secrets are never returned by this tool.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
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.
외부 접근 가능
입력 스키마
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'HTTPS URL to deliver events to (max 2048 chars)'}, 'events': {'type': 'array', 'items': {'enum': ['*', 'compel.ready', 'compel.completed', 'compel.failed'], 'type': 'string'}, 'description': 'Event types to subscribe to. Omit or pass ["*"] for all. Known types: compel.ready (renderable - call start_render), compel.completed, compel.failed.'}}}
report_lighting_cue
REACT/BAE report-back for cue status, active variables, skipped bindings, capability misses, last_frame_at, and errors.
입력 스키마
{'type': 'object', 'required': ['launch_id'], 'properties': {'error': {'type': 'string'}, 'status': {'type': 'string', 'description': 'ACTIVE, STOP_REQUESTED, or STOPPED'}, 'launch_id': {'type': 'string', 'description': 'The launch_id to report'}, 'executor_id': {'type': 'string'}, 'last_frame_at': {'type': 'string'}, 'active_variables': {'type': 'object', 'description': 'Variables actually being sampled by REACT/BAE'}, 'skipped_bindings': {'type': 'array', 'items': {'type': 'string'}}, 'capability_misses': {'type': 'array', 'items': {'type': 'object'}}}}
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.
파괴적 작업
입력 스키마
{'type': 'object', 'required': ['webhook_id'], 'properties': {'webhook_id': {'type': 'integer', 'description': 'The webhook id to rotate the secret on'}}}
search_compels
Search Compeller generation jobs by title for the authenticated account.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'description': 'Max results to return (default 20)'}, 'query': {'type': 'string', 'description': 'Search query to match against compel titles'}}}
search_media
Search and list uploaded media files for the authenticated account.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'type': {'type': 'string', 'description': 'Filter by media type: audio, image, video, or text'}, 'limit': {'type': 'integer', 'description': 'Max results to return (default 20, max 100)'}, 'offset': {'type': 'integer', 'description': 'Pagination offset'}}}
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.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'description': 'Max results to return (default 10, max 20)'}, 'query': {'type': 'string', 'description': 'Song, artist, or album search query'}}}
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.
입력 스키마
{'type': 'object', 'required': ['launch_id', 'variables'], 'properties': {'launch_id': {'type': 'string', 'description': 'The launch_id of the cue to update'}, 'variables': {'type': 'object', 'description': 'Variables to set (name -> value), e.g. {"speed": 0.75}'}}}
start_render
Start rendering a READY compel with default configuration so an agent can continue to final MP4 without opening the browser UI.
입력 스키마
{'type': 'object', 'required': ['compel_id'], 'properties': {'compel_id': {'type': 'integer', 'description': 'The READY compel ID to render'}}}
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.
파괴적 작업
입력 스키마
{'type': 'object', 'required': ['launch_id'], 'properties': {'launch_id': {'type': 'string', 'description': 'The launch_id of the cue to stop'}}}
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.
외부 접근 가능
입력 스키마
{'type': 'object', 'required': ['webhook_id'], 'properties': {'webhook_id': {'type': 'integer', 'description': 'The webhook id to test. Must belong to the authenticated account.'}}}
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).
외부 접근 가능
입력 스키마
{'type': 'object', 'required': ['webhook_id'], 'properties': {'url': {'type': 'string', 'description': 'New HTTPS URL (max 2048 chars)'}, 'active': {'type': 'boolean', 'description': 'Toggle delivery on/off without losing the registration'}, 'events': {'type': 'array', 'items': {'enum': ['*', 'compel.ready', 'compel.completed', 'compel.failed'], 'type': 'string'}, 'description': 'Replacement event types. Omit to leave unchanged. ["*"] or an empty filtered list resets to wildcard.'}, 'webhook_id': {'type': 'integer', 'description': 'The webhook id to update'}}}
upload_media
Get upload instructions for media files (audio, images, video). Returns the upload URL and required headers. Requires API token authentication.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'name': {'type': 'string', 'description': 'Filename for the upload'}, 'type': {'type': 'string', 'description': 'Media type: audio, image, video, or text'}, 'mime_type': {'type': 'string', 'description': 'MIME type of the file'}}}
추가됨
report_lighting_cue
2026년 9월 11일 3:33 PM
추가됨
ack_lighting_cue
2026년 9월 11일 3:33 PM
추가됨
set_lighting_cue_variables
2026년 9월 11일 3:33 PM
추가됨
stop_lighting_cue
2026년 9월 11일 3:33 PM
추가됨
get_lighting_cue
2026년 9월 11일 3:33 PM
추가됨
list_lighting_cues
2026년 9월 11일 3:33 PM
추가됨
launch_lighting_cue
2026년 9월 11일 3:33 PM
추가됨
list_lighting_effects
2026년 9월 11일 3:33 PM
추가됨
get_account_credits
2026년 9월 11일 3:33 PM
추가됨
cancel_compel
2026년 9월 11일 3:33 PM
추가됨
rotate_webhook_secret
2026년 9월 11일 3:33 PM
추가됨
update_webhook
2026년 9월 11일 3:33 PM
추가됨
test_webhook_delivery
2026년 9월 11일 3:33 PM
추가됨
delete_webhook
2026년 9월 11일 3:33 PM
추가됨
list_webhooks
2026년 9월 11일 3:33 PM
추가됨
register_webhook
2026년 9월 11일 3:33 PM
추가됨
search_media
2026년 9월 11일 3:33 PM
추가됨
get_rendering
2026년 9월 11일 3:33 PM
추가됨
list_renderings
2026년 9월 11일 3:33 PM
추가됨
search_compels
2026년 9월 11일 3:33 PM
추가됨
list_compels
2026년 9월 11일 3:33 PM
추가됨
start_render
2026년 9월 11일 3:33 PM
추가됨
get_compel
2026년 9월 11일 3:33 PM
추가됨
create_compel
2026년 9월 11일 3:33 PM
추가됨
create_compel_from_music
2026년 9월 11일 3:33 PM
추가됨
search_music
2026년 9월 11일 3:33 PM
추가됨
upload_media
2026년 9월 11일 3:33 PM
추가됨
list_styles
2026년 9월 11일 3:33 PM
추가됨
get_pricing
2026년 9월 11일 3:33 PM
추가됨
get_capabilities
2026년 9월 11일 3:33 PM