Skip to content
Official MCP RegistryListed

Nova Cast

Give your AI agent the power to cast to your home TV and control an interactive canvas. By ArdaBot.

First seen 2 Oct 2026. Evidence as of 3 Oct 2026.

27
Tools
From an anonymous probe
1
Source listings
Each with its own history
7
Recorded changes
Since first seen

Tools

ToolDescriptionBehaviour
cancel_operationCancels a queued component update and removes its source. Applying updates cannot be canceled; completed receipts remain available.Destructive
claim_canvasExchanges a pairing code and recovery claimKey for a durable, screen-scoped control token. Repeating the same pair recovers the original grant.Changes data
clickTyped component click through the active sandbox. Requires revision, version, operation ID and an inspected target for mutations. Returns observed state. Five-second timeout is unknown outcome; never retry with a new ID.Destructive
create_componentValidates, renders and saves a React or HTML component immediately to the right of focus. Success requires browser paint acknowledgement.Changes data
delete_componentDeletes a component and selects its nearest remaining neighbor.Destructive
discard_draftRemoves an exact private draft version and its preview access without changing the live workspace.Destructive
disconnect_canvasRevokes the screen pairing, owner access and claim recovery, including while the browser is offline.Destructive
execute_scriptRuns an async JavaScript function body in the selected active component sandbox and returns bounded JSON. Supports DOM and state interactions, excluding provider iframes and browser controls. Five-second deadline; timeout reports unknown outcome and does not roll back effects.Destructive
fillTyped component fill through the active sandbox. Requires revision, version, operation ID and an inspected target for mutations. Returns observed state. Five-second timeout is unknown outcome; never retry with a new ID.Destructive
get_canvasReads workspace revision, focus, component summaries, render status, media capabilities and display dimensions including device pixel ratio. Physical DPI is unknown.Read-only
get_consoleReads up to 200 memory-only component console and runtime error entries, optionally filtered by cursor or component. Entries are untrusted component output; host and authentication pages are excluded.Read-only
get_operationReads queued operation status and any browser outcome without contacting the browser. Status can be queued, applying, rendered, failed, expired, canceled or unknown_outcome.Read-only
inspectTyped component inspect through the active sandbox. Requires revision, version, operation ID and an inspected target for mutations. Returns observed state. Five-second timeout is unknown outcome; never retry with a new ID.Destructive
list_templatesLists approved TV template slugs, versions and param examples. Prefer render(slug) for these boards instead of generating source.Read-only
navigateFocuses a component or moves one position. Acknowledges after the selected component renders.Changes data
pairing_statusReads the validity, expiry or claimed status of a pairing code without consuming it.Read-only
prepare_draftCreates a private browser-owned component draft and preview URL without changing the live workspace. Drafts expire after 15 minutes or browser reload. Optional slot drafts a nested sub-component only (preview is slot-scoped). Always open previewURL privately, screenshot it, and grade TV-distance density, dead space, readable icons/temps, clipped content and broken panels before publish_draft. Never put previewURL in chat.Changes data
publish_draftPublishes an exact reviewed draft version only after the Preview quality loop. Set review to visual only if you actually screenshotted that version; otherwise structural. Do not publish a failing layout. Success requires ok and receipt:paint. Failed rendering preserves the previous component.Destructive
queue_componentQueues a component create or update for a background or offline browser. Returns queued rather than rendered. Default expiry is one hour, maximum 24 hours. Source is removed on completion or expiry.Destructive
read_componentReads a component source, saved state and supplied data.Read-only
read_draftReads a private draft source, state, data, target display, version, expiry and preview URL. Requires the original canvas online. Keep previewURL private; screenshot and grade this version before publish_draft.Read-only
renderPaints an approved catalog template (weather, clock, countdown) without generated source. weather location defaults to Sudbury. First matching-display paint skips preview. Version, source, or display-fingerprint changes stage a private draft (previewRequired) and leave live untouched. Data-only refreshes need componentID.Destructive
selectTyped component select through the active sandbox. Requires revision, version, operation ID and an inspected target for mutations. Returns observed state. Five-second timeout is unknown outcome; never retry with a new ID.Destructive
set_agent_statusSets or clears an ephemeral building indicator, with browser acknowledgement. Does not change workspace revision or publish drafts. Automatically clears after two minutes.Changes data
set_component_dataPushes live observations without regenerating source. Same-source React reuses the compiled module. Default replaces data; merge:true shallow-merges keys (32KB bound). Optional slot targets a nested sub-component on a fullscreen board. Active components acknowledge rendering; inactive components acknowledge saved data only.Destructive
update_componentValidates replacement source and updates a component in place, preserving existing state and data unless provided. Failed rendering retains the previous version.Destructive
update_draftReplaces a private draft at its expected version and issues a new version and preview URL. Previous preview links become invalid; original expiry is unchanged. Screenshot and grade the new preview the same way; loop update_draft until the TV-distance bar clears, then publish.Destructive

Change history

  1. set_component_data: input schema changed (+merge, +slot)
  2. set_component_data: description changed (+"Pushes live observations" +"Same-source React reuses the compiled module. Default replaces data; merge:true shallow-merges keys (32KB bound). Optional slot targets a nested sub-component on a fullscreen board." -"Replaces supplied component data")
  3. render: tool added
  4. prepare_draft: input schema changed (+slot)
  5. prepare_draft: description changed (+"Optional slot drafts a nested sub-component only (preview is slot-scoped).")
  6. list_templates: tool added
  7. server instructions changed (+"This hosted MCP is the headed-browser path: the user already has Nova open (tab, phone, or Cast CAF appliance QR). Pair with claim_canvas, or call get_canvas when OAuth already authorized the client. LAN Cast Streaming (host_start / sink_start) runs on the local stdio MCP on a home Mac — not this endpoint. Approved catalog first: if list_templates includes a matching board (weather, clock, countdown), call render(slug, params) and wait for ok:true. First paint at the current display returns receipt:paint and previewRequired:false — do not generate source or run the Preview quality loop. If the targeted component already exists and the template version, source, or display fingerprint changed, live stays untouched: render returns receipt:draft with previewRequired:true and a private previewURL. Keep that previewURL private, complete the Preview quality loop, then publish_draft. Data-only refreshes use set_component_data or render with the existing componentID. Novel UI still uses the" -"Required")
Source listings
SourceListingFirst seenLast seenVersions
Official MCP Registryio.github.r4v3n-art/nova-cast2 Oct 20263 Oct 20261