Serveur MCP

Nova Cast

io.github.r4v3n-art/nova-cast
Design et création IoT et matériel Public et accessible MCP 2025-11-25

Ce que fait ce MCP

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.
Destructif Accès externe
Schéma d’entrée
{'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.
Accès externe
Schéma d’entrée
{'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.
Accès externe
Schéma d’entrée
{'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.
Destructif Accès externe
Schéma d’entrée
{'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.
Destructif Accès externe
Schéma d’entrée
{'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.
Destructif Accès externe
Schéma d’entrée
{'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.
Destructif Accès externe
Schéma d’entrée
{'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.
Lecture seule Accès externe
Schéma d’entrée
{'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.
Lecture seule Accès externe
Schéma d’entrée
{'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.
Lecture seule Accès externe
Schéma d’entrée
{'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.
Accès externe
Schéma d’entrée
{'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.
Lecture seule Accès externe
Schéma d’entrée
{'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.
Accès externe
Schéma d’entrée
{'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.
Destructif Accès externe
Schéma d’entrée
{'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.
Destructif Accès externe
Schéma d’entrée
{'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.
Lecture seule Accès externe
Schéma d’entrée
{'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.
Lecture seule Accès externe
Schéma d’entrée
{'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.
Accès externe
Schéma d’entrée
{'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.
Destructif Accès externe
Schéma d’entrée
{'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.
Destructif Accès externe
Schéma d’entrée
{'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.
Destructif Accès externe
Schéma d’entrée
{'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}
Ajouté
execute_script
2 October 2026 02:40
Ajouté
set_component_data
2 October 2026 02:40
Ajouté
navigate
2 October 2026 02:40
Ajouté
delete_component
2 October 2026 02:40
Ajouté
update_component
2 October 2026 02:40
Ajouté
create_component
2 October 2026 02:40
Ajouté
set_agent_status
2 October 2026 02:40
Ajouté
cancel_operation
2 October 2026 02:40
Ajouté
get_operation
2 October 2026 02:40
Ajouté
queue_component
2 October 2026 02:40
Ajouté
discard_draft
2 October 2026 02:40
Ajouté
publish_draft
2 October 2026 02:40
Ajouté
update_draft
2 October 2026 02:40
Ajouté
read_draft
2 October 2026 02:40
Ajouté
prepare_draft
2 October 2026 02:40
Ajouté
read_component
2 October 2026 02:40
Ajouté
get_console
2 October 2026 02:40
Ajouté
get_canvas
2 October 2026 02:40
Ajouté
disconnect_canvas
2 October 2026 02:40
Ajouté
pairing_status
2 October 2026 02:40
Ajouté
claim_canvas
2 October 2026 02:40