MCP-Server

Nova Cast

io.github.r4v3n-art/nova-cast
Design & Kreativ IoT & Hardware Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Pairs with and controls a home display canvas, including component creation, updates, rendering, navigation and sandboxed scripts.

cancel_operation
Cancel Operation
Cancels a queued component update and removes its source. Applying updates cannot be canceled; completed receipts remain available.
Destruktiv Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operationID', 'controlToken'], 'properties': {'operationID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}}, 'additionalProperties': False}
claim_canvas
Claim Canvas
Exchanges a pairing code and recovery claimKey for a durable, screen-scoped control token. Repeating the same pair recovers the original grant.
Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['code'], 'properties': {'code': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'claimKey': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]{43}$'}}, 'additionalProperties': False}
create_component
Create Component
Validates, renders and saves a React or HTML component immediately to the right of focus. Success requires browser paint acknowledgement.
Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operationID', 'expectedRevision', 'title', 'format', 'source', 'controlToken'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}, 'state': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}, 'title': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'format': {'enum': ['react', 'html'], 'type': 'string'}, 'source': {'type': 'string', 'maxLength': 240000, 'minLength': 1, 'description': 'React TSX or full HTML. Use a sized nova-video element: YouTube/Vimeo embed URLs play inline, other service URLs are unsupported; do not create launch buttons or placeholders; see /agent media guidance. Arbitrary nested frames stay blocked. Do not author clickable links or external-navigation buttons; keep interactions within the canvas and share external URLs in the agent conversation.'}, 'operationID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'definitions': {'__schema0': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}, {'type': 'array', 'items': {'$ref': '#/definitions/__schema0'}}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}]}}, 'additionalProperties': False}
delete_component
Delete Component
Deletes a component and selects its nearest remaining neighbor.
Destruktiv Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operationID', 'expectedRevision', 'componentID', 'controlToken'], 'properties': {'componentID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'operationID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
discard_draft
Discard Draft
Removes an exact private draft version and its preview access without changing the live workspace.
Destruktiv Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operationID', 'expectedRevision', 'draftID', 'version', 'controlToken'], 'properties': {'draftID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'version': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'operationID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
disconnect_canvas
Disconnect Canvas
Revokes the screen pairing, owner access and claim recovery, including while the browser is offline.
Destruktiv Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['controlToken'], 'properties': {'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}}, 'additionalProperties': False}
execute_script
Execute Script
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.
Destruktiv Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operationID', 'expectedRevision', 'componentID', 'script', 'controlToken'], 'properties': {'script': {'type': 'string', 'maxLength': 32000, 'minLength': 1}, 'componentID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'operationID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
get_canvas
Get Canvas
Reads workspace revision, focus, component summaries, render status, media capabilities and display dimensions including device pixel ratio. Physical DPI is unknown.
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['controlToken'], 'properties': {'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}}, 'additionalProperties': False}
get_console
Get Console
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.
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['controlToken'], 'properties': {'after': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'componentID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}}, 'additionalProperties': False}
get_operation
Get Operation
Reads queued operation status and any browser outcome without contacting the browser. Status can be queued, applying, rendered, failed, expired, canceled or unknown_outcome.
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operationID', 'controlToken'], 'properties': {'operationID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}}, 'additionalProperties': False}
navigate
Navigate
Focuses a component or moves one position. Acknowledges after the selected component renders.
Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operationID', 'expectedRevision', 'controlToken'], 'properties': {'direction': {'enum': ['next', 'previous'], 'type': 'string'}, 'componentID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'operationID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
pairing_status
Pairing Status
Reads the validity, expiry or claimed status of a pairing code without consuming it.
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['code'], 'properties': {'code': {'type': 'string', 'maxLength': 160, 'minLength': 1}}, 'additionalProperties': False}
prepare_draft
Prepare Draft
Creates a private browser-owned component draft and preview URL without changing the live workspace. Drafts expire after 15 minutes or browser reload.
Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operationID', 'expectedRevision', 'title', 'format', 'source', 'action', 'controlToken'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}, 'state': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}, 'title': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'action': {'enum': ['create', 'update'], 'type': 'string'}, 'format': {'enum': ['react', 'html'], 'type': 'string'}, 'source': {'type': 'string', 'maxLength': 240000, 'minLength': 1, 'description': 'React TSX or full HTML. Use a sized nova-video element: YouTube/Vimeo embed URLs play inline, other service URLs are unsupported; do not create launch buttons or placeholders; see /agent media guidance. Arbitrary nested frames stay blocked. Do not author clickable links or external-navigation buttons; keep interactions within the canvas and share external URLs in the agent conversation.'}, 'componentID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'operationID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'definitions': {'__schema0': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}, {'type': 'array', 'items': {'$ref': '#/definitions/__schema0'}}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}]}}, 'additionalProperties': False}
publish_draft
Publish Draft
Publishes an exact reviewed draft version after validating workspace revision and target dimensions. Success requires browser paint acknowledgement. Failed rendering preserves the previous component.
Destruktiv Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operationID', 'expectedRevision', 'draftID', 'version', 'review', 'controlToken'], 'properties': {'review': {'enum': ['visual', 'structural'], 'type': 'string'}, 'draftID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'version': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'operationID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
queue_component
Queue Component
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.
Destruktiv Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operationID', 'expectedRevision', 'title', 'format', 'source', 'action', 'controlToken'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}, 'state': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}, 'title': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'action': {'enum': ['create', 'update'], 'type': 'string'}, 'format': {'enum': ['react', 'html'], 'type': 'string'}, 'source': {'type': 'string', 'maxLength': 240000, 'minLength': 1, 'description': 'React TSX or full HTML. Use a sized nova-video element: YouTube/Vimeo embed URLs play inline, other service URLs are unsupported; do not create launch buttons or placeholders; see /agent media guidance. Arbitrary nested frames stay blocked. Do not author clickable links or external-navigation buttons; keep interactions within the canvas and share external URLs in the agent conversation.'}, 'componentID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'operationID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'expiresInSeconds': {'type': 'integer', 'default': 3600, 'maximum': 86400, 'minimum': 60}}, 'definitions': {'__schema0': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}, {'type': 'array', 'items': {'$ref': '#/definitions/__schema0'}}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}]}}, 'additionalProperties': False}
read_component
Read Component
Reads a component source, saved state and supplied data.
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['componentID', 'controlToken'], 'properties': {'componentID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}}, 'additionalProperties': False}
read_draft
Read Draft
Reads a private draft source, state, data, target display, version, expiry and preview URL. Requires the original canvas online.
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['draftID', 'controlToken'], 'properties': {'draftID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}}, 'additionalProperties': False}
set_agent_status
Set Agent Status
Sets or clears an ephemeral building indicator, with browser acknowledgement. Does not change workspace revision or publish drafts. Automatically clears after two minutes.
Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operationID', 'expectedRevision', 'status', 'controlToken'], 'properties': {'status': {'enum': ['working', 'finished'], 'type': 'string'}, 'operationID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
set_component_data
Set Component Data
Replaces supplied component data without regenerating source. Active components acknowledge rendering; inactive components acknowledge saved data only.
Destruktiv Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operationID', 'expectedRevision', 'componentID', 'data', 'controlToken'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}, 'componentID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'operationID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'definitions': {'__schema0': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}, {'type': 'array', 'items': {'$ref': '#/definitions/__schema0'}}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}]}}, 'additionalProperties': False}
update_component
Update Component
Validates replacement source and updates a component in place, preserving existing state and data unless provided. Failed rendering retains the previous version.
Destruktiv Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operationID', 'expectedRevision', 'componentID', 'title', 'format', 'source', 'controlToken'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}, 'state': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}, 'title': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'format': {'enum': ['react', 'html'], 'type': 'string'}, 'source': {'type': 'string', 'maxLength': 240000, 'minLength': 1, 'description': 'React TSX or full HTML. Use a sized nova-video element: YouTube/Vimeo embed URLs play inline, other service URLs are unsupported; do not create launch buttons or placeholders; see /agent media guidance. Arbitrary nested frames stay blocked. Do not author clickable links or external-navigation buttons; keep interactions within the canvas and share external URLs in the agent conversation.'}, 'componentID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'operationID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'definitions': {'__schema0': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}, {'type': 'array', 'items': {'$ref': '#/definitions/__schema0'}}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}]}}, 'additionalProperties': False}
update_draft
Update Draft
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.
Destruktiv Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operationID', 'expectedRevision', 'title', 'format', 'source', 'draftID', 'expectedVersion', 'controlToken'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}, 'state': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}, 'title': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'format': {'enum': ['react', 'html'], 'type': 'string'}, 'source': {'type': 'string', 'maxLength': 240000, 'minLength': 1, 'description': 'React TSX or full HTML. Use a sized nova-video element: YouTube/Vimeo embed URLs play inline, other service URLs are unsupported; do not create launch buttons or placeholders; see /agent media guidance. Arbitrary nested frames stay blocked. Do not author clickable links or external-navigation buttons; keep interactions within the canvas and share external URLs in the agent conversation.'}, 'draftID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'operationID': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'controlToken': {'type': 'string', 'maxLength': 200, 'minLength': 20}, 'expectedVersion': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'definitions': {'__schema0': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}, {'type': 'array', 'items': {'$ref': '#/definitions/__schema0'}}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}]}}, 'additionalProperties': False}
Hinzugefügt
execute_script
2. October 2026 02:40
Hinzugefügt
set_component_data
2. October 2026 02:40
Hinzugefügt
navigate
2. October 2026 02:40
Hinzugefügt
delete_component
2. October 2026 02:40
Hinzugefügt
update_component
2. October 2026 02:40
Hinzugefügt
create_component
2. October 2026 02:40
Hinzugefügt
set_agent_status
2. October 2026 02:40
Hinzugefügt
cancel_operation
2. October 2026 02:40
Hinzugefügt
get_operation
2. October 2026 02:40
Hinzugefügt
queue_component
2. October 2026 02:40
Hinzugefügt
discard_draft
2. October 2026 02:40
Hinzugefügt
publish_draft
2. October 2026 02:40
Hinzugefügt
update_draft
2. October 2026 02:40
Hinzugefügt
read_draft
2. October 2026 02:40
Hinzugefügt
prepare_draft
2. October 2026 02:40
Hinzugefügt
read_component
2. October 2026 02:40
Hinzugefügt
get_console
2. October 2026 02:40
Hinzugefügt
get_canvas
2. October 2026 02:40
Hinzugefügt
disconnect_canvas
2. October 2026 02:40
Hinzugefügt
pairing_status
2. October 2026 02:40
Hinzugefügt
claim_canvas
2. October 2026 02:40