Compeller
Create and track AI music videos and audio-reactive visuals from songs.
Executive verdict
Current trust snapshot
trustsnap_ba218fa16f3f849fOwn this MCP?
Claim ownership, prove control with a GitHub, DNS, or HTTP token challenge, revalidate now, publish a badge, and configure monitoring.
POST /v1/servers/ai.compeller/compel/revalidateBadge embed
[](https://verify.sentinelsignal.io/servers/ai.compeller/compel)
MCP TrustOps
TrustOps turns this report into operational controls: freshness SLAs, authenticated validation, semantic benchmarks, policy exports, alert subscriptions, badges, cost/compliance metadata, and runtime routing. Fresh trusted index decisions stay separate from long-tail inventory so stale scores do not masquerade as current evidence.
/v1/routeAlert subscription types
Production readiness class
Evidence confidence
Recommended for
Client compatibility verdicts
Client compatibility only means the server shape can work with a client. Production trust decision and write-action publishing are evaluated separately so a client-compatible server can still be blocked for production.
Evidence provenance
initialize• OKtools_list• OKtransport_compliance_probe• Errorstep_up_auth_probe• Missingconnector_replay_probe• OK — Frozen tool snapshots must survive refresh.request_association_probe• Missing — Roots, sampling, and elicitation should stay request-scoped.
Evidence provenance
initialize• OKtools_list• OKtransport_compliance_probe• Error
Evidence provenance
action_safety_probe• Error
Evidence provenance
tool_snapshot_probe• OKconnector_replay_probe• OK
Why compatibility is limited by client
Remediation checklist
- No explicit blockers recorded.
Remediation checklist
- No explicit blockers recorded.
Remediation checklist
- No explicit blockers recorded.
Verdict traces
- No active alert triggers.
Client verdict trace table
| Verdict | Status | Checks | Winning source | Conflicts |
|---|---|---|---|---|
openai_connectors |
Partially client-compatible | initialize, tools_list, transport_compliance_probe, step_up_auth_probe, connector_replay_probe, request_association_probe | live_validation | none |
claude_desktop |
Client-compatible | initialize, tools_list, transport_compliance_probe | live_validation | none |
unsafe_for_write_actions |
Publishing blocked | action_safety_probe | live_validation | none |
snapshot_churn_risk |
Low | tool_snapshot_probe, connector_replay_probe | history | none |
Publishability policy profiles
- Search Fetch Only: No
- Write Actions Present: Yes
- Oauth Configured: No
- Admin Refresh Required: No
- Safe For Company Knowledge: No
- Safe For Messages Api Remote Mcp: No
- Search Fetch Only: No
- Write Actions Present: Yes
- Oauth Configured: No
- Admin Refresh Required: No
- Safe For Company Knowledge: No
- Safe For Messages Api Remote Mcp: No
Compatibility fixtures
- remote_http_endpoint: Passes
- oauth_discovery: Degraded
- frozen_tool_snapshot_refresh: Passes
- request_association: Passes
- remote_transport: Passes
- tool_discovery: Passes
- auth_connect: Passes
- safe_write_review: Degraded
Authenticated validation sessions
Public validation is free. Authenticated validation is paid and proves scoped behavior, write-action safeguards, and authenticated tool execution.
/v1/verify/v1/ci/previewPublic server reputation
Incident & change feed
| Timestamp | Event | Details |
|---|---|---|
| May 13, 2026 02:13:17 PM UTC | Latest validation: healthy | Score 73.2 with status healthy. |
| May 13, 2026 02:13:17 PM UTC | Score changed | Score delta -0.4 versus the previous run. |
| May 13, 2026 02:12:42 AM UTC | Score changed | Score delta +0.5 versus the previous run. |
| May 12, 2026 02:06:37 PM UTC | Score changed | Score delta +3.1 versus the previous run. |
Capabilities
- OAuth:
- DCR/CIMD:
- Prompts:
- Homepage: none
- Docs: none
- Support: none
- Icon: none
- Remote endpoint: https://compeller.ai/api/mcp
- Server card: none
Security posture
Tool capability & risk inventory
| Tool | Capabilities | Risk | Findings | Notes |
|---|---|---|---|---|
get_capabilities |
read | Low | none | No explicit safeguard hints detected. |
get_pricing |
read | Low | none | No explicit safeguard hints detected. |
list_styles |
read | Low | none | No explicit safeguard hints detected. |
upload_media |
read network filesystem secrets | Medium | secret material access | No explicit safeguard hints detected. |
search_music |
read exec filesystem admin export | High | command execution bulk data access freeform input surface | No explicit safeguard hints detected. |
create_compel_from_music |
read write network filesystem admin | High | arbitrary network egress filesystem mutation admin mutation | No explicit safeguard hints detected. |
create_compel |
read write network filesystem | Medium | arbitrary network egress filesystem mutation | No explicit safeguard hints detected. |
get_compel |
read | Low | none | No explicit safeguard hints detected. |
start_render |
read network | Medium | none | No explicit safeguard hints detected. |
list_compels |
read write export | Medium | bulk data access | Safeguards hinted in metadata. |
search_compels |
read exec export | High | command execution bulk data access freeform input surface | No explicit safeguard hints detected. |
list_renderings |
read | Low | none | No explicit safeguard hints detected. |
get_rendering |
read | Low | none | No explicit safeguard hints detected. |
search_media |
read write filesystem export | Medium | bulk data access filesystem mutation | Safeguards hinted in metadata. |
register_webhook |
network secrets | High | arbitrary network egress secret material access freeform input surface | No explicit safeguard hints detected. |
list_webhooks |
read network secrets | Medium | secret material access | No explicit safeguard hints detected. |
delete_webhook |
read write delete network | High | destructive operation arbitrary network egress | No explicit safeguard hints detected. |
test_webhook_delivery |
read write exec network | High | command execution arbitrary network egress | No explicit safeguard hints detected. |
update_webhook |
read write network secrets | High | arbitrary network egress secret material access freeform input surface | Safeguards hinted in metadata. |
rotate_webhook_secret |
write network secrets | Medium | arbitrary network egress secret material access | Safeguards hinted in metadata. |
Write-action governance
Status detail: 7 high-risk tool(s), 1 destructive tool(s), 3 exec-capable tool(s) are exposed without a clear auth boundary; 4 safeguard(s) and 3 confirmation signal(s) detected.
| Tool | Risk | Flags | Safeguards |
|---|---|---|---|
search_music |
High | command execution bulk data access freeform input surface | no |
create_compel_from_music |
High | arbitrary network egress filesystem mutation admin mutation | no |
search_compels |
High | command execution bulk data access freeform input surface | no |
register_webhook |
High | arbitrary network egress secret material access freeform input surface | no |
delete_webhook |
High | destructive operation arbitrary network egress | no |
test_webhook_delivery |
High | command execution arbitrary network egress | no |
update_webhook |
High | arbitrary network egress secret material access freeform input surface | yes |
Action-controls diff
New actions
| Action | Risk | Flags |
|---|---|---|
| No newly added actions. | ||
Changed actions
| Action | Change types | Risk |
|---|---|---|
| No materially changed actions. | ||
Why this score?
Algorithmic score breakdown
Compatibility profiles
Connector URL: https://compeller.ai/api/mcp # No OAuth metadata detected. # Server: ai.compeller/compel
{
"mcpServers": {
"compel": {
"command": "npx",
"args": ["mcp-remote", "https://compeller.ai/api/mcp"]
}
}
}
smithery mcp add "https://compeller.ai/api/mcp"
curl -sS https://compeller.ai/api/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"mcp-verify","version":"0.1.0"}}}'
Actionable remediation
| Severity | Remediation | Why it matters | Recommended action |
|---|---|---|---|
| High | Add confirmation and dry-run semantics for risky actions | High-risk write, delete, exec, or egress tools should communicate safeguards clearly. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| High | Align session and protocol behavior with Streamable HTTP expectations | Clients increasingly rely on MCP-Protocol-Version, session teardown, and expired-session semantics. | Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.Playbook
|
| High | Associate roots, sampling, and elicitation with active client requests | Modern MCP guidance expects roots, sampling, and elicitation traffic to be tied to an active client request instead of arriving unsolicited on idle sessions. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| High | Expose /.well-known/oauth-protected-resource | Without a protected-resource document, OAuth clients cannot discover auth requirements reliably. | Serve /.well-known/oauth-protected-resource and point it at your authorization server metadata.Playbook
|
| High | Publish OAuth authorization-server metadata | Clients need authorization-server metadata to discover issuer, endpoints, and DCR support. | Publish /.well-known/oauth-authorization-server from your issuer and include registration_endpoint when supported.Playbook
|
| High | Publish a complete server card | Missing or incomplete server-card metadata weakens discovery, documentation, and trust signals. | Serve /.well-known/mcp/server-card.json and include tools, prompts/resources, homepage, and support links.Playbook
|
| Medium | Adopt a current MCP protocol revision | Older protocol revisions reduce compatibility with newer clients and registry programs. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| Medium | Close connector-publishing gaps | Connector catalogs care about protocol recency, session behavior, auth clarity, and tool-surface stability. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| Medium | Document minimal scopes and return cleaner auth challenges | Modern clients expect granular scopes and step-up auth signals such as WWW-Authenticate scope hints. | Return granular scopes and WWW-Authenticate challenge hints instead of forcing overly broad auth upfront.Playbook
|
| Medium | Publish OpenID configuration | OIDC metadata improves token validation and client compatibility. | Expose /.well-known/openid-configuration with issuer, jwks_uri, and supported grants.Playbook
|
| Medium | Support resumable HTTP sessions cleanly | Modern MCP clients increasingly expect resumable session behavior on streamable HTTP transports. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| Low | Expose modern utility surfaces like completions, pagination, or tasks | Utility coverage improves interoperability with larger clients and long-lived agent workflows. | Expose completions, pagination, and task metadata where supported so larger clients can plan and resume work safely.Playbook
|
| Low | Publish newer MCP capability signals | Roots, sampling, elicitation, structured outputs, and related metadata improve client understanding and ranking. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
Point loss breakdown
| Component | Current | Points missing |
|---|---|---|
| Transport Compliance | 0/4 | -4.0 |
| Recovery Semantics | 0/4 | -4.0 |
| Error Contract | 0/4 | -4.0 |
| Execution Sandbox Safety | 1.5/4 | -2.5 |
| Utility Coverage | 2/4 | -2.0 |
| Trust Confidence | 2/4 | -2.0 |
| Resource Contract | 2/4 | -2.0 |
| Registry Consistency | 2/4 | -2.0 |
| Rate Limit Semantics | 2/4 | -2.0 |
| Prompt Contract | 2/4 | -2.0 |
| Least Privilege Scope | 2/4 | -2.0 |
| Destructive Operation Safety | 2/4 | -2.0 |
Validation diff
Regressed checks: none
Improved checks: none
| Component | Previous | Latest | Delta |
|---|---|---|---|
trust_confidence_score | 3.81 | 2.0 | -1.81 |
freshness_confidence_score | 3.0 | 4.0 | 1.0 |
Tool snapshot diff & changelog
Required-argument changes
| Tool | Added required args | Removed required args |
|---|---|---|
| No required-argument changes detected. | ||
Output-schema drift
| Tool | Previous properties | Latest properties |
|---|---|---|
| No output-schema drift detected. | ||
Connector replay
Required-argument replay breaks
| Tool | Added required args | Removed required args |
|---|---|---|
| No required-argument replay breaks detected. | ||
Output-schema replay breaks
| Tool | Removed properties | Added properties |
|---|---|---|
| No output-schema replay breaks detected. | ||
Transport compliance drilldown
Issues: missing_session_id, missing_protocol_header, bad_protocol_not_rejected
Request association
Utility coverage
Benchmark tasks
| Benchmark task | Status | Evidence |
|---|---|---|
| Discover tools | Passes |
|
| Read-only fetch flow | Degraded |
|
| OAuth-required connect | Degraded |
|
| Safe write flow with confirmation | Likely to fail |
|
Registry & provenance divergence
| Field | Registry | Live server card |
|---|---|---|
| Title | n/a | n/a |
| Version | n/a | n/a |
| Homepage | n/a | n/a |
Active alerts
No active alerts for the current server state.
Aliases & registry graph
| Identifier | Source | Canonical | Score |
|---|---|---|---|
ai.compeller/compel |
official_registry | yes | 73.21 |
Alias consolidation
Source disagreements
| Field | What differs | Observed values |
|---|---|---|
| No source disagreements detected. | ||
Install snippets
Connector URL: https://compeller.ai/api/mcp # No OAuth metadata detected. # Server: ai.compeller/compel
{
"mcpServers": {
"compel": {
"command": "npx",
"args": ["mcp-remote", "https://compeller.ai/api/mcp"]
}
}
}
smithery mcp add "https://compeller.ai/api/mcp"
curl -sS https://compeller.ai/api/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"mcp-verify","version":"0.1.0"}}}'
Agent access & tool surface
tools/list, prompts/list, and resources/list checks.ai.compeller/compel.Claims & monitoring
No verified maintainer claim recorded.
Alert routing
| Watch | Team | Channels | Minimum severity |
|---|---|---|---|
| No active watch destinations. | |||
Maintainer analytics
Maintainer response quality
Maintainer annotations
No maintainer annotations have been recorded yet.
Maintainer rebuttals & expected behavior
No maintainer rebuttals or expected-behavior overrides are recorded yet.
Latest validation evidence
Failures
oauth_authorization_serverno authorization serveroauth_protected_resourceClient error '404 Not Found' for url 'https://compeller.ai/.well-known/oauth-protected-resource' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404openid_configurationno authorization serverserver_cardClient error '404 Not Found' for url 'https://compeller.ai/.well-known/mcp/server-card.json' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404transport_compliance_probeIssues: missing session id, missing protocol header, bad protocol not rejected (bad protocol=200).
Checks
| Check | Status | Latency | Evidence |
|---|---|---|---|
action_safety_probe |
Error | n/a | 7 high-risk, 1 destructive, 3 exec-capable tool(s); no clear auth boundary; safeguards=4; confirmation=search music, create compel from music, test webhook delivery. |
advanced_capabilities_probe |
Warning | n/a | Only 2 capability signal(s): prompts, resources. |
connector_publishability_probe |
Warning | n/a | Publishability blockers: transport compliance, action safety, server card. |
connector_replay_probe |
OK | n/a | Backward compatible with no breaking tool-surface changes. |
determinism_probe |
OK | 104.1 ms | Check completed |
initialize |
OK | 253.3 ms | Protocol 2024-11-05 |
interactive_flow_probe |
OK | n/a | Check completed |
oauth_authorization_server |
Missing | n/a | no authorization server |
oauth_protected_resource |
Error | 212.1 ms | Client error '404 Not Found' for url 'https://compeller.ai/.well-known/oauth-protected-resource' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404 |
official_registry_probe |
OK | n/a | Check completed |
openid_configuration |
Missing | n/a | no authorization server |
probe_noise_resilience |
OK | 77.4 ms | Fetched https://compeller.ai/robots.txt |
prompt_get |
Missing | n/a | not advertised |
prompts_list |
OK | 77.0 ms | 0 prompt(s) exposed |
protocol_version_probe |
Warning | n/a | Claims 2024-11-05; 3 release(s) behind 2025-11-25. |
provenance_divergence_probe |
OK | n/a | Check completed |
request_association_probe |
Missing | n/a | No request-association capabilities were advertised. |
resource_read |
Missing | n/a | not advertised |
resources_list |
OK | 83.3 ms | 0 resource item(s) exposed |
server_card |
Error | 247.2 ms | Client error '404 Not Found' for url 'https://compeller.ai/.well-known/mcp/server-card.json' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404 |
session_resume_probe |
Warning | n/a | no session id |
step_up_auth_probe |
Missing | n/a | No OAuth or incremental-scope signals detected. |
tool_snapshot_probe |
OK | n/a | Check completed |
tools_list |
OK | 78.1 ms | 20 tool(s) exposed |
transport_compliance_probe |
Error | 93.0 ms | Issues: missing session id, missing protocol header, bad protocol not rejected (bad protocol=200). |
utility_coverage_probe |
Missing | 80.2 ms | No completions evidence; no pagination evidence; tasks missing. |
Raw evidence view
Show raw JSON evidence
{
"checks": {
"action_safety_probe": {
"details": {
"auth_present": false,
"confirmation_signals": [
"search_music",
"create_compel_from_music",
"test_webhook_delivery"
],
"safeguard_count": 4,
"summary": {
"bulk_access_tools": 4,
"capability_distribution": {
"admin": 2,
"delete": 1,
"exec": 3,
"export": 4,
"filesystem": 5,
"network": 10,
"read": 18,
"secrets": 5,
"write": 8
},
"destructive_tools": 1,
"egress_tools": 7,
"exec_tools": 3,
"high_risk_tools": 7,
"risk_distribution": {
"critical": 0,
"high": 7,
"low": 6,
"medium": 7
},
"secret_tools": 5,
"tool_count": 20
}
},
"latency_ms": null,
"status": "error"
},
"advanced_capabilities_probe": {
"details": {
"capabilities": {
"completions": false,
"elicitation": false,
"prompts": true,
"resource_links": false,
"resources": true,
"roots": false,
"sampling": false,
"structured_outputs": false
},
"enabled": [
"prompts",
"resources"
],
"enabled_count": 2,
"initialize_capability_keys": [
"tools"
]
},
"latency_ms": null,
"status": "warning"
},
"connector_publishability_probe": {
"details": {
"blockers": [
"transport_compliance",
"action_safety",
"server_card"
],
"criteria": {
"action_safety": false,
"auth_flow": true,
"connector_replay": true,
"initialize": true,
"protocol_version": true,
"remote_transport": true,
"request_association": true,
"server_card": false,
"session_resume": true,
"step_up_auth": true,
"tool_surface": true,
"tools_list": true,
"transport_compliance": false
},
"high_risk_tools": 7,
"tool_count": 20,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"connector_replay_probe": {
"details": {
"added_tools": [],
"additive_output_changes": [],
"backward_compatible": true,
"output_breaks": [],
"removed_tools": [],
"required_arg_breaks": [],
"would_break_after_refresh": false
},
"latency_ms": null,
"status": "ok"
},
"determinism_probe": {
"details": {
"attempts": 2,
"baseline_signature": "787730a19d131818600beabdfd1f87fa9d63666f0849cfb42c1333b959c5aa01",
"errors": [],
"matches": 2,
"stable_ratio": 1.0,
"successful": 2
},
"latency_ms": 104.09,
"status": "ok"
},
"initialize": {
"details": {
"headers": {
"content-type": "application/json;charset=UTF-8"
},
"http_status": 200,
"payload": {
"id": 1,
"jsonrpc": "2.0",
"result": {
"capabilities": {
"tools": {
"listChanged": false
}
},
"protocolVersion": "2024-11-05",
"serverInfo": {
"name": "compeller-mcp",
"version": "0.5.0"
}
}
},
"url": "https://compeller.ai/api/mcp"
},
"latency_ms": 253.27,
"status": "ok"
},
"interactive_flow_probe": {
"details": {
"oauth_supported": false,
"prompt_available": false,
"risk_hits": [],
"safe_hits": [
"login",
"browser"
]
},
"latency_ms": null,
"status": "ok"
},
"oauth_authorization_server": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"oauth_protected_resource": {
"details": {
"error": "Client error '404 Not Found' for url 'https://compeller.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://compeller.ai/.well-known/oauth-protected-resource"
},
"latency_ms": 212.05,
"status": "error"
},
"official_registry_probe": {
"details": {
"direct_match": true,
"official_peer_count": 1,
"registry_identifier": "ai.compeller/compel",
"registry_source": "official_registry"
},
"latency_ms": null,
"status": "ok"
},
"openid_configuration": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"probe_noise_resilience": {
"details": {
"headers": {
"content-type": "text/plain;charset=UTF-8"
},
"http_status": 200,
"url": "https://compeller.ai/robots.txt"
},
"latency_ms": 77.36,
"status": "ok"
},
"prompt_get": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"prompts_list": {
"details": {
"headers": {
"content-type": "application/json;charset=UTF-8"
},
"http_status": 200,
"payload": {
"id": 3,
"jsonrpc": "2.0",
"result": {
"prompts": []
}
},
"url": "https://compeller.ai/api/mcp"
},
"latency_ms": 77.04,
"status": "ok"
},
"protocol_version_probe": {
"details": {
"claimed_version": "2024-11-05",
"lag_days": 385,
"latest_known_version": "2025-11-25",
"releases_behind": 3,
"validator_protocol_version": "2025-03-26"
},
"latency_ms": null,
"status": "warning"
},
"provenance_divergence_probe": {
"details": {
"direct_official_match": true,
"drift_fields": [],
"metadata_document_count": 1,
"registry_homepage": null,
"registry_repository": null,
"registry_title": null,
"registry_version": null,
"server_card_homepage": null,
"server_card_repository": null,
"server_card_title": null,
"server_card_version": null
},
"latency_ms": null,
"status": "ok"
},
"request_association_probe": {
"details": {
"reason": "no_request_association_capabilities_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resource_read": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resources_list": {
"details": {
"headers": {
"content-type": "application/json;charset=UTF-8"
},
"http_status": 200,
"payload": {
"id": 5,
"jsonrpc": "2.0",
"result": {
"resources": []
}
},
"url": "https://compeller.ai/api/mcp"
},
"latency_ms": 83.33,
"status": "ok"
},
"server_card": {
"details": {
"error": "Client error '404 Not Found' for url 'https://compeller.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://compeller.ai/.well-known/mcp/server-card.json"
},
"latency_ms": 247.18,
"status": "error"
},
"session_resume_probe": {
"details": {
"protocol_version": "2024-11-05",
"reason": "no_session_id",
"resume_expected": true,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"step_up_auth_probe": {
"details": {
"auth_required_checks": [],
"broad_scopes": [],
"challenge_headers": [],
"minimal_scope_documented": false,
"oauth_present": false,
"scope_specificity_ratio": 0.0,
"step_up_signals": [],
"supported_scopes": []
},
"latency_ms": null,
"status": "missing"
},
"tool_snapshot_probe": {
"details": {
"added": [],
"changed_outputs": [],
"current_tool_count": 20,
"previous_tool_count": 20,
"removed": [],
"similarity": 1.0
},
"latency_ms": null,
"status": "ok"
},
"tools_list": {
"details": {
"headers": {
"content-type": "application/json;charset=UTF-8"
},
"http_status": 200,
"payload": {
"id": 2,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"readOnlyHint": true,
"title": "Get Compeller capabilities"
},
"description": "Get Compeller platform capabilities, supported features, and API version.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "get_capabilities"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Get Compeller pricing"
},
"description": "Get current Compeller subscription plans and pricing.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "get_pricing"
},
{
"annotations": {
"readOnlyHint": true,
"title": "List visual styles"
},
"description": "List available visual styles for Compeller video generation.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "list_styles"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Get media upload instructions"
},
"description": "Get upload instructions for media files (audio, images, video). Returns the upload URL and required headers. Requires API token authentication.",
"inputSchema": {
"properties": {
"mime_type": {
"description": "MIME type of the file",
"type": "string"
},
"name": {
"description": "Filename for the upload",
"type": "string"
},
"type": {
"description": "Media type: audio, image, video, or text",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "upload_media"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Search music previews"
},
"description": "Search Deezer preview tracks by song, artist, or album. Use this when the user provides a song string but no MP3/WAV/FLAC file.",
"inputSchema": {
"properties": {
"limit": {
"description": "Max results to return (default 10, max 20)",
"type": "integer"
},
"query": {
"description": "Song, artist, or album search query",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_music"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Create Compel from music search"
},
"description": "Create a compel from a selected Deezer preview track. If the user provides an audio file instead, upload that file and use create_compel.",
"inputSchema": {
"properties": {
"artist_context": {
"description": "Additional creative context",
"type": "string"
},
"aspect_ratio": {
"description": "Explicit aspect ratio override",
"type": "string"
},
"style": {
"description": "Visual style: cinematic, performance, or abstract",
"type": "string"
},
"target_platform": {
"description": "Target platform for aspect ratio",
"type": "string"
},
"title": {
"description": "Optional compel title override",
"type": "string"
},
"track_id": {
"description": "Deezer track id returned by search_music",
"type": "integer"
}
},
"required": [
"track_id"
],
"type": "object"
},
"name": "create_compel_from_music"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Create Compel from uploaded audio"
},
"description": "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.",
"inputSchema": {
"properties": {
"artist_context": {
"description": "Additional creative context about the artist or song",
"type": "string"
},
"aspect_ratio": {
"description": "Explicit aspect ratio override: 16:9, 9:16, or 1:1",
"type": "string"
},
"primary_media_id": {
"description": "ID of the uploaded audio media to use as the primary track",
"type": "integer"
},
"style": {
"description": "Visual style: cinematic, performance, or abstract",
"type": "string"
},
"target_platform": {
"description": "Target platform for aspect ratio: tiktok, reels, shorts, instagram, youtube",
"type": "string"
},
"title": {
"description": "Title for the compel",
"type": "string"
}
},
"required": [
"title",
"primary_media_id"
],
"type": "object"
},
"name": "create_compel"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Get Compel status"
},
"description": "Get the current status, progress, and details of a Compeller generation job.",
"inputSchema": {
"properties": {
"compel_id": {
"description": "The compel ID to check",
"type": "integer"
}
},
"required": [
"compel_id"
],
"type": "object"
},
"name": "get_compel"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Start Compel render"
},
"description": "Start rendering a READY compel with default configuration so an agent can continue to final MP4 without opening the browser UI.",
"inputSchema": {
"properties": {
"compel_id": {
"description": "The READY compel ID to render",
"type": "integer"
}
},
"required": [
"compel_id"
],
"type": "object"
},
"name": "start_render"
},
{
"annotations": {
"readOnlyHint": true,
"title": "List Compels"
},
"description": "List all Compeller generation jobs for the authenticated account, newest first.",
"inputSchema": {
"properties": {
"limit": {
"description": "Max results to return (default 20, max 100)",
"type": "integer"
},
"offset": {
"description": "Pagination offset",
"type": "integer"
}
},
"required": [],
"type": "object"
},
"name": "list_compels"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Search Compels"
},
"description": "Search Compeller generation jobs by title for the authenticated account.",
"inputSchema": {
"properties": {
"limit": {
"description": "Max results to return (default 20)",
"type": "integer"
},
"query": {
"description": "Search query to match against compel titles",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_compels"
},
{
"annotations": {
"readOnlyHint": true,
"title": "List Compel renderings"
},
"description": "List all video renderings for a specific compel.",
"inputSchema": {
"properties": {
"compel_id": {
"description": "The compel ID to list renderings for",
"type": "integer"
}
},
"required": [
"compel_id"
],
"type": "object"
},
"name": "list_renderings"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Get rendering details"
},
"description": "Get details of a specific video rendering.",
"inputSchema": {
"properties": {
"rendering_id": {
"description": "The rendering ID to retrieve",
"type": "integer"
}
},
"required": [
"rendering_id"
],
"type": "object"
},
"name": "get_rendering"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Search uploaded media"
},
"description": "Search and list uploaded media files for the authenticated account.",
"inputSchema": {
"properties": {
"limit": {
"description": "Max results to return (default 20, max 100)",
"type": "integer"
},
"offset": {
"description": "Pagination offset",
"type": "integer"
},
"type": {
"description": "Filter by media type: audio, image, video, or text",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_media"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Register webhook"
},
"description": "Register an HTTPS endpoint to receive signed push notifications for compel terminal events (compel.completed, compel.failed). Returns webhook_id and the HMAC-SHA256 signing secret exactly once \u2014 store the secret immediately, it is never returned again. Deliveries are signed via X-Compeller-Signature: sha256=<hex> over the raw body.",
"inputSchema": {
"properties": {
"events": {
"description": "Event types to subscribe to. Omit or pass [\"*\"] for all. Known types: compel.completed, compel.failed.",
"items": {
"enum": [
"*",
"compel.completed",
"compel.failed"
],
"type": "string"
},
"type": "array"
},
"url": {
"description": "HTTPS URL to deliver events to (max 2048 chars)",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "register_webhook"
},
{
"annotations": {
"readOnlyHint": true,
"title": "List webhooks"
},
"description": "List all webhook endpoints registered for the authenticated account. Secrets are never returned by this tool.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "list_webhooks"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Delete webhook"
},
"description": "Delete a webhook endpoint by id. Removes the registration and stops future deliveries.",
"inputSchema": {
"properties": {
"webhook_id": {
"description": "The webhook id returned by register_webhook or list_webhooks",
"type": "integer"
}
},
"required": [
"webhook_id"
],
"type": "object"
},
"name": "delete_webhook"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Test webhook delivery"
},
"description": "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 \u2014 test delivery is always on-demand. Use this to verify your integration before relying on compel.completed / compel.failed events.",
"inputSchema": {
"properties": {
"webhook_id": {
"description": "The webhook id to test. Must belong to the authenticated account.",
"type": "integer"
}
},
"required": [
"webhook_id"
],
"type": "object"
},
"name": "test_webhook_delivery"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Update webhook"
},
"description": "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, \u2264 2048 chars, URL safety blocklist). Returns the updated endpoint (secret is never returned by this tool \u2014 use rotate_webhook_secret for that).",
"inputSchema": {
"properties": {
"active": {
"description": "Toggle delivery on/off without losing the registration",
"type": "boolean"
},
"events": {
"description": "Replacement event types. Omit to leave unchanged. [\"*\"] or an empty filtered list resets to wildcard.",
"items": {
"enum": [
"*",
"compel.completed",
"compel.failed"
],
"type": "string"
},
"type": "array"
},
"url": {
"description": "New HTTPS URL (max 2048 chars)",
"type": "string"
},
"webhook_id": {
"description": "The webhook id to update",
"type": "integer"
}
},
"required": [
"webhook_id"
],
"type": "object"
},
"name": "update_webhook"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Rotate webhook secret"
},
"description": "Mint a new HMAC-SHA256 signing secret for a registered webhook endpoint. The previous secret is invalidated immediately \u2014 integrators must update their receiver before the next compel terminal event fires. Returns the new secret exactly once; store it on receipt.",
"inputSchema": {
"properties": {
"webhook_id": {
"description": "The webhook id to rotate the secret on",
"type": "integer"
}
},
"required": [
"webhook_id"
],
"type": "object"
},
"name": "rotate_webhook_secret"
}
]
}
},
"url": "https://compeller.ai/api/mcp"
},
"latency_ms": 78.06,
"status": "ok"
},
"transport_compliance_probe": {
"details": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json;charset=UTF-8"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"readOnlyHint": true,
"title": "Get Compeller capabilities"
},
"description": "Get Compeller platform capabilities, supported features, and API version.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "get_capabilities"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Get Compeller pricing"
},
"description": "Get current Compeller subscription plans and pricing.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "get_pricing"
},
{
"annotations": {
"readOnlyHint": true,
"title": "List visual styles"
},
"description": "List available visual styles for Compeller video generation.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "list_styles"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Get media upload instructions"
},
"description": "Get upload instructions for media files (audio, images, video). Returns the upload URL and required headers. Requires API token authentication.",
"inputSchema": {
"properties": {
"mime_type": {
"description": "MIME type of the file",
"type": "string"
},
"name": {
"description": "Filename for the upload",
"type": "string"
},
"type": {
"description": "Media type: audio, image, video, or text",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "upload_media"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Search music previews"
},
"description": "Search Deezer preview tracks by song, artist, or album. Use this when the user provides a song string but no MP3/WAV/FLAC file.",
"inputSchema": {
"properties": {
"limit": {
"description": "Max results to return (default 10, max 20)",
"type": "integer"
},
"query": {
"description": "Song, artist, or album search query",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_music"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Create Compel from music search"
},
"description": "Create a compel from a selected Deezer preview track. If the user provides an audio file instead, upload that file and use create_compel.",
"inputSchema": {
"properties": {
"artist_context": {
"description": "Additional creative context",
"type": "string"
},
"aspect_ratio": {
"description": "Explicit aspect ratio override",
"type": "string"
},
"style": {
"description": "Visual style: cinematic, performance, or abstract",
"type": "string"
},
"target_platform": {
"description": "Target platform for aspect ratio",
"type": "string"
},
"title": {
"description": "Optional compel title override",
"type": "string"
},
"track_id": {
"description": "Deezer track id returned by search_music",
"type": "integer"
}
},
"required": [
"track_id"
],
"type": "object"
},
"name": "create_compel_from_music"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Create Compel from uploaded audio"
},
"description": "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.",
"inputSchema": {
"properties": {
"artist_context": {
"description": "Additional creative context about the artist or song",
"type": "string"
},
"aspect_ratio": {
"description": "Explicit aspect ratio override: 16:9, 9:16, or 1:1",
"type": "string"
},
"primary_media_id": {
"description": "ID of the uploaded audio media to use as the primary track",
"type": "integer"
},
"style": {
"description": "Visual style: cinematic, performance, or abstract",
"type": "string"
},
"target_platform": {
"description": "Target platform for aspect ratio: tiktok, reels, shorts, instagram, youtube",
"type": "string"
},
"title": {
"description": "Title for the compel",
"type": "string"
}
},
"required": [
"title",
"primary_media_id"
],
"type": "object"
},
"name": "create_compel"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Get Compel status"
},
"description": "Get the current status, progress, and details of a Compeller generation job.",
"inputSchema": {
"properties": {
"compel_id": {
"description": "The compel ID to check",
"type": "integer"
}
},
"required": [
"compel_id"
],
"type": "object"
},
"name": "get_compel"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Start Compel render"
},
"description": "Start rendering a READY compel with default configuration so an agent can continue to final MP4 without opening the browser UI.",
"inputSchema": {
"properties": {
"compel_id": {
"description": "The READY compel ID to render",
"type": "integer"
}
},
"required": [
"compel_id"
],
"type": "object"
},
"name": "start_render"
},
{
"annotations": {
"readOnlyHint": true,
"title": "List Compels"
},
"description": "List all Compeller generation jobs for the authenticated account, newest first.",
"inputSchema": {
"properties": {
"limit": {
"description": "Max results to return (default 20, max 100)",
"type": "integer"
},
"offset": {
"description": "Pagination offset",
"type": "integer"
}
},
"required": [],
"type": "object"
},
"name": "list_compels"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Search Compels"
},
"description": "Search Compeller generation jobs by title for the authenticated account.",
"inputSchema": {
"properties": {
"limit": {
"description": "Max results to return (default 20)",
"type": "integer"
},
"query": {
"description": "Search query to match against compel titles",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_compels"
},
{
"annotations": {
"readOnlyHint": true,
"title": "List Compel renderings"
},
"description": "List all video renderings for a specific compel.",
"inputSchema": {
"properties": {
"compel_id": {
"description": "The compel ID to list renderings for",
"type": "integer"
}
},
"required": [
"compel_id"
],
"type": "object"
},
"name": "list_renderings"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Get rendering details"
},
"description": "Get details of a specific video rendering.",
"inputSchema": {
"properties": {
"rendering_id": {
"description": "The rendering ID to retrieve",
"type": "integer"
}
},
"required": [
"rendering_id"
],
"type": "object"
},
"name": "get_rendering"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Search uploaded media"
},
"description": "Search and list uploaded media files for the authenticated account.",
"inputSchema": {
"properties": {
"limit": {
"description": "Max results to return (default 20, max 100)",
"type": "integer"
},
"offset": {
"description": "Pagination offset",
"type": "integer"
},
"type": {
"description": "Filter by media type: audio, image, video, or text",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_media"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Register webhook"
},
"description": "Register an HTTPS endpoint to receive signed push notifications for compel terminal events (compel.completed, compel.failed). Returns webhook_id and the HMAC-SHA256 signing secret exactly once \u2014 store the secret immediately, it is never returned again. Deliveries are signed via X-Compeller-Signature: sha256=<hex> over the raw body.",
"inputSchema": {
"properties": {
"events": {
"description": "Event types to subscribe to. Omit or pass [\"*\"] for all. Known types: compel.completed, compel.failed.",
"items": {
"enum": [
"*",
"compel.completed",
"compel.failed"
],
"type": "string"
},
"type": "array"
},
"url": {
"description": "HTTPS URL to deliver events to (max 2048 chars)",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "register_webhook"
},
{
"annotations": {
"readOnlyHint": true,
"title": "List webhooks"
},
"description": "List all webhook endpoints registered for the authenticated account. Secrets are never returned by this tool.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "list_webhooks"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Delete webhook"
},
"description": "Delete a webhook endpoint by id. Removes the registration and stops future deliveries.",
"inputSchema": {
"properties": {
"webhook_id": {
"description": "The webhook id returned by register_webhook or list_webhooks",
"type": "integer"
}
},
"required": [
"webhook_id"
],
"type": "object"
},
"name": "delete_webhook"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Test webhook delivery"
},
"description": "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 \u2014 test delivery is always on-demand. Use this to verify your integration before relying on compel.completed / compel.failed events.",
"inputSchema": {
"properties": {
"webhook_id": {
"description": "The webhook id to test. Must belong to the authenticated account.",
"type": "integer"
}
},
"required": [
"webhook_id"
],
"type": "object"
},
"name": "test_webhook_delivery"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Update webhook"
},
"description": "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, \u2264 2048 chars, URL safety blocklist). Returns the updated endpoint (secret is never returned by this tool \u2014 use rotate_webhook_secret for that).",
"inputSchema": {
"properties": {
"active": {
"description": "Toggle delivery on/off without losing the registration",
"type": "boolean"
},
"events": {
"description": "Replacement event types. Omit to leave unchanged. [\"*\"] or an empty filtered list resets to wildcard.",
"items": {
"enum": [
"*",
"compel.completed",
"compel.failed"
],
"type": "string"
},
"type": "array"
},
"url": {
"description": "New HTTPS URL (max 2048 chars)",
"type": "string"
},
"webhook_id": {
"description": "The webhook id to update",
"type": "integer"
}
},
"required": [
"webhook_id"
],
"type": "object"
},
"name": "update_webhook"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Rotate webhook secret"
},
"description": "Mint a new HMAC-SHA256 signing secret for a registered webhook endpoint. The previous secret is invalidated immediately \u2014 integrators must update their receiver before the next compel terminal event fires. Returns the new secret exactly once; store it on receipt.",
"inputSchema": {
"properties": {
"webhook_id": {
"description": "The webhook id to rotate the secret on",
"type": "integer"
}
},
"required": [
"webhook_id"
],
"type": "object"
},
"name": "rotate_webhook_secret"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2024-11-05",
"session_id_present": false,
"transport": "streamable-http"
},
"latency_ms": 93.04,
"status": "error"
},
"utility_coverage_probe": {
"details": {
"completions": {
"advertised": false,
"live_probe": "not_executed",
"sample_target": null
},
"initialize_capability_keys": [
"tools"
],
"pagination": {
"metadata_signal": false,
"next_cursor_methods": [],
"supported": false
},
"tasks": {
"advertised": false,
"http_status": 200,
"probe_status": "missing"
}
},
"latency_ms": 80.17,
"status": "missing"
}
},
"failures": {
"oauth_authorization_server": {
"reason": "no_authorization_server"
},
"oauth_protected_resource": {
"error": "Client error '404 Not Found' for url 'https://compeller.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://compeller.ai/.well-known/oauth-protected-resource"
},
"openid_configuration": {
"reason": "no_authorization_server"
},
"server_card": {
"error": "Client error '404 Not Found' for url 'https://compeller.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://compeller.ai/.well-known/mcp/server-card.json"
},
"transport_compliance_probe": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json;charset=UTF-8"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"readOnlyHint": true,
"title": "Get Compeller capabilities"
},
"description": "Get Compeller platform capabilities, supported features, and API version.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "get_capabilities"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Get Compeller pricing"
},
"description": "Get current Compeller subscription plans and pricing.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "get_pricing"
},
{
"annotations": {
"readOnlyHint": true,
"title": "List visual styles"
},
"description": "List available visual styles for Compeller video generation.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "list_styles"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Get media upload instructions"
},
"description": "Get upload instructions for media files (audio, images, video). Returns the upload URL and required headers. Requires API token authentication.",
"inputSchema": {
"properties": {
"mime_type": {
"description": "MIME type of the file",
"type": "string"
},
"name": {
"description": "Filename for the upload",
"type": "string"
},
"type": {
"description": "Media type: audio, image, video, or text",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "upload_media"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Search music previews"
},
"description": "Search Deezer preview tracks by song, artist, or album. Use this when the user provides a song string but no MP3/WAV/FLAC file.",
"inputSchema": {
"properties": {
"limit": {
"description": "Max results to return (default 10, max 20)",
"type": "integer"
},
"query": {
"description": "Song, artist, or album search query",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_music"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Create Compel from music search"
},
"description": "Create a compel from a selected Deezer preview track. If the user provides an audio file instead, upload that file and use create_compel.",
"inputSchema": {
"properties": {
"artist_context": {
"description": "Additional creative context",
"type": "string"
},
"aspect_ratio": {
"description": "Explicit aspect ratio override",
"type": "string"
},
"style": {
"description": "Visual style: cinematic, performance, or abstract",
"type": "string"
},
"target_platform": {
"description": "Target platform for aspect ratio",
"type": "string"
},
"title": {
"description": "Optional compel title override",
"type": "string"
},
"track_id": {
"description": "Deezer track id returned by search_music",
"type": "integer"
}
},
"required": [
"track_id"
],
"type": "object"
},
"name": "create_compel_from_music"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Create Compel from uploaded audio"
},
"description": "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.",
"inputSchema": {
"properties": {
"artist_context": {
"description": "Additional creative context about the artist or song",
"type": "string"
},
"aspect_ratio": {
"description": "Explicit aspect ratio override: 16:9, 9:16, or 1:1",
"type": "string"
},
"primary_media_id": {
"description": "ID of the uploaded audio media to use as the primary track",
"type": "integer"
},
"style": {
"description": "Visual style: cinematic, performance, or abstract",
"type": "string"
},
"target_platform": {
"description": "Target platform for aspect ratio: tiktok, reels, shorts, instagram, youtube",
"type": "string"
},
"title": {
"description": "Title for the compel",
"type": "string"
}
},
"required": [
"title",
"primary_media_id"
],
"type": "object"
},
"name": "create_compel"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Get Compel status"
},
"description": "Get the current status, progress, and details of a Compeller generation job.",
"inputSchema": {
"properties": {
"compel_id": {
"description": "The compel ID to check",
"type": "integer"
}
},
"required": [
"compel_id"
],
"type": "object"
},
"name": "get_compel"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Start Compel render"
},
"description": "Start rendering a READY compel with default configuration so an agent can continue to final MP4 without opening the browser UI.",
"inputSchema": {
"properties": {
"compel_id": {
"description": "The READY compel ID to render",
"type": "integer"
}
},
"required": [
"compel_id"
],
"type": "object"
},
"name": "start_render"
},
{
"annotations": {
"readOnlyHint": true,
"title": "List Compels"
},
"description": "List all Compeller generation jobs for the authenticated account, newest first.",
"inputSchema": {
"properties": {
"limit": {
"description": "Max results to return (default 20, max 100)",
"type": "integer"
},
"offset": {
"description": "Pagination offset",
"type": "integer"
}
},
"required": [],
"type": "object"
},
"name": "list_compels"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Search Compels"
},
"description": "Search Compeller generation jobs by title for the authenticated account.",
"inputSchema": {
"properties": {
"limit": {
"description": "Max results to return (default 20)",
"type": "integer"
},
"query": {
"description": "Search query to match against compel titles",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_compels"
},
{
"annotations": {
"readOnlyHint": true,
"title": "List Compel renderings"
},
"description": "List all video renderings for a specific compel.",
"inputSchema": {
"properties": {
"compel_id": {
"description": "The compel ID to list renderings for",
"type": "integer"
}
},
"required": [
"compel_id"
],
"type": "object"
},
"name": "list_renderings"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Get rendering details"
},
"description": "Get details of a specific video rendering.",
"inputSchema": {
"properties": {
"rendering_id": {
"description": "The rendering ID to retrieve",
"type": "integer"
}
},
"required": [
"rendering_id"
],
"type": "object"
},
"name": "get_rendering"
},
{
"annotations": {
"readOnlyHint": true,
"title": "Search uploaded media"
},
"description": "Search and list uploaded media files for the authenticated account.",
"inputSchema": {
"properties": {
"limit": {
"description": "Max results to return (default 20, max 100)",
"type": "integer"
},
"offset": {
"description": "Pagination offset",
"type": "integer"
},
"type": {
"description": "Filter by media type: audio, image, video, or text",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_media"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Register webhook"
},
"description": "Register an HTTPS endpoint to receive signed push notifications for compel terminal events (compel.completed, compel.failed). Returns webhook_id and the HMAC-SHA256 signing secret exactly once \u2014 store the secret immediately, it is never returned again. Deliveries are signed via X-Compeller-Signature: sha256=<hex> over the raw body.",
"inputSchema": {
"properties": {
"events": {
"description": "Event types to subscribe to. Omit or pass [\"*\"] for all. Known types: compel.completed, compel.failed.",
"items": {
"enum": [
"*",
"compel.completed",
"compel.failed"
],
"type": "string"
},
"type": "array"
},
"url": {
"description": "HTTPS URL to deliver events to (max 2048 chars)",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "register_webhook"
},
{
"annotations": {
"readOnlyHint": true,
"title": "List webhooks"
},
"description": "List all webhook endpoints registered for the authenticated account. Secrets are never returned by this tool.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "list_webhooks"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Delete webhook"
},
"description": "Delete a webhook endpoint by id. Removes the registration and stops future deliveries.",
"inputSchema": {
"properties": {
"webhook_id": {
"description": "The webhook id returned by register_webhook or list_webhooks",
"type": "integer"
}
},
"required": [
"webhook_id"
],
"type": "object"
},
"name": "delete_webhook"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Test webhook delivery"
},
"description": "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 \u2014 test delivery is always on-demand. Use this to verify your integration before relying on compel.completed / compel.failed events.",
"inputSchema": {
"properties": {
"webhook_id": {
"description": "The webhook id to test. Must belong to the authenticated account.",
"type": "integer"
}
},
"required": [
"webhook_id"
],
"type": "object"
},
"name": "test_webhook_delivery"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Update webhook"
},
"description": "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, \u2264 2048 chars, URL safety blocklist). Returns the updated endpoint (secret is never returned by this tool \u2014 use rotate_webhook_secret for that).",
"inputSchema": {
"properties": {
"active": {
"description": "Toggle delivery on/off without losing the registration",
"type": "boolean"
},
"events": {
"description": "Replacement event types. Omit to leave unchanged. [\"*\"] or an empty filtered list resets to wildcard.",
"items": {
"enum": [
"*",
"compel.completed",
"compel.failed"
],
"type": "string"
},
"type": "array"
},
"url": {
"description": "New HTTPS URL (max 2048 chars)",
"type": "string"
},
"webhook_id": {
"description": "The webhook id to update",
"type": "integer"
}
},
"required": [
"webhook_id"
],
"type": "object"
},
"name": "update_webhook"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Rotate webhook secret"
},
"description": "Mint a new HMAC-SHA256 signing secret for a registered webhook endpoint. The previous secret is invalidated immediately \u2014 integrators must update their receiver before the next compel terminal event fires. Returns the new secret exactly once; store it on receipt.",
"inputSchema": {
"properties": {
"webhook_id": {
"description": "The webhook id to rotate the secret on",
"type": "integer"
}
},
"required": [
"webhook_id"
],
"type": "object"
},
"name": "rotate_webhook_secret"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2024-11-05",
"session_id_present": false,
"transport": "streamable-http"
}
},
"remote_url": "https://compeller.ai/api/mcp",
"server_card_payload": null,
"server_identifier": "ai.compeller/compel"
}
Known versions
0.5.1
Validation history
| Timestamp | Status | Score | Latency | Tools |
|---|---|---|---|---|
| May 13, 2026 02:13:17 PM UTC | Healthy | 73.2 | 1432.4 ms | 20 |
| May 13, 2026 02:12:42 AM UTC | Healthy | 73.6 | 1501.2 ms | 20 |
| May 12, 2026 02:06:37 PM UTC | Healthy | 73.2 | 1372.8 ms | 20 |
| May 12, 2026 02:06:19 AM UTC | Healthy | 70.0 | 1580.3 ms | 20 |
Validation timeline
| Validated | Summary | Score | Protocol | Auth mode | Tools | High-risk tools | Changes |
|---|---|---|---|---|---|---|---|
| May 13, 2026 02:13:17 PM UTC | Healthy | 73.2 | 2024-11-05 | public | 20 | 7 | none |
| May 13, 2026 02:12:42 AM UTC | Healthy | 73.6 | 2024-11-05 | public | 20 | 7 | none |
| May 12, 2026 02:06:37 PM UTC | Healthy | 73.2 | 2024-11-05 | public | 20 | 7 | none |
| May 12, 2026 02:06:19 AM UTC | Healthy | 70.0 | 2024-11-05 | public | 20 | 7 | none |
Recent validation runs
| Started | Status | Summary | Latency | Checks |
|---|---|---|---|---|
| May 13, 2026 02:13:15 PM UTC | Completed | Healthy | 1432.4 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| May 13, 2026 02:12:40 AM UTC | Completed | Healthy | 1501.2 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| May 12, 2026 02:06:36 PM UTC | Completed | Healthy | 1372.8 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| May 12, 2026 02:06:17 AM UTC | Completed | Healthy | 1580.3 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |