_ registry / mcp streamable-http · checked 6h ago

nova-canvas

https://nova.ardabot.ai

Registry code: 3cbbc099f37fcbbb

api record

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 (render with the discovery UUID as screenID) runs on the local stdio MCP on a home computer — not this endpoint. Probe, host_start, tab capture and sink start/recover run inside that render. 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…

endpoint
https://nova.ardabot.ai/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is nova-canvas live?
No — it has stopped answering the hub's checks (checked 6h ago). It answered 98% of checks over the last 30 days.
Is nova-canvas free to use?
Yes — the hub reached it with no key and no payment.
What tools does nova-canvas have?
28 tools: delete_component, claim_canvas, render, update_draft, queue_component, set_agent_status, create_component, set_component_data, ….
Is nova-canvas safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
down
uptime, 30 days
97.5%

90 days 98.1%· all time 98.1%

latency
349ms

last good check

priced tools
0

of 28 tools

_ answered our checks, 90 days 314 checks · signed record
  • degraded → down· timeout after 20000ms
  • live → degraded· timeout after 20000ms
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
_ what it is for
used for
  • cast content to a home tv
  • create interactive components on a tv canvas
  • render weather or clock templates on screen
  • pair with a tv screen
takes → gives
text, code → data, images
tools
8 reads17 changes data
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 28 tools
1 open 27 never probed 1 of 28 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • list_templates reads open 2d ago

    Lists approved TV template slugs, versions and param examples. Prefer render(slug) for these boards instead of generating source.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "controlToken"
      ],
      "properties": {
        "controlToken": {
          "type": "string",
          "maxLength": 200,
          "minLength": 20
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • delete_component changes data unknown never probed

    Deletes a component and selects its nearest remaining neighbor.

    mcp-tool

    {
      "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
    }
    arguments 33 lines
  • claim_canvas changes data unknown never probed

    Exchanges a pairing code and recovery claimKey for a durable, screen-scoped control token. Repeating the same pair recovers the original grant.

    mcp-tool

    {
      "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
    }
    arguments 19 lines
  • render changes data unknown never probed

    Paints 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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "operationID",
        "expectedRevision",
        "slug",
        "controlToken"
      ],
      "properties": {
        "data": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "$ref": "#/definitions/__schema0"
          }
        },
        "slug": {
          "type": "string",
          "maxLength": 160,
          "minLength": 1,
          "description": "Approved catalog slug from list_templates, for example weather, clock or countdown."
        },
        "params": {
          "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
    }
    arguments 90 lines
  • update_draft unknown never probed

    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.

    mcp-tool

    {
      "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
    }
    arguments 111 lines
  • queue_component unknown never probed

    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.

    mcp-tool

    {
      "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
    }
    arguments 118 lines
  • set_agent_status changes data unknown never probed

    Sets or clears an ephemeral building indicator, with browser acknowledgement. Does not change workspace revision or publish drafts. Automatically clears after two minutes.

    mcp-tool

    {
      "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
    }
    arguments 35 lines
  • create_component changes data unknown never probed

    Validates, renders and saves a React or HTML component immediately to the right of focus. Success requires browser paint acknowledgement.

    mcp-tool

    {
      "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
    }
    arguments 99 lines
  • set_component_data changes data unknown never probed

    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.

    mcp-tool

    {
      "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"
          }
        },
        "slot": {
          "type": "string",
          "pattern": "^[a-z][a-z0-9_-]{0,63}$",
          "maxLength": 64
        },
        "merge": {
          "type": "boolean"
        },
        "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
    }
    arguments 84 lines
  • click changes data unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "operationID",
        "expectedRevision",
        "componentID",
        "expectedComponentVersion",
        "selector",
        "targetID",
        "controlToken"
      ],
      "properties": {
        "selector": {
          "type": "string",
          "maxLength": 1000,
          "minLength": 1
        },
        "targetID": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "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
        },
        "expectedComponentVersion": {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        }
      },
      "additionalProperties": false
    }
    arguments 51 lines
  • fill changes data unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "operationID",
        "expectedRevision",
        "componentID",
        "expectedComponentVersion",
        "selector",
        "targetID",
        "value",
        "controlToken"
      ],
      "properties": {
        "value": {
          "type": "string",
          "maxLength": 4000
        },
        "selector": {
          "type": "string",
          "maxLength": 1000,
          "minLength": 1
        },
        "targetID": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "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
        },
        "expectedComponentVersion": {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        }
      },
      "additionalProperties": false
    }
    arguments 56 lines
  • select changes data unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "operationID",
        "expectedRevision",
        "componentID",
        "expectedComponentVersion",
        "selector",
        "targetID",
        "value",
        "controlToken"
      ],
      "properties": {
        "value": {
          "type": "string",
          "maxLength": 4000
        },
        "selector": {
          "type": "string",
          "maxLength": 1000,
          "minLength": 1
        },
        "targetID": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "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
        },
        "expectedComponentVersion": {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        }
      },
      "additionalProperties": false
    }
    arguments 56 lines
  • inspect reads unknown 2d ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "operationID",
        "expectedRevision",
        "componentID",
        "expectedComponentVersion",
        "selector",
        "controlToken"
      ],
      "properties": {
        "selector": {
          "type": "string",
          "maxLength": 1000,
          "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
        },
        "expectedComponentVersion": {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        }
      },
      "additionalProperties": false
    }
    arguments 45 lines
  • disconnect_canvas changes data unknown never probed

    Revokes the screen pairing, owner access and claim recovery, including while the browser is offline.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "controlToken"
      ],
      "properties": {
        "controlToken": {
          "type": "string",
          "maxLength": 200,
          "minLength": 20
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • screenshot_draft reads unknown 2d ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "draftID",
        "expectedVersion",
        "controlToken"
      ],
      "properties": {
        "draftID": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "controlToken": {
          "type": "string",
          "maxLength": 200,
          "minLength": 20
        },
        "expectedVersion": {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • cancel_operation changes data unknown never probed

    Cancels a queued component update and removes its source. Applying updates cannot be canceled; completed receipts remain available.

    mcp-tool

    {
      "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
    }
    arguments 21 lines
  • get_operation reads unknown 47h ago

    Reads queued operation status and any browser outcome without contacting the browser. Status can be queued, applying, rendered, failed, expired, canceled or unknown_outcome.

    mcp-tool

    {
      "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
    }
    arguments 21 lines
  • read_component reads unknown 2d ago

    Reads a component source, saved state and supplied data.

    mcp-tool

    {
      "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
    }
    arguments 21 lines
  • get_console reads unknown never probed

    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.

    mcp-tool

    {
      "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
    }
    arguments 25 lines
  • prepare_draft changes data unknown never probed

    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.

    mcp-tool

    {
      "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"
          }
        },
        "slot": {
          "type": "string",
          "pattern": "^[a-z][a-z0-9_-]{0,63}$",
          "maxLength": 64
        },
        "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
    }
    arguments 117 lines
  • publish_draft changes data unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "operationID",
        "expectedRevision",
        "draftID",
        "version",
        "review",
        "controlToken"
      ],
      "properties": {
        "review": {
          "enum": [
            "visual",
            "structural"
          ],
          "type": "string",
          "description": "visual if you actually screenshotted this exact version after the Preview quality loop; structural if you only inspected source/metadata. Never claim visual without a screenshot. Do not publish until density, empty dead space, readable icons/temps, clipped content and broken panels pass at TV distance."
        },
        "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
    }
    arguments 48 lines
  • discard_draft changes data unknown never probed

    Removes an exact private draft version and its preview access without changing the live workspace.

    mcp-tool

    {
      "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
    }
    arguments 39 lines
  • update_component changes data unknown never probed

    Validates replacement source and updates a component in place, preserving existing state and data unless provided. Failed rendering retains the previous version.

    mcp-tool

    {
      "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
    }
    arguments 105 lines
  • navigate changes data unknown never probed

    Focuses a component or moves one position. Acknowledges after the selected component renders.

    mcp-tool

    {
      "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
    }
    arguments 39 lines
  • execute_script changes data unknown never probed

    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.

    mcp-tool

    {
      "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
    }
    arguments 39 lines
  • read_draft reads unknown 2d ago

    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.

    mcp-tool

    {
      "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
    }
    arguments 21 lines
  • get_canvas unknown 47h ago

    Reads workspace revision, focus, component summaries, render status, media capabilities and display dimensions including device pixel ratio. Physical DPI is unknown.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "controlToken"
      ],
      "properties": {
        "controlToken": {
          "type": "string",
          "maxLength": 200,
          "minLength": 20
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • pairing_status reads unknown 47h ago

    Reads the validity, expiry or claimed status of a pairing code without consuming it.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "code"
      ],
      "properties": {
        "code": {
          "type": "string",
          "maxLength": 160,
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 3cbbc099f37fcbbb.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/3cbbc099f37fcbbb/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/3cbbc099f37fcbbb/badge.svg)](https://brick.blue/agent/3cbbc099f37fcbbb?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.