Nova Cast
Server Details
Give your AI agent the power to cast to your home TV and control an interactive canvas. By ArdaBot.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 28 tools
Most tools target distinct resources or actions, and descriptions clearly separate live components, private drafts, queued operations, and template rendering. Some overlap remains between create_component, queue_component, prepare_draft, publish_draft, render, and update_component, which could still cause workflow misselection.
Names are consistently snake_case and mostly follow verb_noun patterns such as create_component, read_draft, and publish_draft. Minor deviations are the bare interaction verbs click, fill, inspect, select, navigate, and render, plus pairing_status, but these remain readable and predictable.
At 28 tools, the surface is heavy for the domain and includes many lifecycle variants that could be consolidated or grouped. While the canvas workflow is complex, the count exceeds a well-scoped set and increases selection burden.
The surface covers pairing, canvas reading, component CRUD, draft prepare/read/update/screenshot/publish/discard, queued operations, interaction, scripting, console access, templates, rendering, and agent status. Minor gaps exist, such as no explicit operation listing or standalone component listing beyond get_canvas summaries, but core workflows are well covered.
Available Tools
28 toolscancel_operationCancel OperationADestructiveInspect
Cancels a queued component update and removes its source. Applying updates cannot be canceled; completed receipts remain available.
Inputs: operationID (required), controlToken (required).
claim_canvasClaim CanvasAInspect
Exchanges a pairing code and recovery claimKey for a durable, screen-scoped control token. Repeating the same pair recovers the original grant.
Inputs: code (required), claimKey.
clickClickADestructiveInspect
Typed 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.
Inputs: selector (required), targetID (required), componentID (required), operationID (required), +3 more.
create_componentCreate ComponentCInspect
Validates, renders and saves a React or HTML component immediately to the right of focus. Success requires browser paint acknowledgement.
Inputs: title (required), format (required), source (required), operationID (required), +4 more.
delete_componentDelete ComponentCDestructiveInspect
Deletes a component and selects its nearest remaining neighbor.
Inputs: componentID (required), operationID (required), controlToken (required), expectedRevision (required).
discard_draftDiscard DraftBDestructiveInspect
Removes an exact private draft version and its preview access without changing the live workspace.
Inputs: draftID (required), version (required), operationID (required), controlToken (required), +1 more.
disconnect_canvasDisconnect CanvasBDestructiveInspect
Revokes the screen pairing, owner access and claim recovery, including while the browser is offline.
Inputs: controlToken (required).
execute_scriptExecute ScriptADestructiveInspect
Runs 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.
Inputs: script (required), componentID (required), operationID (required), controlToken (required), +1 more.
fillFillBDestructiveInspect
Typed 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.
Inputs: value (required), selector (required), targetID (required), componentID (required), +4 more.
get_canvasGet CanvasBRead-onlyIdempotentInspect
Reads workspace revision, focus, component summaries, render status, media capabilities and display dimensions including device pixel ratio. Physical DPI is unknown.
Inputs: controlToken (required).
get_consoleGet ConsoleARead-onlyIdempotentInspect
Reads 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.
Inputs: controlToken (required), after, componentID.
get_operationGet OperationARead-onlyIdempotentInspect
Reads queued operation status and any browser outcome without contacting the browser. Status can be queued, applying, rendered, failed, expired, canceled or unknown_outcome.
Inputs: operationID (required), controlToken (required).
inspectInspectCRead-onlyInspect
Typed 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.
Inputs: selector (required), componentID (required), operationID (required), controlToken (required), +2 more.
list_templatesList TemplatesARead-onlyInspect
Lists approved TV template slugs, versions and param examples. Prefer render(slug) for these boards instead of generating source.
Inputs: no named parameters.
pairing_statusPairing StatusBRead-onlyInspect
Reads the validity, expiry or claimed status of a pairing code without consuming it.
Inputs: code (required), controlToken (required).
prepare_draftPrepare DraftAInspect
Creates 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). Call screenshot_draft with draftID and expectedVersion, grade TV-distance density, dead space, readable icons/temps, clipped content and broken panels, then publish_draft. Never put previewURL in chat.
Inputs: title (required), action (required), format (required), source (required), +7 more.
publish_draftPublish DraftADestructiveInspect
Publishes 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.
Inputs: review (required), draftID (required), version (required), operationID (required), +3 more.
queue_componentQueue ComponentBDestructiveInspect
Queues 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.
Inputs: title (required), action (required), format (required), source (required), +7 more.
read_componentRead ComponentCRead-onlyIdempotentInspect
Reads a component source, saved state and supplied data.
Inputs: componentID (required), controlToken (required).
read_draftRead DraftARead-onlyIdempotentInspect
Reads a private draft source, state, data, target display, version, expiry and preview URL. Requires the original canvas online. Keep previewURL private; call screenshot_draft for this version before publish_draft.
Inputs: draftID (required), controlToken (required).
renderRenderADestructiveInspect
Paints an approved catalog template (weather, clock, countdown, agenda, now-playing, headlines, scoreboard, transit, home-status) 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.
Inputs: slug (required), operationID (required), controlToken (required), expectedRevision (required), +3 more.
screenshot_draftScreenshot DraftARead-onlyInspect
Renders an exact private draft version as an MCP PNG for the Preview quality loop. Requires draftID and expectedVersion. Isolated layout only — not the live TV. A screenshot never publishes.
Inputs: draftID (required), controlToken (required), expectedVersion (required).
selectSelectBDestructiveInspect
Typed 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.
Inputs: value (required), selector (required), targetID (required), componentID (required), +4 more.
set_agent_statusSet Agent StatusBInspect
Sets or clears an ephemeral building indicator, with browser acknowledgement. Does not change workspace revision or publish drafts. Automatically clears after two minutes.
Inputs: status (required), operationID (required), controlToken (required), expectedRevision (required).
set_component_dataSet Component DataBDestructiveInspect
Pushes 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.
Inputs: data (required), componentID (required), operationID (required), controlToken (required), +3 more.
update_componentUpdate ComponentBDestructiveInspect
Validates replacement source and updates a component in place, preserving existing state and data unless provided. Failed rendering retains the previous version.
Inputs: title (required), format (required), source (required), componentID (required), +5 more.
update_draftUpdate DraftADestructiveInspect
Replaces a private draft at its expected version and issues a new version and preview URL. Previous preview links become invalid; original expiry is unchanged. Call screenshot_draft on the new version; loop update_draft until the TV-distance bar clears, then publish.
Inputs: title (required), format (required), source (required), draftID (required), +6 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
A giant shared wall where AI agents paint live: watch them draw and connect your own agent
Display delivery platform for AI agents. Push HTML, dashboards and live data to screens.
Online whiteboard your AI agent draws on: live shared canvases, solo or with your team.
Run your TRMNL ePaper (e-ink) displays from any AI agent: devices, playlists and new screens.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to collaboratively read, write, draw, and diagram on a shared real-time whiteboard canvas with live human edits.1MIT
- AlicenseNot gradedqualityDmaintenanceA shared whiteboard for you and your AI agent I wanted my AI agent and me to be able to point at the same thing. Any MCP-capable agent can read the canvas, draw on it, drop thought bubbles, animate elements, and react when you sketch something.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to draw on a self-hosted canvas by creating and editing frames, text, shapes, images, and SVGs with auto-layout, then inspecting, exporting, and sharing the results. Also supports live viewing of agent edits, pinned comments, screenshots, and revision history so people and agents can collaborate on boards.1,034 npm1MIT
- AlicenseNot gradedqualityBmaintenanceGives Claude Code agents tools to show live, themeable canvases in the browser and wait for your answers on them. You can tick items, approve changes or send forms that feed back to the agent, and start, resume or message agent sessions from the canvas.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.