MCP 서버

Nova Cast

io.github.r4v3n-art/nova-cast
디자인 및 크리에이티브 IoT 및 하드웨어 공개 · 연결 가능 MCP 2025-11-25

이 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.
파괴적 작업 외부 접근 가능
입력 스키마
{'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.
외부 접근 가능
입력 스키마
{'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.
외부 접근 가능
입력 스키마
{'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.
파괴적 작업 외부 접근 가능
입력 스키마
{'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.
파괴적 작업 외부 접근 가능
입력 스키마
{'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.
파괴적 작업 외부 접근 가능
입력 스키마
{'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.
파괴적 작업 외부 접근 가능
입력 스키마
{'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.
읽기 전용 외부 접근 가능
입력 스키마
{'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.
읽기 전용 외부 접근 가능
입력 스키마
{'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.
읽기 전용 외부 접근 가능
입력 스키마
{'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.
외부 접근 가능
입력 스키마
{'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.
읽기 전용 외부 접근 가능
입력 스키마
{'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.
외부 접근 가능
입력 스키마
{'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.
파괴적 작업 외부 접근 가능
입력 스키마
{'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.
파괴적 작업 외부 접근 가능
입력 스키마
{'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.
읽기 전용 외부 접근 가능
입력 스키마
{'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.
읽기 전용 외부 접근 가능
입력 스키마
{'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.
외부 접근 가능
입력 스키마
{'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.
파괴적 작업 외부 접근 가능
입력 스키마
{'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.
파괴적 작업 외부 접근 가능
입력 스키마
{'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.
파괴적 작업 외부 접근 가능
입력 스키마
{'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}
추가됨
execute_script
2026년 10월 2일 2:40 AM
추가됨
set_component_data
2026년 10월 2일 2:40 AM
추가됨
navigate
2026년 10월 2일 2:40 AM
추가됨
delete_component
2026년 10월 2일 2:40 AM
추가됨
update_component
2026년 10월 2일 2:40 AM
추가됨
create_component
2026년 10월 2일 2:40 AM
추가됨
set_agent_status
2026년 10월 2일 2:40 AM
추가됨
cancel_operation
2026년 10월 2일 2:40 AM
추가됨
get_operation
2026년 10월 2일 2:40 AM
추가됨
queue_component
2026년 10월 2일 2:40 AM
추가됨
discard_draft
2026년 10월 2일 2:40 AM
추가됨
publish_draft
2026년 10월 2일 2:40 AM
추가됨
update_draft
2026년 10월 2일 2:40 AM
추가됨
read_draft
2026년 10월 2일 2:40 AM
추가됨
prepare_draft
2026년 10월 2일 2:40 AM
추가됨
read_component
2026년 10월 2일 2:40 AM
추가됨
get_console
2026년 10월 2일 2:40 AM
추가됨
get_canvas
2026년 10월 2일 2:40 AM
추가됨
disconnect_canvas
2026년 10월 2일 2:40 AM
추가됨
pairing_status
2026년 10월 2일 2:40 AM
추가됨
claim_canvas
2026년 10월 2일 2:40 AM