components:
  schemas:
    BaseSuccess:
      description: Common REST success envelope.
      properties:
        data:
          description: Endpoint-specific payload.
          type: object
        success:
          enum:
            - true
          type: boolean
        timestamp:
          description: Local ISO-8601 timestamp without timezone suffix.
          type: string
      required:
        - success
        - timestamp
      type: object
    ErrorResponse:
      description: Common REST error envelope.
      properties:
        error:
          description: Human-readable failure reason.
          type: string
        success:
          enum:
            - false
          type: boolean
        timestamp:
          description: Local ISO-8601 timestamp without timezone suffix.
          type: string
      required:
        - success
        - error
        - timestamp
      type: object
    WebDriverError:
      description: W3C WebDriver error envelope.
      properties:
        value:
          properties:
            error:
              description: "WebDriver error code, e.g. \"invalid session id\"."
              type: string
            message:
              description: Human-readable detail.
              type: string
            stacktrace:
              type: string
          required:
            - error
            - message
          type: object
      required:
        - value
      type: object
    WebDriverValue:
      description: W3C WebDriver envelope.
      properties:
        value:
          description: Command result; null for commands with no return value.
      required:
        - value
      type: object
  securitySchemes:
    ApiKeyAuth:
      description: API key (UUID v4) supplied in the X-Api-Key header.
      in: header
      name: X-Api-Key
      type: apiKey
    BearerAuth:
      bearerFormat: UUID
      description: "API key (UUID v4) supplied as: Authorization: Bearer <api_key>"
      scheme: bearer
      type: http
info:
  description: |-
    Unified API for **MetaDock**, a Windows power-user workspace app combining
    browser automation, native-app docking, workspace/layout management, and AI
    control. It covers the programmable surfaces exposed by the embedded local
    server:

    | Surface | Base path | Protocol | Scope token |
    |---------|-----------|----------|-------------|
    | REST API | `/api/...` | HTTP + JSON | `rest` |
    | Selenium / WebDriver | `/wd/hub/...` | HTTP + JSON (W3C WebDriver) | `selenium` |
    | MCP (Model Context Protocol) | `/mcp` | HTTP + JSON-RPC 2.0 | `mcp` |
    | CDP (Chrome DevTools Protocol) | `/json/...`, `/devtools/...` | HTTP discovery + WebSocket | `cdp` |
    | WebSocket events | `/ws` | WebSocket (JSON messages) | `websocket` |

    The WebSocket surface is documented separately in `asyncapi.yaml`. Availability of
    individual surfaces and tools depends on your MetaDock edition.

    ## Enabling surfaces
    The API is disabled until at least one active API key exists, and every surface
    is off by default. Each surface has its own toggle in MetaDock Settings -> API,
    Automation & AI (REST API, WebSocket, MCP, CDP, Selenium). Requesting a surface
    whose toggle is off is rejected regardless of credentials.

    ## Authentication
    API keys are UUID v4 strings created in MetaDock Settings -> API, Automation & AI. A
    key carries a set of scopes (`rest`, `websocket`, `mcp`, `cdp`, `selenium`); a
    request is accepted only if the key's scope set allows the surface it targets.
    Two credential locations are accepted on HTTP surfaces:

    - `Authorization: Bearer <api_key>`
    - `X-Api-Key: <api_key>`

    Query-parameter authentication is not supported. First-time connections may
    additionally require an in-app approval prompt unless "Allow All" is enabled, and
    repeated failed attempts trigger a per-IP lockout. A key may further be scoped to
    a set of profiles/layouts, in which case fleet-wide operations and out-of-scope
    browsers are rejected with 403.

    ## Response envelopes
    REST (`/api/...`) uses `{ "success": true, "data": { }, "timestamp": "..." }` on
    success and `{ "success": false, "error": "...", "timestamp": "..." }` on failure;
    `timestamp` is local ISO-8601 without a timezone suffix. Selenium uses the W3C
    `{ "value": ... }` envelope, MCP uses JSON-RPC 2.0, and CDP discovery returns raw
    Chrome DevTools Protocol JSON.

    ## Rate limiting
    There is no request quota on any surface: requests are not counted, metered or
    billed, and no endpoint returns 429. The only throttle is the per-IP lockout on
    repeated authentication failures described above, which answers 401.

    ## x-mcp-tool
    Every operation that maps onto an MCP tool carries an `x-mcp-tool` extension
    naming it. That tool's JSON Schema is the authority for the request body, and the
    same name is what per-key tool grants are enforced against across all surfaces.
  license:
    name: Proprietary
  title: MetaDock API
  version: 1.0.0
openapi: 3.0.3
paths:
  /api/adblock/auto-update:
    post:
      description: Configure periodic auto-update of filter lists
      operationId: setAutoUpdate
      requestBody:
        content:
          application/json:
            schema:
              properties:
                enabled:
                  description: Enable periodic auto-update (default true)
                  type: boolean
                interval_hours:
                  description: Hours between updates (default 24)
                  maximum: 8760
                  minimum: 1
                  type: integer
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set auto update
      tags:
        - Adblock
      x-mcp-tool: adblock_set_auto_update
  /api/adblock/lists:
    get:
      description: "List all adblock filter lists (id, name, url, enabled, rule_count, last_updated)"
      operationId: listFilters
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List filters
      tags:
        - Adblock
      x-mcp-tool: adblock_list
    post:
      description: Add a new adblock filter list by URL
      operationId: addFilter
      requestBody:
        content:
          application/json:
            schema:
              properties:
                enabled:
                  description: Enable immediately and download (default true)
                  type: boolean
                name:
                  description: Display name for the list
                  type: string
                url:
                  description: Filter list URL
                  type: string
              required:
                - name
                - url
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Add filter
      tags:
        - Adblock
      x-mcp-tool: adblock_add
  "/api/adblock/lists/{id}":
    delete:
      description: Remove an adblock filter list by id
      operationId: removeFilter
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Remove filter
      tags:
        - Adblock
      x-mcp-tool: adblock_remove
  "/api/adblock/lists/{id}/enable":
    post:
      description: Enable or disable an adblock filter list by id
      operationId: enableFilter
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                enabled:
                  description: "true to enable, false to disable (default true)"
                  type: boolean
                id:
                  description: Filter list id
                  type: integer
              required:
                - id
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Enable filter
      tags:
        - Adblock
      x-mcp-tool: adblock_enable
  "/api/adblock/lists/{id}/update":
    post:
      description: Trigger a refresh/download of a single filter list by id
      operationId: updateFilter
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                id:
                  description: Filter list id
                  type: integer
              required:
                - id
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Update filter
      tags:
        - Adblock
      x-mcp-tool: adblock_update
  /api/adblock/override:
    get:
      description: "Get a profile's adblock override (on/off/inherit) and the effective enabled state"
      operationId: getOverride
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get override
      tags:
        - Adblock
      x-mcp-tool: adblock_get_override
    post:
      description: "Set a profile's adblock override"
      operationId: setOverride
      requestBody:
        content:
          application/json:
            schema:
              properties:
                override:
                  description: "Per-profile adblock override; 'inherit' follows the global adblock_enabled setting"
                  enum:
                    - "on"
                    - "off"
                    - inherit
                  type: string
                profile:
                  description: Profile name
                  type: string
              required:
                - profile
                - override
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set override
      tags:
        - Adblock
      x-mcp-tool: adblock_set_override
  /api/adblock/update:
    post:
      description: Trigger a refresh/download of all enabled filter lists
      operationId: updateAll
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Update all
      tags:
        - Adblock
      x-mcp-tool: adblock_update_all
  /api/adblock/whitelist:
    get:
      description: List the hosts that are excepted from adblocking. Each entry also covers its subdomains.
      operationId: listWhitelist
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List whitelist
      tags:
        - Adblock
      x-mcp-tool: adblock_list_whitelist
    post:
      description: "Add or remove a host from the adblock site exceptions. Adding a host that is already excepted is a no-op, reported as changed=false."
      operationId: setWhitelist
      requestBody:
        content:
          application/json:
            schema:
              properties:
                host:
                  description: Host to except. A full URL is accepted and reduced to its host.
                  type: string
                whitelisted:
                  description: "true to except the host from adblocking, false to resume blocking on it"
                  type: boolean
              required:
                - host
                - whitelisted
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set whitelist
      tags:
        - Adblock
      x-mcp-tool: adblock_set_whitelist
  /api/adblock/whitelist/check:
    get:
      description: "Check whether a host is excepted from adblocking. Matching is subdomain-inclusive, so an entry for example.com reports true for www.example.com."
      operationId: getWhitelist
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get whitelist
      tags:
        - Adblock
      x-mcp-tool: adblock_get_whitelist
  /api/aliases:
    get:
      description: "List website aliases (short keyword -> URL shortcuts used in the omnibox)"
      operationId: listAliases
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List aliases
      tags:
        - Search
      x-mcp-tool: search_alias_list
    post:
      description: Create or update a website alias
      operationId: setAlias
      requestBody:
        content:
          application/json:
            schema:
              properties:
                alias:
                  description: Alias keyword
                  type: string
                url:
                  description: Destination URL
                  type: string
              required:
                - alias
                - url
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set alias
      tags:
        - Search
      x-mcp-tool: search_alias_set
  "/api/aliases/{alias}":
    delete:
      description: Delete a website alias
      operationId: deleteAlias
      parameters:
        - in: path
          name: alias
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Delete alias
      tags:
        - Search
      x-mcp-tool: search_alias_delete
    get:
      description: Resolve a website alias to its URL
      operationId: resolveAlias
      parameters:
        - in: path
          name: alias
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Resolve alias
      tags:
        - Search
      x-mcp-tool: search_alias_resolve
  /api/apps:
    get:
      description: List native app docks mounted in a layout (full JSON)
      operationId: listApps
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List apps
      tags:
        - App
      x-mcp-tool: native_app_list
    post:
      description: Mount a running native window as a dock in a layout
      operationId: mountApp
      requestBody:
        content:
          application/json:
            schema:
              properties:
                custom_title:
                  description: Custom dock title (optional)
                  type: string
                layout_uuid:
                  description: "Layout UUID (optional, defaults to first layout)"
                  type: string
                pid:
                  description: Specific process id to disambiguate (optional)
                  type: integer
                process_name:
                  description: Process/window name to mount
                  type: string
              required:
                - process_name
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Mount app
      tags:
        - App
      x-mcp-tool: native_app_mount
  /api/apps/processes:
    get:
      description: "List visible top-level OS windows that can be mounted as native app docks, including process name, PID, and window title"
      operationId: listProcesses
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List processes
      tags:
        - App
      x-mcp-tool: native_app_list_processes
  "/api/apps/{uuid}":
    delete:
      description: Dismount (unembed) a native app dock by UUID
      operationId: dismountApp
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Dismount app
      tags:
        - App
      x-mcp-tool: native_app_dismount
    get:
      description: Get full info for a mounted native app by UUID
      operationId: getApp
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get app
      tags:
        - App
      x-mcp-tool: native_app_info
  "/api/apps/{uuid}/lock":
    post:
      description: Lock or unlock a native app dock
      operationId: lockApp
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                locked:
                  description: "true to lock, false to unlock (default true)"
                  type: boolean
                uuid:
                  description: Native app UUID
                  type: string
              required:
                - uuid
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Lock app
      tags:
        - App
      x-mcp-tool: native_app_lock
  "/api/apps/{uuid}/title":
    post:
      description: Set the custom title of a native app dock
      operationId: setAppTitle
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                title:
                  description: New custom title
                  type: string
                uuid:
                  description: Native app UUID
                  type: string
              required:
                - uuid
                - title
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set app title
      tags:
        - App
      x-mcp-tool: native_app_set_title
  /api/bookmarks:
    get:
      description: "List bookmarks (id, name, url, category_id, tags). Optional profile filter. Supports limit + offset paging; response includes total."
      operationId: listBookmarks
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List bookmarks
      tags:
        - Bookmark
      x-mcp-tool: bookmark_list
    post:
      description: Create a bookmark
      operationId: createBookmark
      requestBody:
        content:
          application/json:
            schema:
              properties:
                category_id:
                  description: Category id (optional)
                  type: integer
                name:
                  description: Bookmark title
                  type: string
                profile:
                  description: Profile name (optional)
                  type: string
                tags:
                  description: Tags (optional)
                  items:
                    type: string
                  type: array
                url:
                  description: Bookmark URL
                  type: string
              required:
                - name
                - url
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Create bookmark
      tags:
        - Bookmark
      x-mcp-tool: bookmark_create
  /api/bookmarks/categories:
    get:
      description: "List bookmark categories (id, name, parent_id, color, path, depth)"
      operationId: listCategories
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List categories
      tags:
        - Bookmark
      x-mcp-tool: bookmark_list_categories
    post:
      description: "Create a bookmark category and return its id, which bookmark_create and bookmark_update take as category_id."
      operationId: createCategory
      requestBody:
        content:
          application/json:
            schema:
              properties:
                name:
                  description: Category name
                  type: string
                parent_id:
                  description: Parent category id to nest under (from bookmark_list_categories). Omit for a top-level category.
                  type: integer
                profile:
                  description: Profile name (optional)
                  type: string
              required:
                - name
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Create category
      tags:
        - Bookmark
      x-mcp-tool: bookmark_create_category
  "/api/bookmarks/categories/{p1}":
    delete:
      description: Delete a bookmark category. Fails if it still holds bookmarks or child categories unless delete_contents is true.
      operationId: deleteCategory
      parameters:
        - in: path
          name: p1
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Delete category
      tags:
        - Bookmark
      x-mcp-tool: bookmark_delete_category
    put:
      description: Rename a bookmark category
      operationId: renameCategory
      parameters:
        - in: path
          name: p1
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                category_id:
                  description: Category id (from bookmark_list_categories)
                  type: integer
                name:
                  description: New category name
                  type: string
              required:
                - category_id
                - name
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Rename category
      tags:
        - Bookmark
      x-mcp-tool: bookmark_rename_category
  /api/bookmarks/tags:
    get:
      description: "List every distinct tag used across saved bookmarks, sorted alphabetically. Call this to discover valid values for the tags parameter on bookmark_create and bookmark_update. Unlike bookmark_list, this is not scoped to a profile - tags are shared across all bookmarks."
      operationId: listTags
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List tags
      tags:
        - Bookmark
      x-mcp-tool: bookmark_list_tags
  "/api/bookmarks/{id}":
    delete:
      description: Delete a bookmark by id
      operationId: deleteBookmark
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Delete bookmark
      tags:
        - Bookmark
      x-mcp-tool: bookmark_delete
    put:
      description: "Update a bookmark's title, url, and/or category by id (unspecified fields keep their current value)"
      operationId: updateBookmark
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                category_id:
                  description: New category id (optional)
                  type: integer
                id:
                  description: Bookmark id
                  type: integer
                title:
                  description: New title (optional)
                  type: string
                url:
                  description: New URL (optional)
                  type: string
              required:
                - id
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Update bookmark
      tags:
        - Bookmark
      x-mcp-tool: bookmark_update
  "/api/bookmarks/{id}/open":
    post:
      description: Open a bookmark in a new browser
      operationId: openBookmark
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                id:
                  description: Bookmark id
                  type: integer
                layout_uuid:
                  description: "Layout UUID (optional, defaults to first layout)"
                  type: string
                profile:
                  description: Profile to open under (optional)
                  type: string
              required:
                - id
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Open bookmark
      tags:
        - Bookmark
      x-mcp-tool: bookmark_open
  /api/browsers:
    get:
      description: List all browsers
      operationId: getAllBrowsers
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get all browsers
      tags:
        - Browser
      x-mcp-tool: browsers_list
  /api/browsers/close-all:
    post:
      description: Close all browsers
      operationId: closeAllBrowsers
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Close all browsers
      tags:
        - Browser
      x-mcp-tool: browsers_close_all
  /api/browsers/close-others:
    post:
      description: Close all browsers except one
      operationId: closeOtherBrowsers
      requestBody:
        content:
          application/json:
            schema:
              properties:
                keep_browser_uuid:
                  description: UUID of the browser to keep open (from browsers_list)
                  type: string
              required:
                - keep_browser_uuid
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Close other browsers
      tags:
        - Browser
      x-mcp-tool: browsers_close_others
  /api/browsers/close-others-in-layout:
    post:
      description: Close all browsers in a layout except one
      operationId: closeOtherBrowsersInDock
      requestBody:
        content:
          application/json:
            schema:
              properties:
                keep_browser_uuid:
                  description: UUID of the browser to keep open (from browsers_list)
                  type: string
                layout_uuid:
                  description: "Layout UUID to scope the close to (optional, defaults to first layout)"
                  type: string
              required:
                - keep_browser_uuid
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Close other browsers in dock
      tags:
        - Browser
      x-mcp-tool: browsers_close_others_in_layout
  /api/browsers/create:
    post:
      description: Create a new browser instance
      operationId: createBrowser
      requestBody:
        content:
          application/json:
            schema:
              properties:
                auto_refresh_interval:
                  description: Auto-refresh interval in seconds (0 = off)
                  type: integer
                custom_title:
                  description: Custom title for browser tab
                  type: string
                disable_javascript:
                  description: Create the browser with JavaScript disabled
                  type: boolean
                headless:
                  description: "Create browser in headless mode (hidden, no UI - for automation)"
                  type: boolean
                hide:
                  description: Create the dock hidden
                  type: boolean
                layout_uuid:
                  description: "Layout UUID to create browser in (optional, defaults to first layout)"
                  type: string
                lock:
                  description: Lock the dock against moving or closing
                  type: boolean
                mute:
                  description: Start the browser muted
                  type: boolean
                profile:
                  description: Browser profile name
                  type: string
                show_extended_titlebar_profile:
                  description: Show the profile name in the dock titlebar
                  type: boolean
                show_extended_titlebar_proxy:
                  description: Show the proxy in the dock titlebar
                  type: boolean
                toolbar_visible:
                  description: Show the browser toolbar
                  type: boolean
                url:
                  description: Initial URL to navigate to
                  type: string
                zoom_factor:
                  description: "Initial zoom factor (1.0 = 100%)"
                  type: number
              required:
                - url
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Create browser
      tags:
        - Browser
      x-mcp-tool: browser_create
  /api/browsers/create-multiple:
    post:
      description: Create multiple browsers with different configurations
      operationId: createMultipleBrowsers
      requestBody:
        content:
          application/json:
            schema:
              properties:
                browsers:
                  description: Array of browser configurations
                  items:
                    properties:
                      custom_title:
                        description: Custom title for browser tab
                        type: string
                      headless:
                        description: "Create browser in headless mode (hidden, no UI - for automation)"
                        type: boolean
                      layout_uuid:
                        description: "Layout UUID to create browser in (optional, defaults to first layout)"
                        type: string
                      mute:
                        description: Mute audio
                        type: boolean
                      profile:
                        description: Browser profile name
                        type: string
                      proxy:
                        description: Proxy settings
                        type: string
                      toolbar_visible:
                        description: Show toolbar
                        type: boolean
                      url:
                        description: Initial URL to navigate to
                        type: string
                      zoom_factor:
                        description: "Zoom factor (1.0 = 100%)"
                        type: number
                    required:
                      - url
                    type: object
                  type: array
              required:
                - browsers
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Create multiple browsers
      tags:
        - Browser
      x-mcp-tool: browsers_create_multiple
  /api/browsers/execute-all:
    post:
      description: "Execute JavaScript on all browsers and return each browser's result"
      operationId: executeJavaScriptOnAll
      requestBody:
        content:
          application/json:
            schema:
              properties:
                script:
                  description: JavaScript code to execute on all browsers
                  type: string
                timeout_ms:
                  description: "Max time to wait for each browser's result (default 5000)"
                  type: integer
              required:
                - script
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute java script on all
      tags:
        - Browser
      x-mcp-tool: browsers_execute_all
  /api/browsers/gpu-presets:
    get:
      description: "List the GPU presets browser_set_fingerprint_webgl accepts as gpu_preset, with a description of each."
      operationId: getGpuPresets
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get gpu presets
      tags:
        - Browser
      x-mcp-tool: browser_list_gpu_presets
  /api/browsers/navigate-all:
    post:
      description: Navigate all browsers to a URL
      operationId: navigateAll
      requestBody:
        content:
          application/json:
            schema:
              properties:
                url:
                  description: URL to navigate all browsers to
                  type: string
              required:
                - url
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Navigate all
      tags:
        - Browser
      x-mcp-tool: browsers_navigate_all
  /api/browsers/reload-all:
    post:
      description: Reload all browsers
      operationId: reloadAll
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Reload all
      tags:
        - Browser
      x-mcp-tool: browsers_reload_all
  /api/browsers/urls:
    get:
      description: "Get every open browser's uuid, url and title (copy all URLs)"
      operationId: getAllBrowserUrls
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get all browser urls
      tags:
        - Browser
      x-mcp-tool: browsers_get_urls
  "/api/browsers/{uuid}/back":
    post:
      description: Navigate browser back in history
      operationId: goBack
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Go back
      tags:
        - Browser
      x-mcp-tool: browser_go_back
  "/api/browsers/{uuid}/batch":
    post:
      description: Execute multiple browser operations in sequence on one or multiple browsers (100 operations per browser max)
      operationId: executeBatch
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                browsers:
                  description: Array of browser configurations for multi-browser operations
                  items:
                    properties:
                      browser_uuid:
                        description: Browser UUID
                        type: string
                      operations:
                        description: Operations for this browser (max 100 per browser)
                        items:
                          properties:
                            params:
                              description: Tool parameters
                              type: object
                            tool:
                              description: Tool name
                              type: string
                          required:
                            - tool
                            - params
                          type: object
                        type: array
                    required:
                      - browser_uuid
                      - operations
                    type: object
                  type: array
                continue_on_error:
                  description: "Continue executing if an operation fails (default: false)"
                  type: boolean
                operations:
                  description: Operations for single browser mode (max 100 per browser)
                  items:
                    properties:
                      params:
                        description: Parameters for the tool
                        type: object
                      tool:
                        description: "Tool name (e.g., 'navigate', 'click', 'type')"
                        type: string
                    required:
                      - tool
                      - params
                    type: object
                  type: array
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute batch
      tags:
        - Browser
      x-mcp-tool: browser_batch
  "/api/browsers/{uuid}/cache/clear":
    post:
      description: "Clear this browser's HTTP cache (CDP Network.clearBrowserCache). Does not touch cookies."
      operationId: executeMcpAction19
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_clear_cache
  "/api/browsers/{uuid}/clear":
    post:
      description: Clear an input field
      operationId: clearInput
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                selector:
                  description: CSS selector of input element
                  type: string
                timeout_ms:
                  description: "Timeout in milliseconds (default: 5000)"
                  type: number
              required:
                - selector
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Clear input
      tags:
        - Browser
      x-mcp-tool: browser_clear_input
  "/api/browsers/{uuid}/click":
    post:
      description: Click an element by CSS selector
      operationId: clickElement
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                selector:
                  description: CSS selector of element to click
                  type: string
                timeout_ms:
                  description: "Timeout in milliseconds (default: 5000)"
                  type: number
              required:
                - selector
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Click element
      tags:
        - Browser
      x-mcp-tool: browser_click
  "/api/browsers/{uuid}/click-at":
    post:
      description: Click at raw viewport pixel coordinates using a real (trusted) mouse event. Use when you have coordinates rather than a CSS selector (e.g. from a screenshot or element box).
      operationId: executeMcpAction20
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                x:
                  description: X coordinate in CSS/viewport pixels
                  type: integer
                y:
                  description: Y coordinate in CSS/viewport pixels
                  type: integer
              required:
                - x
                - y
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_click_at
  "/api/browsers/{uuid}/close":
    post:
      description: Close a browser instance
      operationId: closeBrowser
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Close browser
      tags:
        - Browser
      x-mcp-tool: browser_close
  "/api/browsers/{uuid}/console":
    get:
      description: Get console messages from the browser
      operationId: getConsoleMessages
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get console messages
      tags:
        - Browser
      x-mcp-tool: browser_get_console
  "/api/browsers/{uuid}/console/clear":
    post:
      description: Clear console messages for the browser
      operationId: clearConsoleMessages
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Clear console messages
      tags:
        - Browser
      x-mcp-tool: browser_clear_console
  "/api/browsers/{uuid}/cookie":
    get:
      description: Get a cookie value from the browser
      operationId: getCookie
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get cookie
      tags:
        - Browser
      x-mcp-tool: browser_get_cookie
    post:
      description: Set a cookie for the browser
      operationId: setCookie
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                domain:
                  description: Cookie domain (optional)
                  type: string
                name:
                  description: Cookie name
                  type: string
                value:
                  description: Cookie value
                  type: string
              required:
                - name
                - value
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set cookie
      tags:
        - Browser
      x-mcp-tool: browser_set_cookie
  "/api/browsers/{uuid}/cookie/{name}":
    delete:
      description: Delete a specific cookie from the browser
      operationId: deleteCookie
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
        - in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Delete cookie
      tags:
        - Browser
      x-mcp-tool: browser_delete_cookie
  "/api/browsers/{uuid}/cookies":
    get:
      description: Get all cookies for the browser
      operationId: getAllCookies
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get all cookies
      tags:
        - Browser
      x-mcp-tool: browser_get_all_cookies
  "/api/browsers/{uuid}/cookies/clear":
    post:
      description: Clear all cookies for the browser
      operationId: clearCookies
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Clear cookies
      tags:
        - Browser
      x-mcp-tool: browser_clear_cookies
  "/api/browsers/{uuid}/device":
    get:
      description: "Get which device class browser_emulate_device is currently applying, or null when none is applied. Recorded at the time of the call rather than inferred from the user agent."
      operationId: getEmulatedDevice
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get emulated device
      tags:
        - Browser
      x-mcp-tool: browser_get_emulated_device
    post:
      description: Enable device emulation for the browser
      operationId: emulateDevice
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                device_name:
                  description: "Device class to emulate. 'mobile' applies an iPhone user agent at 375x812; 'tablet' an iPad user agent at 768x1024."
                  enum:
                    - mobile
                    - tablet
                  type: string
              required:
                - device_name
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Emulate device
      tags:
        - Browser
      x-mcp-tool: browser_emulate_device
  "/api/browsers/{uuid}/device/clear":
    post:
      description: Clear device emulation for the browser
      operationId: clearDeviceEmulation
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Clear device emulation
      tags:
        - Browser
      x-mcp-tool: browser_clear_device_emulation
  "/api/browsers/{uuid}/devtools/close":
    post:
      description: Close developer tools for the browser
      operationId: closeDevTools
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Close dev tools
      tags:
        - Browser
      x-mcp-tool: browser_close_devtools
  "/api/browsers/{uuid}/devtools/enable":
    post:
      description: Enable or disable developer tools for the browser
      operationId: enableDevTools
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                enable:
                  description: "Enable or disable DevTools (default: true)"
                  type: boolean
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Enable dev tools
      tags:
        - Browser
      x-mcp-tool: browser_enable_devtools
  "/api/browsers/{uuid}/devtools/open":
    post:
      description: Open developer tools for the browser
      operationId: openDevTools
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Open dev tools
      tags:
        - Browser
      x-mcp-tool: browser_open_devtools
  "/api/browsers/{uuid}/dialog-policy":
    get:
      description: "Get how a browser answers JavaScript dialogs. Readable counterpart to browser_set_dialog_policy. For the last dialog that was actually captured, use browser_get_last_dialog."
      operationId: getDialogPolicy
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get dialog policy
      tags:
        - Browser
      x-mcp-tool: browser_get_dialog_policy
    post:
      description: "Control how this browser handles JavaScript dialogs (alert/confirm/prompt/beforeunload). 'default' shows the native dialog (which blocks automation); 'accept' auto-accepts (OK / prompt returns prompt_text); 'dismiss' auto-cancels. IMPORTANT: this takes effect from the NEXT navigation/reload, so set the policy BEFORE navigating to (or reloading) the page that may pop dialogs. Handles page-initiated dialogs (load handlers, timers, events, beforeunload); use browser_get_last_dialog to see what was intercepted."
      operationId: executeMcpActionPost
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                policy:
                  description: How to handle dialogs
                  enum:
                    - default
                    - accept
                    - dismiss
                  type: string
                prompt_text:
                  description: "Text returned for prompt() when policy is 'accept' (optional)"
                  type: string
              required:
                - policy
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_set_dialog_policy
  "/api/browsers/{uuid}/drag":
    post:
      description: "Drag from one element to another using real (trusted) mouse events: press at the source center, move in steps to the target center, release. Works for sliders, sortable lists, and canvas/custom drag handlers."
      operationId: executeMcpAction14
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                source_selector:
                  description: CSS selector of the element to drag from
                  type: string
                target_selector:
                  description: CSS selector of the element to drop onto
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              required:
                - source_selector
                - target_selector
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_drag
  "/api/browsers/{uuid}/element/attribute":
    post:
      description: Get an attribute value of an element by CSS selector
      operationId: getElementAttribute
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                attribute:
                  description: Attribute name to get
                  type: string
                selector:
                  description: CSS selector of the element
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              required:
                - selector
                - attribute
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get element attribute
      tags:
        - Browser
      x-mcp-tool: browser_get_element_attribute
  "/api/browsers/{uuid}/element/box":
    post:
      description: "Get an element's bounding box (x/y/width/height/top/left/bottom/right) and key computed styles (display, visibility, opacity, font-size, color, background, z-index, position). Useful for spatial reasoning."
      operationId: executeMcpAction7
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                selector:
                  description: CSS selector of the element
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              required:
                - selector
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_get_element_box
  "/api/browsers/{uuid}/element/text":
    post:
      description: Get the text content of an element by CSS selector
      operationId: getElementText
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                selector:
                  description: CSS selector of the element
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              required:
                - selector
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get element text
      tags:
        - Browser
      x-mcp-tool: browser_get_element_text
  "/api/browsers/{uuid}/element/visible":
    post:
      description: Check if an element is visible on the page
      operationId: isElementVisible
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                selector:
                  description: CSS selector of the element
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              required:
                - selector
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Is element visible
      tags:
        - Browser
      x-mcp-tool: browser_is_element_visible
  "/api/browsers/{uuid}/execute":
    post:
      description: Execute JavaScript code in browser
      operationId: executeJavaScript
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                script:
                  description: JavaScript code to execute
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              required:
                - script
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute java script
      tags:
        - Browser
      x-mcp-tool: browser_execute_js
  "/api/browsers/{uuid}/execute-with-result":
    post:
      description: Execute JavaScript code in browser
      operationId: executeJavaScriptWithResult
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                script:
                  description: JavaScript code to execute
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              required:
                - script
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute java script with result
      tags:
        - Browser
      x-mcp-tool: browser_execute_js
  "/api/browsers/{uuid}/extract":
    post:
      description: "Structured, schema-driven extraction. Provide a 'fields' map of {fieldName: {selector, attr, all}} and get back JSON. attr: 'text' (default), 'html', or an attribute name like 'href'. all:true returns an array of matches."
      operationId: extractContent
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                fields:
                  description: "Map of fieldName -> {selector, attr, all}"
                  type: object
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              required:
                - fields
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Extract content
      tags:
        - Browser
      x-mcp-tool: browser_extract
  "/api/browsers/{uuid}/find":
    post:
      description: Find visible interactive elements whose role or accessible name matches a text query. Returns matches with CSS selectors usable by browser_click/browser_set_value.
      operationId: executeMcpAction4
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                frame:
                  description: Optional CSS selector for a same-origin iframe to search inside
                  type: string
                limit:
                  description: Max matches to return (0 = no limit)
                  type: integer
                query:
                  description: Text to match against element name/role
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              required:
                - query
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_find
  "/api/browsers/{uuid}/fingerprint":
    get:
      description: Get current fingerprint spoofing configuration for a browser
      operationId: getFingerprint
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get fingerprint
      tags:
        - Browser
      x-mcp-tool: browser_get_fingerprint
    post:
      description: "Set fingerprint spoofing config for a browser. Supports canvas, WebGL, and audio spoofing with per-profile deterministic fingerprints or random-per-refresh mode."
      operationId: setFingerprint
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                audio:
                  description: Audio spoofing config
                  properties:
                    enabled:
                      type: boolean
                    noise_level:
                      enum:
                        - subtle
                        - moderate
                        - aggressive
                      type: string
                  type: object
                canvas:
                  description: Canvas spoofing config
                  properties:
                    enabled:
                      type: boolean
                    noise_level:
                      enum:
                        - subtle
                        - moderate
                        - aggressive
                      type: string
                  type: object
                enabled:
                  description: Enable fingerprint spoofing
                  type: boolean
                preset:
                  description: "Preset: none, balanced, maximum, custom"
                  enum:
                    - none
                    - balanced
                    - maximum
                    - custom
                  type: string
                randomize_on_refresh:
                  description: Generate new random fingerprint on every page load
                  type: boolean
                seed:
                  description: Custom seed (blank = auto from profile)
                  type: string
                webgl:
                  description: WebGL spoofing config
                  properties:
                    enabled:
                      type: boolean
                    gpu_preset:
                      description: "GPU profile: Intel HD 630, NVIDIA GTX 1060, AMD RX 580, Apple M1, Generic Integrated, Custom"
                      type: string
                  type: object
              required:
                - enabled
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set fingerprint
      tags:
        - Browser
      x-mcp-tool: browser_set_fingerprint
  "/api/browsers/{uuid}/fingerprint/audio":
    post:
      description: Configure audio fingerprint spoofing for a browser
      operationId: setFingerprintAudio
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                enabled:
                  description: Enable audio spoofing
                  type: boolean
                noise_level:
                  description: "Noise level: subtle, moderate, aggressive"
                  enum:
                    - subtle
                    - moderate
                    - aggressive
                  type: string
              required:
                - enabled
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set fingerprint audio
      tags:
        - Browser
      x-mcp-tool: browser_set_fingerprint_audio
  "/api/browsers/{uuid}/fingerprint/canvas":
    post:
      description: Configure canvas fingerprint spoofing for a browser
      operationId: setFingerprintCanvas
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                enabled:
                  description: Enable canvas spoofing
                  type: boolean
                noise_level:
                  description: "Noise level: subtle, moderate, aggressive"
                  enum:
                    - subtle
                    - moderate
                    - aggressive
                  type: string
              required:
                - enabled
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set fingerprint canvas
      tags:
        - Browser
      x-mcp-tool: browser_set_fingerprint_canvas
  "/api/browsers/{uuid}/fingerprint/clear":
    post:
      description: Disable all fingerprint spoofing for a browser
      operationId: clearFingerprint
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Clear fingerprint
      tags:
        - Browser
      x-mcp-tool: browser_clear_fingerprint
  "/api/browsers/{uuid}/fingerprint/webgl":
    post:
      description: Configure WebGL fingerprint spoofing for a browser
      operationId: setFingerprintWebGL
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                custom_profile:
                  description: "Custom GPU profile fields, used when gpu_preset is Custom"
                  type: object
                enabled:
                  description: Enable WebGL spoofing
                  type: boolean
                gpu_preset:
                  description: "GPU profile to emulate: Intel HD 630, NVIDIA GTX 1060, AMD RX 580, Apple M1, Generic Integrated, Custom"
                  type: string
              required:
                - enabled
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set fingerprint web GL
      tags:
        - Browser
      x-mcp-tool: browser_set_fingerprint_webgl
  "/api/browsers/{uuid}/forms":
    post:
      description: "Enumerate forms and their fields {name, id, type, label, placeholder, required, options, selector}. Lets you fill forms by known field names instead of guessing selectors. Password/sensitive values are never returned."
      operationId: executeMcpAction2
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                frame:
                  description: Optional CSS selector for a same-origin iframe to read inside
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_get_forms
  "/api/browsers/{uuid}/forward":
    post:
      description: Navigate browser forward in history
      operationId: goForward
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Go forward
      tags:
        - Browser
      x-mcp-tool: browser_go_forward
  "/api/browsers/{uuid}/geolocation":
    post:
      description: Set geolocation for the browser
      operationId: setGeolocation
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                latitude:
                  description: Latitude coordinate
                  type: number
                longitude:
                  description: Longitude coordinate
                  type: number
              required:
                - latitude
                - longitude
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set geolocation
      tags:
        - Browser
      x-mcp-tool: browser_set_geolocation
  "/api/browsers/{uuid}/geolocation/clear":
    post:
      description: Clear geolocation override for the browser
      operationId: clearGeolocation
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Clear geolocation
      tags:
        - Browser
      x-mcp-tool: browser_clear_geolocation
  "/api/browsers/{uuid}/headers":
    get:
      description: List the custom request headers currently applied to a browser. Readable counterpart to browser_set_header and browser_remove_header. These are session-only and do not survive a restart.
      operationId: getCustomHeaders
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get custom headers
      tags:
        - Browser
      x-mcp-tool: browser_get_headers
    post:
      description: "Add or override a custom HTTP request header sent by this browser on subsequent requests (e.g. Authorization, X-* headers)."
      operationId: executeMcpAction
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                name:
                  description: Header name
                  type: string
                value:
                  description: Header value
                  type: string
              required:
                - name
                - value
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_set_header
  "/api/browsers/{uuid}/headers/remove":
    post:
      description: Remove a previously-set custom request header from this browser.
      operationId: executeMcpAction18
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                name:
                  description: Header name to remove
                  type: string
              required:
                - name
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_remove_header
  "/api/browsers/{uuid}/headless":
    post:
      description: "Toggle headless mode for a browser. When switching from headless to visible, the browser is automatically docked into the layout."
      operationId: setHeadless
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                headless:
                  description: "true = headless (hidden, no UI), false = visible (docked into layout)"
                  type: boolean
              required:
                - headless
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set headless
      tags:
        - Browser
      x-mcp-tool: browser_set_headless
  "/api/browsers/{uuid}/history/go":
    post:
      description: "Move within the browser's session history by a relative delta (e.g. -1 = back, 1 = forward, -2 = back twice)."
      operationId: executeMcpAction6
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                delta:
                  description: "Relative history offset (negative = back, positive = forward)"
                  type: integer
              required:
                - delta
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_history_go
  "/api/browsers/{uuid}/hover":
    post:
      description: "Hover the pointer over an element (dispatches pointer/mouse enter+over+move events), triggering hover menus and tooltips. Scrolls the element into view first."
      operationId: executeMcpAction9
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                selector:
                  description: CSS selector of the element to hover
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              required:
                - selector
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_hover
  "/api/browsers/{uuid}/inject/script":
    post:
      description: Inject a script URL into the page
      operationId: addScriptToDocument
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                script_url:
                  description: URL of script to inject
                  type: string
              required:
                - script_url
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Add script to document
      tags:
        - Browser
      x-mcp-tool: browser_inject_script
  "/api/browsers/{uuid}/inject/style":
    post:
      description: Inject CSS into the page
      operationId: addStyleToDocument
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                css:
                  description: CSS code to inject
                  type: string
              required:
                - css
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Add style to document
      tags:
        - Browser
      x-mcp-tool: browser_inject_css
  "/api/browsers/{uuid}/last-dialog":
    post:
      description: "Get the most recent JavaScript dialog captured for this browser (only captured while a non-default dialog policy is active): {policy, kind, message, uri, captured}."
      operationId: executeMcpAction22
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_get_last_dialog
  "/api/browsers/{uuid}/links":
    post:
      description: "Extract all hyperlinks on the page as a compact list of {text, href, rel}. Deduplicated. A token-cheap navigation map instead of raw HTML."
      operationId: getLinks
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                frame:
                  description: Optional CSS selector for a same-origin iframe to read inside
                  type: string
                limit:
                  description: Max links to return (0 = no limit)
                  type: integer
                selector:
                  description: Optional CSS selector to scope link collection
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get links
      tags:
        - Browser
      x-mcp-tool: browser_get_links
  "/api/browsers/{uuid}/metadata":
    get:
      description: "Get page metadata: title, description, canonical URL, author, published/modified dates, language, favicon, Open Graph + Twitter cards, word count and reading time."
      operationId: getMetadata
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get metadata
      tags:
        - Browser
      x-mcp-tool: browser_get_metadata
  "/api/browsers/{uuid}/muted":
    post:
      description: "Mute or unmute a single browser's audio."
      operationId: executeMcpAction21
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                muted:
                  description: "true to mute, false to unmute (default true)"
                  type: boolean
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_set_muted
  "/api/browsers/{uuid}/navigate":
    post:
      description: Navigate a browser to a specific URL
      operationId: navigate
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                url:
                  description: URL to navigate to
                  type: string
              required:
                - url
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Navigate
      tags:
        - Browser
      x-mcp-tool: browser_navigate
  "/api/browsers/{uuid}/network":
    post:
      description: "List the network requests the page has made (from the Resource Timing API): url, type, protocol, size, and duration, plus navigation timing. Note: does NOT include status codes, headers, or response bodies."
      operationId: executeMcpAction12
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                filter:
                  description: Only requests whose URL contains this substring (optional)
                  type: string
                limit:
                  description: Max requests to return (0 = all)
                  type: integer
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_get_network
  "/api/browsers/{uuid}/offline":
    get:
      description: Get whether offline network emulation is active for a browser. Readable counterpart to browser_set_offline.
      operationId: getOffline
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get offline
      tags:
        - Browser
      x-mcp-tool: browser_get_offline
    post:
      description: Set offline mode for the browser
      operationId: setOffline
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                offline:
                  description: Enable offline mode
                  type: boolean
              required:
                - offline
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set offline
      tags:
        - Browser
      x-mcp-tool: browser_set_offline
  "/api/browsers/{uuid}/pdf":
    post:
      description: Print page to PDF
      operationId: printToPdf
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                file_path:
                  description: "File path to save PDF. WSL users: Use Windows paths (C:\\path\\file.pdf), accessible at /mnt/c/path/file.pdf"
                  type: string
              required:
                - file_path
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Print to pdf
      tags:
        - Browser
      x-mcp-tool: browser_print_pdf
  "/api/browsers/{uuid}/press-key":
    post:
      description: "Send a real (trusted) key press to the focused element via native input. Accepts a named key or a single printable character. Named keys (case-insensitive): Enter/Return, Tab, Escape/Esc, Backspace, Delete/Del, Space, Up/ArrowUp, Down/ArrowDown, Left/ArrowLeft, Right/ArrowRight, Home, End, PageUp, PageDown, Insert, and F1-F24. Use this for Enter-to-submit / Tab-between-fields where synthetic JS key events do not work. Modifier combos (Ctrl+A etc.) are not yet supported."
      operationId: executeMcpAction5
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                key:
                  description: "A named key from the tool description (e.g. Enter, Tab, ArrowDown, F5) or a single printable character. Anything else is rejected."
                  type: string
              required:
                - key
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_press_key
  "/api/browsers/{uuid}/read":
    post:
      description: "Read the page as clean, LLM-friendly content instead of raw HTML. Strips boilerplate (article mode), converts to markdown or plain text, and supports paging via max_chars + offset. Prefer this over browser_get_source."
      operationId: readContent
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                format:
                  description: Output format. Default markdown.
                  enum:
                    - markdown
                    - text
                  type: string
                frame:
                  description: Optional CSS selector for a same-origin iframe to read inside (cross-origin frames are not accessible)
                  type: string
                include_images:
                  description: Keep images in markdown (default false)
                  type: boolean
                include_links:
                  description: Keep links in markdown (default true)
                  type: boolean
                max_chars:
                  description: Max characters to return (0 = no limit). Use with offset to page.
                  type: integer
                mode:
                  description: article = main content only (boilerplate stripped); full = whole page cleaned; text = plain readable text (lightest). Default article.
                  enum:
                    - article
                    - full
                    - text
                  type: string
                offset:
                  description: Character offset to start from (for paging)
                  type: integer
                selector:
                  description: Optional CSS selector to scope extraction to a subtree
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Read content
      tags:
        - Browser
      x-mcp-tool: browser_read
  "/api/browsers/{uuid}/reload":
    post:
      description: Reload the current page
      operationId: reload
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Reload
      tags:
        - Browser
      x-mcp-tool: browser_reload
  "/api/browsers/{uuid}/right-click":
    post:
      description: Right-click (context-menu) an element by dispatching mousedown/mouseup/contextmenu with the secondary button. Scrolls the element into view first.
      operationId: executeMcpAction10
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                selector:
                  description: CSS selector of the element to right-click
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              required:
                - selector
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_right_click
  "/api/browsers/{uuid}/screenshot":
    post:
      description: "Take a screenshot of the page - returns base64-encoded PNG image data. Use save=true for batch operations to reduce token usage (returns UUID instead of image data, use browser_get_screenshot to retrieve)."
      operationId: takeScreenshot
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                format:
                  description: "Output format (default: 'jpeg')"
                  enum:
                    - png
                    - jpeg
                  type: string
                full_page:
                  description: "Capture entire scrollable page (default: false)"
                  type: boolean
                height:
                  description: "Viewport height in pixels (default: 1080)"
                  maximum: 16384
                  minimum: 1
                  type: number
                quality:
                  description: "JPEG quality (default: 90, ignored for PNG)"
                  maximum: 100
                  minimum: 0
                  type: number
                save:
                  description: "If true, store screenshot server-side and return UUID only (RECOMMENDED for batch operations to reduce token usage). Use browser_get_screenshot to retrieve. Screenshots expire after 5 minutes. (default: false)"
                  type: boolean
                width:
                  description: "Viewport width in pixels (default: 1920)"
                  maximum: 16384
                  minimum: 1
                  type: number
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Take screenshot
      tags:
        - Browser
      x-mcp-tool: browser_screenshot
  "/api/browsers/{uuid}/screenshot/element":
    post:
      description: "Screenshot a single element (scrolls it into view, captures just its bounding box). Returns an image. Far smaller than a full-page screenshot when you only need one component."
      operationId: executeMcpAction13
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                format:
                  description: Image format (default png)
                  enum:
                    - png
                    - jpeg
                  type: string
                quality:
                  description: JPEG quality (ignored for png)
                  maximum: 100
                  minimum: 0
                  type: integer
                selector:
                  description: CSS selector of the element to capture
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              required:
                - selector
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_screenshot_element
  "/api/browsers/{uuid}/scroll-by":
    post:
      description: Scroll by offset amount
      operationId: scrollBy
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                delta_x:
                  description: X offset
                  type: number
                delta_y:
                  description: Y offset
                  type: number
              required:
                - delta_x
                - delta_y
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Scroll by
      tags:
        - Browser
      x-mcp-tool: browser_scroll_by
  "/api/browsers/{uuid}/scroll-to":
    post:
      description: Scroll to specific coordinates
      operationId: scrollTo
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                x:
                  description: X coordinate
                  type: number
                y:
                  description: Y coordinate
                  type: number
              required:
                - x
                - y
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Scroll to
      tags:
        - Browser
      x-mcp-tool: browser_scroll_to
  "/api/browsers/{uuid}/set-value":
    post:
      description: Set value of an input element
      operationId: setInputValue
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                selector:
                  description: CSS selector of input element
                  type: string
                timeout_ms:
                  description: "Timeout in milliseconds (default: 5000)"
                  type: number
                value:
                  description: Value to set
                  type: string
              required:
                - selector
                - value
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set input value
      tags:
        - Browser
      x-mcp-tool: browser_set_value
  "/api/browsers/{uuid}/snapshot":
    post:
      description: "Token-efficient interactive snapshot: a compact list of visible interactive elements (links, buttons, inputs, selects) each with role, accessible name and a CSS selector usable by browser_click/browser_set_value, plus a heading outline. Far cheaper than a screenshot for driving a page."
      operationId: executeMcpAction3
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                frame:
                  description: Optional CSS selector for a same-origin iframe to snapshot inside
                  type: string
                limit:
                  description: Max interactive elements to return (0 = no limit)
                  type: integer
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_snapshot
  "/api/browsers/{uuid}/source":
    get:
      description: Get raw page source HTML. Token-heavy - prefer browser_read for clean content. Supports clean (strip script/style/svg/etc.) and max_chars + offset paging to avoid dumping the whole document.
      operationId: getPageSource
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get page source
      tags:
        - Browser
      x-mcp-tool: browser_get_source
  "/api/browsers/{uuid}/state":
    get:
      description: "Get comprehensive browser state as structured JSON: identity, navigation, zoom, muted, headless, offline, viewport, user agent, emulated device, dialog policy and custom request headers. One call returns everything the per-setting getters return individually."
      operationId: getBrowserState
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get browser state
      tags:
        - Browser
      x-mcp-tool: browser_get_state
  "/api/browsers/{uuid}/stop":
    post:
      description: Stop loading the current page
      operationId: stop
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Stop
      tags:
        - Browser
      x-mcp-tool: browser_stop
  "/api/browsers/{uuid}/storage":
    post:
      description: "Read the page's localStorage or sessionStorage. With a key, returns that value; without, returns all entries for the origin."
      operationId: executeMcpAction15
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                key:
                  description: Specific key to read (optional; omit for all entries)
                  type: string
                store:
                  description: Which store (default local)
                  enum:
                    - local
                    - session
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_get_storage
  "/api/browsers/{uuid}/storage/clear":
    post:
      description: "Clear the page's localStorage or sessionStorage. With a key, removes just that key; without, clears the whole store for the origin."
      operationId: executeMcpAction17
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                key:
                  description: Specific key to remove (optional; omit to clear all)
                  type: string
                store:
                  description: Which store (default local)
                  enum:
                    - local
                    - session
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_clear_storage
  "/api/browsers/{uuid}/storage/set":
    post:
      description: "Set a key in the page's localStorage or sessionStorage."
      operationId: executeMcpAction16
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                key:
                  description: Key to set
                  type: string
                store:
                  description: Which store (default local)
                  enum:
                    - local
                    - session
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
                value:
                  description: Value to store
                  type: string
              required:
                - key
                - value
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_set_storage
  "/api/browsers/{uuid}/submit":
    post:
      description: Submit a form
      operationId: submitForm
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                selector:
                  description: CSS selector of form element
                  type: string
                timeout_ms:
                  description: "Timeout in milliseconds (default: 5000)"
                  type: number
              required:
                - selector
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Submit form
      tags:
        - Browser
      x-mcp-tool: browser_submit_form
  "/api/browsers/{uuid}/tables":
    post:
      description: "Extract HTML tables as markdown (default), CSV, or JSON rows. Avoids the model parsing <td> soup."
      operationId: getTables
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                format:
                  description: Output format. Default markdown.
                  enum:
                    - markdown
                    - csv
                    - json
                  type: string
                selector:
                  description: Optional CSS selector to scope which tables are read
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get tables
      tags:
        - Browser
      x-mcp-tool: browser_get_tables
  "/api/browsers/{uuid}/title":
    get:
      description: Get current page title
      operationId: getCurrentTitle
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get current title
      tags:
        - Browser
      x-mcp-tool: browser_get_title
  "/api/browsers/{uuid}/type":
    post:
      description: Type text at current cursor position
      operationId: typeText
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                text:
                  description: Text to type
                  type: string
              required:
                - text
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Type text
      tags:
        - Browser
      x-mcp-tool: browser_type
  "/api/browsers/{uuid}/upload":
    post:
      description: "Attach files to a file <input> element. You supply the file CONTENT as base64 (not a local path), so the tool never reads the machine's disk. Each file is materialized in-page and assigned to the input."
      operationId: executeMcpAction11
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                files:
                  description: Files to attach
                  items:
                    properties:
                      content_base64:
                        description: "File contents, base64-encoded"
                        type: string
                      mime_type:
                        description: "MIME type (optional, default application/octet-stream)"
                        type: string
                      name:
                        description: Filename to present to the page
                        type: string
                    required:
                      - name
                      - content_base64
                    type: object
                  type: array
                selector:
                  description: "CSS selector of the <input type=file> element"
                  type: string
                timeout_ms:
                  description: "Max time to wait for the in-page result, in ms"
                  type: integer
              required:
                - selector
                - files
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_upload_file
  "/api/browsers/{uuid}/url":
    get:
      description: Get current URL of a browser
      operationId: getCurrentUrl
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get current url
      tags:
        - Browser
      x-mcp-tool: browser_get_url
  "/api/browsers/{uuid}/user-agent":
    get:
      description: "Get a browser's user agent as the engine reports it. Readable counterpart to browser_set_user_agent. With fingerprint identity enabled a CDP override takes precedence at the network layer, so this is not necessarily the string the site sees."
      operationId: getUserAgent
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get user agent
      tags:
        - Browser
      x-mcp-tool: browser_get_user_agent
    post:
      description: Set user agent for the browser
      operationId: setUserAgent
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                user_agent:
                  description: User agent string
                  type: string
              required:
                - user_agent
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set user agent
      tags:
        - Browser
      x-mcp-tool: browser_set_user_agent
  "/api/browsers/{uuid}/viewport":
    get:
      description: "Get a browser's live viewport size in pixels. Note this is the current size, not the last value passed to browser_set_viewport - docking and window resizing move it independently of the API."
      operationId: getViewportSize
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get viewport size
      tags:
        - Browser
      x-mcp-tool: browser_get_viewport
    post:
      description: Set viewport size for the browser
      operationId: setViewportSize
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                height:
                  description: Viewport height
                  type: number
                width:
                  description: Viewport width
                  type: number
              required:
                - width
                - height
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set viewport size
      tags:
        - Browser
      x-mcp-tool: browser_set_viewport
  "/api/browsers/{uuid}/wait/element":
    post:
      description: Wait for an element to appear on the page
      operationId: waitForElement
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                selector:
                  description: CSS selector of element to wait for
                  type: string
                timeout_ms:
                  description: "Timeout in milliseconds (default: 5000)"
                  type: number
              required:
                - selector
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Wait for element
      tags:
        - Browser
      x-mcp-tool: browser_wait_for_element
  "/api/browsers/{uuid}/wait/load":
    post:
      description: Wait for page to finish loading
      operationId: waitForPageLoad
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                timeout_ms:
                  description: "Timeout in milliseconds (default: 30000)"
                  type: number
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Wait for page load
      tags:
        - Browser
      x-mcp-tool: browser_wait_for_load
  "/api/browsers/{uuid}/wait/network-idle":
    post:
      description: "Wait until the page has finished loading and no new network requests have started for a quiet period. Use after navigation or an action that triggers async loading, before reading/snapshotting."
      operationId: executeMcpAction8
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                idle_ms:
                  description: Quiet period with no new requests that counts as idle (default 500)
                  type: integer
                timeout_ms:
                  description: Max time to wait (default 30000)
                  type: integer
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Browser
      x-mcp-tool: browser_wait_for_network_idle
  "/api/browsers/{uuid}/zoom":
    get:
      description: Get current zoom factor for the browser
      operationId: getZoom
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get zoom
      tags:
        - Browser
      x-mcp-tool: browser_get_zoom
    post:
      description: Set zoom factor for the browser
      operationId: setZoom
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                factor:
                  description: "Zoom factor (1.0 = 100%)"
                  type: number
              required:
                - factor
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set zoom
      tags:
        - Browser
      x-mcp-tool: browser_set_zoom
  /api/downloads:
    get:
      description: "List active/recent downloads (uuid, filename, url, status, bytes, speed). Supports limit + offset paging; response includes total."
      operationId: listDownloads
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List downloads
      tags:
        - Download
      x-mcp-tool: download_list
  /api/downloads/clear-all:
    post:
      description: Remove every download (cancels in-flight first)
      operationId: clearAll
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Clear all
      tags:
        - Download
      x-mcp-tool: download_clear_all
  /api/downloads/clear-completed:
    post:
      description: Remove all completed/cancelled/failed downloads
      operationId: clearCompleted
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Clear completed
      tags:
        - Download
      x-mcp-tool: download_clear_completed
  /api/downloads/start:
    post:
      description: "Start a managed download to the app's configured download directory and return its UUID and initial state. The transfer can be observed and controlled with the other download tools. There is intentionally no destination-path parameter, and the request does not use a browser login session."
      operationId: startDownload
      requestBody:
        content:
          application/json:
            schema:
              properties:
                url:
                  description: http(s) URL of the file to download
                  type: string
              required:
                - url
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Start download
      tags:
        - Download
      x-mcp-tool: download_start
  "/api/downloads/{uuid}":
    delete:
      description: Remove a download from the list (cancels first if active)
      operationId: removeDownload
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Remove download
      tags:
        - Download
      x-mcp-tool: download_remove
    get:
      description: Get one download by uuid
      operationId: getDownload
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get download
      tags:
        - Download
      x-mcp-tool: download_get
  "/api/downloads/{uuid}/cancel":
    post:
      description: Cancel an in-flight download
      operationId: cancelDownload
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                uuid:
                  description: Download uuid
                  type: string
              required:
                - uuid
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Cancel download
      tags:
        - Download
      x-mcp-tool: download_cancel
  "/api/downloads/{uuid}/pause":
    post:
      description: Pause an in-flight download
      operationId: pauseDownload
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                uuid:
                  description: Download uuid
                  type: string
              required:
                - uuid
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Pause download
      tags:
        - Download
      x-mcp-tool: download_pause
  "/api/downloads/{uuid}/resume":
    post:
      description: Resume a paused download
      operationId: resumeDownload
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                uuid:
                  description: Download uuid
                  type: string
              required:
                - uuid
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Resume download
      tags:
        - Download
      x-mcp-tool: download_resume
  /api/history:
    delete:
      description: Clear all browsing history across every profile
      operationId: clearHistory
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Clear history
      tags:
        - History
      x-mcp-tool: history_clear
    get:
      description: "List/search browsing history visits (visit_id, uri, title, host, profile, visit_time, counts)"
      operationId: listHistory
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List history
      tags:
        - History
      x-mcp-tool: history_list
  /api/history/profiles:
    get:
      description: List distinct profiles that have history visits
      operationId: listProfilesGet
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List profiles
      tags:
        - History
      x-mcp-tool: history_profiles
  /api/history/remove-uri:
    post:
      description: Remove all history for a specific URL
      operationId: removeUri
      requestBody:
        content:
          application/json:
            schema:
              properties:
                uri:
                  description: Exact URL to forget
                  type: string
              required:
                - uri
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Remove uri
      tags:
        - History
      x-mcp-tool: history_remove_uri
  "/api/history/visit/{visitId}":
    delete:
      description: Delete a single history visit by visit_id
      operationId: deleteVisit
      parameters:
        - in: path
          name: visitId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Delete visit
      tags:
        - History
      x-mcp-tool: history_delete_visit
  /api/layouts:
    get:
      description: List all available layouts/docks
      operationId: listLayouts
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List layouts
      tags:
        - Layout
      x-mcp-tool: layout_list
    post:
      description: Create a new layout/dock
      operationId: addLayout
      requestBody:
        content:
          application/json:
            schema:
              properties:
                name:
                  description: Name for the new layout
                  type: string
              required:
                - name
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Add layout
      tags:
        - Layout
      x-mcp-tool: layout_create
  /api/layouts/close-all:
    post:
      description: "Close all dock widgets of specified types. Use to bulk-close browsers, native apps, video players, etc."
      operationId: closeAllDocks
      requestBody:
        content:
          application/json:
            schema:
              properties:
                layout_uuid:
                  description: "Layout UUID to close widgets in (optional, defaults to all layouts)"
                  type: string
                types:
                  description: "Dock types to close. If omitted, closes every type."
                  items:
                    enum:
                      - browser
                      - native
                      - video
                      - bookmarks
                      - settings
                    type: string
                  type: array
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Close all docks
      tags:
        - Layout
      x-mcp-tool: layout_close_all
  "/api/layouts/{uuid}":
    delete:
      description: Delete a layout/dock
      operationId: deleteLayout
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Delete layout
      tags:
        - Layout
      x-mcp-tool: layout_delete
    get:
      description: "Get information about a layout, including the readable counterparts to layout_set_locked, layout_set_resolution, layout_toggle_fullscreen and layout_set_mute_all."
      operationId: getLayout
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get layout
      tags:
        - Layout
      x-mcp-tool: layout_get_info
    put:
      description: Rename a layout/dock
      operationId: renameLayout
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                name:
                  description: New name for the layout
                  type: string
              required:
                - name
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Rename layout
      tags:
        - Layout
      x-mcp-tool: layout_rename
  "/api/layouts/{uuid}/apps":
    get:
      description: Get applications in a layout
      operationId: getApps
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get apps
      tags:
        - Layout
      x-mcp-tool: layout_get_apps
  "/api/layouts/{uuid}/browsers":
    get:
      description: Get browsers in a layout
      operationId: getBrowsers
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get browsers
      tags:
        - Layout
      x-mcp-tool: layout_get_browsers
  "/api/layouts/{uuid}/equalize":
    post:
      description: Equalize the dock splitters so the tiled docks share space evenly (tidy up the layout).
      operationId: executeMcpAction26
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Layout
      x-mcp-tool: layout_equalize
  "/api/layouts/{uuid}/fullscreen/toggle":
    post:
      description: Toggle fullscreen mode for the layout window.
      operationId: executeMcpAction29
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Layout
      x-mcp-tool: layout_toggle_fullscreen
  "/api/layouts/{uuid}/locked":
    post:
      description: "Lock or unlock a layout. A locked layout prevents docks from being moved, resized, or closed."
      operationId: executeMcpAction23
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                locked:
                  description: "true to lock, false to unlock (default true)"
                  type: boolean
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Layout
      x-mcp-tool: layout_set_locked
  "/api/layouts/{uuid}/mute-all":
    post:
      description: Mute or unmute all browsers in the layout at once.
      operationId: executeMcpAction28
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                muted:
                  description: "true to mute all, false to unmute (default true)"
                  type: boolean
              type: object
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Layout
      x-mcp-tool: layout_set_mute_all
  "/api/layouts/{uuid}/open-dock":
    post:
      description: "Open a non-browser dock in the layout: a downloads panel, history panel, or new-window panel."
      operationId: executeMcpAction27
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                type:
                  description: Which dock to open
                  enum:
                    - downloads
                    - history
                    - new_window
                  type: string
              required:
                - type
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Layout
      x-mcp-tool: layout_open_dock
  "/api/layouts/{uuid}/resolution":
    post:
      description: Set a fixed pixel resolution for the layout window (useful for consistent screenshots or device-size testing).
      operationId: executeMcpAction24
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                height:
                  description: Height in pixels
                  type: integer
                width:
                  description: Width in pixels
                  type: integer
              required:
                - width
                - height
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Layout
      x-mcp-tool: layout_set_resolution
  "/api/layouts/{uuid}/resolution/reset":
    post:
      description: Clear a custom layout resolution and return the window to free/auto sizing.
      operationId: executeMcpAction25
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute mcp action
      tags:
        - Layout
      x-mcp-tool: layout_reset_resolution
  "/api/layouts/{uuid}/screenshot":
    get:
      description: Take a screenshot of the entire layout window at its exact dimensions
      operationId: getLayoutScreenshot
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get layout screenshot
      tags:
        - Layout
      x-mcp-tool: layout_screenshot
  /api/permissions:
    get:
      description: "List all remembered site permission decisions (host, permission_type, label, allowed)"
      operationId: listPermissions
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List permissions
      tags:
        - Permission
      x-mcp-tool: permission_list
  /api/permissions/clear:
    post:
      description: Forget every remembered permission decision for all hosts
      operationId: clearPermissions
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Clear permissions
      tags:
        - Permission
      x-mcp-tool: permission_clear
  /api/permissions/remove:
    post:
      description: Forget one remembered permission decision for a host. permission_type is the stored value from permission_list or permission_list_types
      operationId: removePermission
      requestBody:
        content:
          application/json:
            schema:
              properties:
                host:
                  description: Host the permission was remembered for
                  type: string
                permission_type:
                  description: Stored permission type (from permission_list)
                  type: string
              required:
                - host
                - permission_type
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Remove permission
      tags:
        - Permission
      x-mcp-tool: permission_remove
  /api/permissions/remove-host:
    post:
      description: Forget every remembered permission decision for a host
      operationId: removeHostPermissions
      requestBody:
        content:
          application/json:
            schema:
              properties:
                host:
                  description: Host to forget all permissions for
                  type: string
              required:
                - host
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Remove host permissions
      tags:
        - Permission
      x-mcp-tool: permission_remove_host
  /api/permissions/set:
    post:
      description: "Remember a permission decision for a host, as if the user had answered a prompt with 'remember this choice'. Takes effect immediately, without a restart."
      operationId: setPermission
      requestBody:
        content:
          application/json:
            schema:
              properties:
                allowed:
                  description: "true to grant, false to deny"
                  type: boolean
                host:
                  description: "Host the decision applies to, e.g. example.com"
                  type: string
                permission_type:
                  description: Permission type (from permission_list_types)
                  type: string
              required:
                - host
                - permission_type
                - allowed
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set permission
      tags:
        - Permission
      x-mcp-tool: permission_set
  /api/permissions/types:
    get:
      description: "List every permission type that can be granted or denied, with a human-readable label. Call this to discover valid permission_type values for permission_set and permission_remove."
      operationId: listPermissionTypes
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List permission types
      tags:
        - Permission
      x-mcp-tool: permission_list_types
  /api/profiles:
    get:
      description: "List all browser profiles: which one is the default, which are temporary, and which have a proxy configured. Does not return proxy values - the stored form embeds credentials."
      operationId: listProfiles
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List profiles
      tags:
        - Layout
      x-mcp-tool: profile_list
    post:
      description: Create a new browser profile
      operationId: addProfile
      requestBody:
        content:
          application/json:
            schema:
              properties:
                name:
                  description: Name for the new profile
                  type: string
              required:
                - name
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Add profile
      tags:
        - Layout
      x-mcp-tool: profile_create
  /api/profiles/default:
    get:
      description: Get default browser profile
      operationId: getDefaultProfile
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get default profile
      tags:
        - Layout
      x-mcp-tool: profile_get_default
  /api/profiles/temporary:
    post:
      description: Create a temporary browser profile
      operationId: addTemporaryProfile
      requestBody:
        content:
          application/json:
            schema:
              properties:
                name:
                  description: Name for the temporary profile
                  type: string
              required:
                - name
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Add temporary profile
      tags:
        - Layout
      x-mcp-tool: profile_create_temporary
  "/api/profiles/{name}":
    delete:
      description: Delete a browser profile
      operationId: deleteProfile
      parameters:
        - in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Delete profile
      tags:
        - Layout
      x-mcp-tool: profile_delete
    put:
      description: Rename a browser profile (automatically handles both regular and temporary profiles)
      operationId: renameProfile
      parameters:
        - in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                new_name:
                  description: New profile name
                  type: string
                old_name:
                  description: Current profile name
                  type: string
              required:
                - old_name
                - new_name
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Rename profile
      tags:
        - Layout
      x-mcp-tool: profile_rename
  "/api/profiles/{name}/default":
    post:
      description: Set default browser profile
      operationId: setDefaultProfile
      parameters:
        - in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                name:
                  description: Profile name to set as default
                  type: string
              required:
                - name
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set default profile
      tags:
        - Layout
      x-mcp-tool: profile_set_default
  "/api/profiles/{name}/proxy":
    get:
      description: "Get the proxy configured for a browser profile, with any credentials stripped. Returns scheme://host:port only - the stored form embeds user:pass, which is never returned over the API."
      operationId: getProfileProxy
      parameters:
        - in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get profile proxy
      tags:
        - Layout
      x-mcp-tool: profile_get_proxy
    post:
      description: Set the proxy address for a browser profile. Affects new browsers created with this profile (already-running browsers are unaffected).
      operationId: setProfileProxy
      parameters:
        - in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                name:
                  description: Profile name to set proxy for
                  type: string
                proxy:
                  description: "Proxy address (e.g. http://host:port or socks5://host:port)"
                  type: string
              required:
                - name
                - proxy
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set profile proxy
      tags:
        - Layout
      x-mcp-tool: profile_set_proxy
  "/api/profiles/{name}/temporary":
    put:
      description: Rename a browser profile (automatically handles both regular and temporary profiles)
      operationId: renameTemporaryProfile
      parameters:
        - in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                new_name:
                  description: New profile name
                  type: string
                old_name:
                  description: Current profile name
                  type: string
              required:
                - old_name
                - new_name
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Rename temporary profile
      tags:
        - Layout
      x-mcp-tool: profile_rename
  /api/search:
    post:
      description: Run a search query in a new browser using the default (or specified) search engine
      operationId: search
      requestBody:
        content:
          application/json:
            schema:
              properties:
                engine_id:
                  description: "Search engine id from settings_list_search_engines (optional, defaults to the configured default)"
                  type: integer
                layout_uuid:
                  description: "Layout UUID (optional, defaults to first layout)"
                  type: string
                profile:
                  description: Profile to open under (optional)
                  type: string
                query:
                  description: Search terms
                  type: string
              required:
                - query
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Search
      tags:
        - Search
      x-mcp-tool: search
  /api/settings:
    get:
      description: "Get current values of application settings (the readable counterpart to settings_set) - behaviour/features, appearance, browsing, and API-surface flags. The API key/secret is never returned."
      operationId: getSettings
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get settings
      tags:
        - Settings
      x-mcp-tool: settings_get
    post:
      description: "Set an application setting by key. Call settings_list first for each key's type, permitted values, bounds and whether it is writable."
      operationId: setSetting
      requestBody:
        content:
          application/json:
            schema:
              properties:
                key:
                  description: Writable setting key (see settings_list)
                  enum:
                    - launch_on_startup
                    - scripts_enabled
                    - trading_tools_enabled
                    - privacy_tools_enabled
                    - floating_windows_enabled
                    - theme_id
                    - web_content_color_scheme
                    - icon_scale
                    - dock_divider_thickness
                    - dock_titlebar_visibility
                    - titlebar_show_profile
                    - titlebar_show_proxy
                    - default_search_engine_id
                    - default_zoom
                    - download_directory
                    - tracking_prevention
                    - auto_suggest_interval_ms
                  type: string
                value:
                  description: Setting value; type depends on the key (see settings_list)
              required:
                - key
                - value
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set setting
      tags:
        - Settings
      x-mcp-tool: settings_set
  /api/settings/list:
    get:
      description: "List every application setting with its type, whether it is writable, its current value, permitted values and bounds. Use this to discover valid keys before calling settings_set."
      operationId: listSettings
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List settings
      tags:
        - Settings
      x-mcp-tool: settings_list
  /api/settings/search-engines:
    get:
      description: "List configured search engines (id, name, url). The id is what settings_set writes to default_search_engine_id and what search accepts as engine_id."
      operationId: listSearchEngines
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List search engines
      tags:
        - Settings
      x-mcp-tool: search_engine_list
    post:
      description: "Add a search engine. The URL must contain the {searchTerms} placeholder where the query is inserted. A bare host gains an https:// prefix. Both name and URL must be unique."
      operationId: createSearchEngine
      requestBody:
        content:
          application/json:
            schema:
              properties:
                name:
                  description: "Display name, must not collide with an existing engine"
                  type: string
                url:
                  description: "Search URL containing {searchTerms}, e.g. https://www.google.com/search?q={searchTerms}"
                  type: string
              required:
                - name
                - url
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Create search engine
      tags:
        - Settings
      x-mcp-tool: search_engine_create
  "/api/settings/search-engines/{p1}":
    delete:
      description: Remove a search engine. Refused for the engine currently set as default - point default_search_engine_id at another engine first.
      operationId: deleteSearchEngine
      parameters:
        - in: path
          name: p1
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Delete search engine
      tags:
        - Settings
      x-mcp-tool: search_engine_delete
    patch:
      description: "Rename a search engine, change its URL, or both. Omit a field to leave it unchanged. A changed URL must still contain the {searchTerms} placeholder."
      operationId: updateSearchEngine
      parameters:
        - in: path
          name: p1
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                id:
                  description: Engine id from search_engine_list
                  type: integer
                name:
                  description: New display name. Omit to leave unchanged.
                  type: string
                url:
                  description: "New search URL containing {searchTerms}. Omit to leave unchanged."
                  type: string
              required:
                - id
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Update search engine
      tags:
        - Settings
      x-mcp-tool: search_engine_update
  /api/settings/themes:
    get:
      description: "List available themes (id, name, is_dark, is_core). The id is what settings_set writes to theme_id."
      operationId: listThemes
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List themes
      tags:
        - Settings
      x-mcp-tool: theme_list
  /api/workspaces:
    get:
      description: List all available workspaces
      operationId: listWorkspaces
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List workspaces
      tags:
        - Workspace
      x-mcp-tool: workspace_list
    post:
      description: Create a new workspace
      operationId: addWorkspace
      requestBody:
        content:
          application/json:
            schema:
              properties:
                name:
                  description: Name for the new workspace
                  type: string
              required:
                - name
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Add workspace
      tags:
        - Workspace
      x-mcp-tool: workspace_create
  /api/workspaces/current:
    get:
      description: Get the currently active workspace
      operationId: getCurrentWorkspace
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get current workspace
      tags:
        - Workspace
      x-mcp-tool: workspace_get_current
  /api/workspaces/startup:
    get:
      description: Get the startup workspace information
      operationId: getStartupWorkspace
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get startup workspace
      tags:
        - Workspace
      x-mcp-tool: workspace_get_startup
  "/api/workspaces/{id}":
    delete:
      description: Delete a workspace
      operationId: deleteWorkspace
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Delete workspace
      tags:
        - Workspace
      x-mcp-tool: workspace_delete
    get:
      description: Get information about a workspace
      operationId: getWorkspaceInfo
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get workspace info
      tags:
        - Workspace
      x-mcp-tool: workspace_get_info
    put:
      description: Rename a workspace
      operationId: renameWorkspace
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                name:
                  description: Name for the new workspace
                  type: string
              required:
                - name
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Rename workspace
      tags:
        - Workspace
      x-mcp-tool: workspace_rename
  "/api/workspaces/{id}/homepage":
    post:
      description: Set workspace homepage URL
      operationId: setWorkspaceHomePage
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                url:
                  description: Homepage URL
                  type: string
              required:
                - url
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set workspace home page
      tags:
        - Workspace
      x-mcp-tool: workspace_set_homepage
  "/api/workspaces/{id}/layouts":
    get:
      description: Get all layouts associated with a workspace
      operationId: getWorkspaceLayouts
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get workspace layouts
      tags:
        - Workspace
      x-mcp-tool: workspace_get_layouts
  "/api/workspaces/{id}/startup":
    post:
      description: Set workspace as startup workspace
      operationId: setStartupWorkspace
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set startup workspace
      tags:
        - Workspace
      x-mcp-tool: workspace_set_startup
  "/api/workspaces/{id}/switch":
    post:
      description: Switch to a different workspace
      operationId: switchWorkspace
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Switch workspace
      tags:
        - Workspace
      x-mcp-tool: workspace_switch
  /json:
    get:
      operationId: getTargetListAlias
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: Raw Chrome DevTools Protocol JSON.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
      summary: Get target list alias
      tags:
        - CDP
  "/json/close/{targetId}":
    get:
      operationId: closeTarget
      parameters:
        - in: path
          name: targetId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: Raw Chrome DevTools Protocol JSON.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
      summary: Close target
      tags:
        - CDP
  /json/list:
    get:
      operationId: getTargetList
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: Raw Chrome DevTools Protocol JSON.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
      summary: Get target list
      tags:
        - CDP
  /json/new:
    get:
      operationId: createTarget
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: Raw Chrome DevTools Protocol JSON.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
      summary: Create target
      tags:
        - CDP
  /json/protocol:
    get:
      operationId: getProtocol
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: Raw Chrome DevTools Protocol JSON.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
      summary: Get protocol
      tags:
        - CDP
  /json/version:
    get:
      operationId: getVersion
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: Raw Chrome DevTools Protocol JSON.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
      summary: Get version
      tags:
        - CDP
  /mcp:
    delete:
      operationId: handleMCPEndpointDelete
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Handle MCPEndpoint
      tags:
        - MCP
    get:
      operationId: handleMCPEndpoint
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Handle MCPEndpoint
      tags:
        - MCP
    post:
      operationId: handleMCPEndpointPost
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Handle MCPEndpoint
      tags:
        - MCP
  /mcp/test:
    get:
      operationId: testEndpoint
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BaseSuccess"
          description: Success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Test endpoint
      tags:
        - MCP
  /wd/hub/session:
    post:
      description: Create a new browser instance
      operationId: newSession
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: New session
      tags:
        - Selenium
      x-mcp-tool: browser_create
  "/wd/hub/session/{sessionId}":
    delete:
      description: Close a browser instance
      operationId: deleteSession
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Delete session
      tags:
        - Selenium
      x-mcp-tool: browser_close
    get:
      description: Navigate a browser to a specific URL
      operationId: getSessionCapabilities
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get session capabilities
      tags:
        - Selenium
      x-mcp-tool: browser_navigate
  "/wd/hub/session/{sessionId}/back":
    post:
      description: Navigate browser back in history
      operationId: back
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Back
      tags:
        - Selenium
      x-mcp-tool: browser_go_back
  "/wd/hub/session/{sessionId}/cookie":
    delete:
      description: Clear all cookies for the browser
      operationId: deleteAllCookies
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Delete all cookies
      tags:
        - Selenium
      x-mcp-tool: browser_clear_cookies
    get:
      description: Get all cookies for the browser
      operationId: getAllCookiesGet
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get all cookies
      tags:
        - Selenium
      x-mcp-tool: browser_get_all_cookies
    post:
      description: Set a cookie for the browser
      operationId: addCookie
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Add cookie
      tags:
        - Selenium
      x-mcp-tool: browser_set_cookie
  "/wd/hub/session/{sessionId}/cookie/{name}":
    delete:
      description: Delete a specific cookie from the browser
      operationId: deleteCookieDelete
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
        - in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Delete cookie
      tags:
        - Selenium
      x-mcp-tool: browser_delete_cookie
    get:
      description: Get a cookie value from the browser
      operationId: getNamedCookie
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
        - in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get named cookie
      tags:
        - Selenium
      x-mcp-tool: browser_get_cookie
  "/wd/hub/session/{sessionId}/element":
    post:
      description: Find visible interactive elements whose role or accessible name matches a text query. Returns matches with CSS selectors usable by browser_click/browser_set_value.
      operationId: findElement
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Find element
      tags:
        - Selenium
      x-mcp-tool: browser_find
  "/wd/hub/session/{sessionId}/element/active":
    get:
      description: Find visible interactive elements whose role or accessible name matches a text query. Returns matches with CSS selectors usable by browser_click/browser_set_value.
      operationId: getActiveElement
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get active element
      tags:
        - Selenium
      x-mcp-tool: browser_find
  "/wd/hub/session/{sessionId}/element/{elementId}/attribute/{name}":
    get:
      description: Get an attribute value of an element by CSS selector
      operationId: getElementAttributeGet
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
        - in: path
          name: elementId
          required: true
          schema:
            type: string
        - in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get element attribute
      tags:
        - Selenium
      x-mcp-tool: browser_get_element_attribute
  "/wd/hub/session/{sessionId}/element/{elementId}/clear":
    post:
      description: Clear an input field
      operationId: elementClear
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
        - in: path
          name: elementId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Element clear
      tags:
        - Selenium
      x-mcp-tool: browser_clear_input
  "/wd/hub/session/{sessionId}/element/{elementId}/click":
    post:
      description: Click an element by CSS selector
      operationId: elementClick
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
        - in: path
          name: elementId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Element click
      tags:
        - Selenium
      x-mcp-tool: browser_click
  "/wd/hub/session/{sessionId}/element/{elementId}/css/{propertyName}":
    get:
      description: Get an attribute value of an element by CSS selector
      operationId: getElementCssValue
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
        - in: path
          name: elementId
          required: true
          schema:
            type: string
        - in: path
          name: propertyName
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get element css value
      tags:
        - Selenium
      x-mcp-tool: browser_get_element_attribute
  "/wd/hub/session/{sessionId}/element/{elementId}/element":
    post:
      description: Find visible interactive elements whose role or accessible name matches a text query. Returns matches with CSS selectors usable by browser_click/browser_set_value.
      operationId: findElementFromElement
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
        - in: path
          name: elementId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Find element from element
      tags:
        - Selenium
      x-mcp-tool: browser_find
  "/wd/hub/session/{sessionId}/element/{elementId}/elements":
    post:
      description: Find visible interactive elements whose role or accessible name matches a text query. Returns matches with CSS selectors usable by browser_click/browser_set_value.
      operationId: findElementsFromElement
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
        - in: path
          name: elementId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Find elements from element
      tags:
        - Selenium
      x-mcp-tool: browser_find
  "/wd/hub/session/{sessionId}/element/{elementId}/enabled":
    get:
      description: Check if an element is visible on the page
      operationId: isElementEnabled
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
        - in: path
          name: elementId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Is element enabled
      tags:
        - Selenium
      x-mcp-tool: browser_is_element_visible
  "/wd/hub/session/{sessionId}/element/{elementId}/name":
    get:
      description: Get the text content of an element by CSS selector
      operationId: getElementTagName
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
        - in: path
          name: elementId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get element tag name
      tags:
        - Selenium
      x-mcp-tool: browser_get_element_text
  "/wd/hub/session/{sessionId}/element/{elementId}/property/{name}":
    get:
      description: Get an attribute value of an element by CSS selector
      operationId: getElementProperty
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
        - in: path
          name: elementId
          required: true
          schema:
            type: string
        - in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get element property
      tags:
        - Selenium
      x-mcp-tool: browser_get_element_attribute
  "/wd/hub/session/{sessionId}/element/{elementId}/rect":
    get:
      description: "Get an element's bounding box (x/y/width/height/top/left/bottom/right) and key computed styles (display, visibility, opacity, font-size, color, background, z-index, position). Useful for spatial reasoning."
      operationId: getElementRect
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
        - in: path
          name: elementId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get element rect
      tags:
        - Selenium
      x-mcp-tool: browser_get_element_box
  "/wd/hub/session/{sessionId}/element/{elementId}/screenshot":
    get:
      description: "Screenshot a single element (scrolls it into view, captures just its bounding box). Returns an image. Far smaller than a full-page screenshot when you only need one component."
      operationId: takeElementScreenshot
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
        - in: path
          name: elementId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Take element screenshot
      tags:
        - Selenium
      x-mcp-tool: browser_screenshot_element
  "/wd/hub/session/{sessionId}/element/{elementId}/selected":
    get:
      description: Check if an element is visible on the page
      operationId: isElementSelected
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
        - in: path
          name: elementId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Is element selected
      tags:
        - Selenium
      x-mcp-tool: browser_is_element_visible
  "/wd/hub/session/{sessionId}/element/{elementId}/text":
    get:
      description: Get the text content of an element by CSS selector
      operationId: getElementTextGet
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
        - in: path
          name: elementId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get element text
      tags:
        - Selenium
      x-mcp-tool: browser_get_element_text
  "/wd/hub/session/{sessionId}/element/{elementId}/value":
    post:
      description: Type text at current cursor position
      operationId: elementSendKeys
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
        - in: path
          name: elementId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Element send keys
      tags:
        - Selenium
      x-mcp-tool: browser_type
  "/wd/hub/session/{sessionId}/elements":
    post:
      description: Find visible interactive elements whose role or accessible name matches a text query. Returns matches with CSS selectors usable by browser_click/browser_set_value.
      operationId: findElements
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Find elements
      tags:
        - Selenium
      x-mcp-tool: browser_find
  "/wd/hub/session/{sessionId}/execute/async":
    post:
      description: Execute JavaScript code in browser
      operationId: executeAsyncScript
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute async script
      tags:
        - Selenium
      x-mcp-tool: browser_execute_js
  "/wd/hub/session/{sessionId}/execute/sync":
    post:
      description: Execute JavaScript code in browser
      operationId: executeScript
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Execute script
      tags:
        - Selenium
      x-mcp-tool: browser_execute_js
  "/wd/hub/session/{sessionId}/forward":
    post:
      description: Navigate browser forward in history
      operationId: forward
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Forward
      tags:
        - Selenium
      x-mcp-tool: browser_go_forward
  "/wd/hub/session/{sessionId}/metadock/console":
    get:
      description: Get console messages from the browser
      operationId: getConsole
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get console
      tags:
        - Selenium
      x-mcp-tool: browser_get_console
  "/wd/hub/session/{sessionId}/metadock/console/clear":
    post:
      description: Clear console messages for the browser
      operationId: clearConsole
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Clear console
      tags:
        - Selenium
      x-mcp-tool: browser_clear_console
  "/wd/hub/session/{sessionId}/metadock/device":
    post:
      description: Enable device emulation for the browser
      operationId: emulateDevicePost
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Emulate device
      tags:
        - Selenium
      x-mcp-tool: browser_emulate_device
  "/wd/hub/session/{sessionId}/metadock/device/clear":
    post:
      description: Clear device emulation for the browser
      operationId: clearDeviceEmulationPost
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Clear device emulation
      tags:
        - Selenium
      x-mcp-tool: browser_clear_device_emulation
  "/wd/hub/session/{sessionId}/metadock/fingerprint":
    get:
      description: Navigate a browser to a specific URL
      operationId: getFingerprintGet
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get fingerprint
      tags:
        - Selenium
      x-mcp-tool: browser_navigate
    post:
      description: Navigate a browser to a specific URL
      operationId: setFingerprintPost
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set fingerprint
      tags:
        - Selenium
      x-mcp-tool: browser_navigate
  "/wd/hub/session/{sessionId}/metadock/fingerprint/clear":
    post:
      description: Clear an input field
      operationId: clearFingerprintPost
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Clear fingerprint
      tags:
        - Selenium
      x-mcp-tool: browser_clear_input
  "/wd/hub/session/{sessionId}/metadock/geolocation":
    post:
      description: Set geolocation for the browser
      operationId: setGeolocationPost
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set geolocation
      tags:
        - Selenium
      x-mcp-tool: browser_set_geolocation
  "/wd/hub/session/{sessionId}/metadock/geolocation/clear":
    post:
      description: Clear geolocation override for the browser
      operationId: clearGeolocationPost
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Clear geolocation
      tags:
        - Selenium
      x-mcp-tool: browser_clear_geolocation
  "/wd/hub/session/{sessionId}/metadock/headless":
    post:
      description: "Toggle headless mode for a browser. When switching from headless to visible, the browser is automatically docked into the layout."
      operationId: setHeadlessPost
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set headless
      tags:
        - Selenium
      x-mcp-tool: browser_set_headless
  "/wd/hub/session/{sessionId}/metadock/inject/css":
    post:
      description: Inject CSS into the page
      operationId: injectCss
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Inject css
      tags:
        - Selenium
      x-mcp-tool: browser_inject_css
  "/wd/hub/session/{sessionId}/metadock/inject/script":
    post:
      description: Inject a script URL into the page
      operationId: injectScript
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Inject script
      tags:
        - Selenium
      x-mcp-tool: browser_inject_script
  "/wd/hub/session/{sessionId}/metadock/offline":
    post:
      description: Set offline mode for the browser
      operationId: setOfflinePost
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set offline
      tags:
        - Selenium
      x-mcp-tool: browser_set_offline
  "/wd/hub/session/{sessionId}/metadock/pdf":
    post:
      description: Print page to PDF
      operationId: printPdf
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Print pdf
      tags:
        - Selenium
      x-mcp-tool: browser_print_pdf
  "/wd/hub/session/{sessionId}/metadock/permissions":
    get:
      description: Navigate a browser to a specific URL
      operationId: listSitePermissions
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: List site permissions
      tags:
        - Selenium
      x-mcp-tool: browser_navigate
  "/wd/hub/session/{sessionId}/metadock/permissions/clear":
    post:
      description: Clear an input field
      operationId: clearSitePermissions
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Clear site permissions
      tags:
        - Selenium
      x-mcp-tool: browser_clear_input
  "/wd/hub/session/{sessionId}/metadock/permissions/remove":
    post:
      description: Navigate a browser to a specific URL
      operationId: removeSitePermission
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Remove site permission
      tags:
        - Selenium
      x-mcp-tool: browser_navigate
  "/wd/hub/session/{sessionId}/metadock/permissions/remove-host":
    post:
      description: Navigate a browser to a specific URL
      operationId: removeSiteHostPermissions
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Remove site host permissions
      tags:
        - Selenium
      x-mcp-tool: browser_navigate
  "/wd/hub/session/{sessionId}/metadock/profile/proxy":
    get:
      description: "Get the proxy configured for a browser profile, with any credentials stripped. Returns scheme://host:port only - the stored form embeds user:pass, which is never returned over the API."
      operationId: getProfileProxyGet
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get profile proxy
      tags:
        - Selenium
      x-mcp-tool: profile_get_proxy
    post:
      description: Set the proxy address for a browser profile. Affects new browsers created with this profile (already-running browsers are unaffected).
      operationId: setProfileProxyPost
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set profile proxy
      tags:
        - Selenium
      x-mcp-tool: profile_set_proxy
  "/wd/hub/session/{sessionId}/metadock/scroll-by":
    post:
      description: Navigate a browser to a specific URL
      operationId: scrollByPost
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Scroll by
      tags:
        - Selenium
      x-mcp-tool: browser_navigate
  "/wd/hub/session/{sessionId}/metadock/scroll-to":
    post:
      description: Navigate a browser to a specific URL
      operationId: scrollToPost
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Scroll to
      tags:
        - Selenium
      x-mcp-tool: browser_navigate
  "/wd/hub/session/{sessionId}/metadock/user-agent":
    post:
      description: Set user agent for the browser
      operationId: setUserAgentPost
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set user agent
      tags:
        - Selenium
      x-mcp-tool: browser_set_user_agent
  "/wd/hub/session/{sessionId}/metadock/viewport":
    post:
      description: Set viewport size for the browser
      operationId: setViewport
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set viewport
      tags:
        - Selenium
      x-mcp-tool: browser_set_viewport
  "/wd/hub/session/{sessionId}/metadock/wait/element":
    post:
      description: Find visible interactive elements whose role or accessible name matches a text query. Returns matches with CSS selectors usable by browser_click/browser_set_value.
      operationId: waitForElementExt
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Wait for element ext
      tags:
        - Selenium
      x-mcp-tool: browser_find
  "/wd/hub/session/{sessionId}/metadock/wait/load":
    post:
      description: Navigate a browser to a specific URL
      operationId: waitForLoadExt
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Wait for load ext
      tags:
        - Selenium
      x-mcp-tool: browser_navigate
  "/wd/hub/session/{sessionId}/metadock/zoom":
    get:
      description: Get current zoom factor for the browser
      operationId: getZoomGet
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get zoom
      tags:
        - Selenium
      x-mcp-tool: browser_get_zoom
    post:
      description: Set zoom factor for the browser
      operationId: setZoomPost
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set zoom
      tags:
        - Selenium
      x-mcp-tool: browser_set_zoom
  "/wd/hub/session/{sessionId}/refresh":
    post:
      description: Reload the current page
      operationId: refresh
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Refresh
      tags:
        - Selenium
      x-mcp-tool: browser_reload
  "/wd/hub/session/{sessionId}/screenshot":
    get:
      description: "Take a screenshot of the page - returns base64-encoded PNG image data. Use save=true for batch operations to reduce token usage (returns UUID instead of image data, use browser_get_screenshot to retrieve)."
      operationId: takeScreenshotGet
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Take screenshot
      tags:
        - Selenium
      x-mcp-tool: browser_screenshot
  "/wd/hub/session/{sessionId}/source":
    get:
      description: Get raw page source HTML. Token-heavy - prefer browser_read for clean content. Supports clean (strip script/style/svg/etc.) and max_chars + offset paging to avoid dumping the whole document.
      operationId: getPageSourceGet
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get page source
      tags:
        - Selenium
      x-mcp-tool: browser_get_source
  "/wd/hub/session/{sessionId}/timeouts":
    get:
      description: Navigate a browser to a specific URL
      operationId: getTimeouts
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get timeouts
      tags:
        - Selenium
      x-mcp-tool: browser_navigate
    post:
      description: Navigate a browser to a specific URL
      operationId: setTimeouts
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set timeouts
      tags:
        - Selenium
      x-mcp-tool: browser_navigate
  "/wd/hub/session/{sessionId}/title":
    get:
      description: Get current page title
      operationId: getTitle
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get title
      tags:
        - Selenium
      x-mcp-tool: browser_get_title
  "/wd/hub/session/{sessionId}/url":
    get:
      description: Get current URL of a browser
      operationId: getCurrentUrlGet
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get current url
      tags:
        - Selenium
      x-mcp-tool: browser_get_url
    post:
      description: Navigate a browser to a specific URL
      operationId: navigateTo
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Navigate to
      tags:
        - Selenium
      x-mcp-tool: browser_navigate
  "/wd/hub/session/{sessionId}/window":
    delete:
      description: Close a browser instance
      operationId: closeWindow
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Close window
      tags:
        - Selenium
      x-mcp-tool: browser_close
    get:
      description: Navigate a browser to a specific URL
      operationId: getWindowHandle
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get window handle
      tags:
        - Selenium
      x-mcp-tool: browser_navigate
  "/wd/hub/session/{sessionId}/window/handles":
    get:
      description: Navigate a browser to a specific URL
      operationId: getAllWindowHandles
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get all window handles
      tags:
        - Selenium
      x-mcp-tool: browser_navigate
  "/wd/hub/session/{sessionId}/window/rect":
    get:
      description: "Get an element's bounding box (x/y/width/height/top/left/bottom/right) and key computed styles (display, visibility, opacity, font-size, color, background, z-index, position). Useful for spatial reasoning."
      operationId: getWindowRect
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get window rect
      tags:
        - Selenium
      x-mcp-tool: browser_get_element_box
    post:
      description: "Get an element's bounding box (x/y/width/height/top/left/bottom/right) and key computed styles (display, visibility, opacity, font-size, color, background, z-index, position). Useful for spatial reasoning."
      operationId: setWindowRect
      parameters:
        - in: path
          name: sessionId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Set window rect
      tags:
        - Selenium
      x-mcp-tool: browser_get_element_box
  /wd/hub/status:
    get:
      operationId: getStatus
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverValue"
          description: WebDriver success.
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Malformed request or missing required parameter.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: Missing or invalid API key.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebDriverError"
          description: "Origin rejected, connection not approved, or the key's grant excludes this tool or resource."
      summary: Get status
      tags:
        - Selenium
security:
  - BearerAuth: []
  - ApiKeyAuth: []
servers:
  - description: Default local MetaDock server (host/port configurable)
    url: "http://127.0.0.1:8080"
tags:
  - description: "Create, control, inspect, and automate browser instances (REST)."
    name: Browser
  - description: Manage workspaces (collections of layouts) (REST).
    name: Workspace
  - description: Manage layouts/docks and browser profiles (REST).
    name: Layout
  - description: Mount and control docked native applications (REST).
    name: App
  - description: Manage bookmarks and categories (REST).
    name: Bookmark
  - description: Query and prune browsing history (REST).
    name: History
  - description: Run searches and manage search aliases (REST).
    name: Search
  - description: List and control downloads (REST).
    name: Download
  - description: Manage adblock filter lists and per-site overrides (REST).
    name: Adblock
  - description: Inspect and revoke site permissions (REST).
    name: Permission
  - description: Read and update application settings (REST).
    name: Settings
  - description: "W3C WebDriver protocol under /wd/hub, plus MetaDock-specific extensions. Authenticates via the Authorization: Bearer header only (scope selenium); responses use the WebDriver { \"value\": ... } envelope."
    name: Selenium
  - description: "Model Context Protocol over Streamable HTTP (JSON-RPC 2.0) on /mcp. The tools, resources, and prompts it exposes are listed in the x-mcp-tools, x-mcp-resources, and x-mcp-prompts extension blocks."
    name: MCP
  - description: "Chrome DevTools Protocol: HTTP discovery endpoints (/json/...) and WebSocket upgrade endpoints (/devtools/...) speaking CDP JSON-RPC."
    name: CDP
x-mcp-prompts:
  - arguments:
      - description: Target URL to navigate to
        name: url
        type: string
      - description: Wait for page to fully load
        name: wait_for_load
        type: boolean
    description: "Generate instructions for browser navigation tasks including URL handling, page loading, and navigation verification"
    name: browser_navigation
  - arguments:
      - description: "Type of interaction: click, type, select, etc."
        name: action_type
        type: string
      - description: CSS selector or description of element to interact with
        name: target_element
        type: string
      - description: Value to input (for typing/selecting actions)
        name: value
        type: string
    description: "Generate instructions for interacting with web page elements including clicking, typing, form submission, and element selection"
    name: browser_interaction
  - arguments:
      - description: List of expected outcomes to verify
        name: expected_outcomes
        type: array
      - description: Description of the test scenario to execute
        name: test_scenario
        type: string
    description: "Generate comprehensive browser testing scripts with assertions, validations, and error handling"
    name: browser_testing
  - arguments:
      - description: "Desired output format (JSON, CSV, etc.)"
        name: data_format
        type: string
      - description: Description of data to extract from the page
        name: target_data
        type: string
    description: "Generate data extraction scripts for web scraping including element selection, data parsing, and output formatting"
    name: browser_scraping
  - arguments:
      - description: Number of browser windows needed
        name: browser_count
        type: number
      - description: "Type of layout to create (development, testing, presentation, etc.)"
        name: layout_type
        type: string
    description: Generate instructions for creating and configuring MetaDock layouts for different use cases
    name: layout_setup
  - arguments:
      - description: List of tools and features needed in the workspace
        name: tools_needed
        type: array
      - description: "Primary purpose of the workspace (development, research, etc.)"
        name: workspace_purpose
        type: string
    description: "Generate workspace configuration instructions including tool placement, shortcuts, and workflow optimization"
    name: workspace_config
  - arguments:
      - description: "User preferences for browser settings, shortcuts, etc."
        name: preferences
        type: object
      - description: "User role (developer, tester, analyst, etc.)"
        name: user_role
        type: string
    description: Generate instructions for creating and managing user profiles with custom settings and preferences
    name: profile_management
  - arguments:
      - description: Conditions that should trigger the automation
        name: trigger_conditions
        type: array
      - description: Description of the automation workflow
        name: workflow_description
        type: string
    description: "Generate complete web automation scripts with error handling, logging, and recovery mechanisms"
    name: web_automation
  - arguments:
      - description: Schema of the data to be extracted
        name: data_schema
        type: object
      - description: List of websites to extract data from
        name: source_websites
        type: array
    description: "Generate data extraction workflows including multi-site scraping, data validation, and export functionality"
    name: data_extraction
  - arguments:
      - description: Conditions that should trigger alerts
        name: alert_conditions
        type: array
      - description: List of websites or elements to monitor
        name: monitoring_targets
        type: array
    description: "Generate browser monitoring scripts for tracking website changes, performance metrics, and automated alerts"
    name: browser_monitoring
x-mcp-resources:
  - description: "Current state of a specific browser including URL, title, loading status"
    mimeType: application/json
    name: Browser State
    uri: "browser://state/{browser_uuid}"
  - description: HTML source code of the current page in a specific browser
    mimeType: text/html
    name: Browser Source
    uri: "browser://source/{browser_uuid}"
  - description: Console messages and logs from a specific browser
    mimeType: application/json
    name: Browser Console
    uri: "browser://console/{browser_uuid}"
  - description: Cookies for the current domain in a specific browser
    mimeType: application/json
    name: Browser Cookies
    uri: "browser://cookies/{browser_uuid}"
  - description: List of all available layouts
    mimeType: application/json
    name: Layout List
    uri: "layout://list"
  - description: Currently active layout information
    mimeType: application/json
    name: Active Layout
    uri: "layout://active"
  - description: List of all available workspaces
    mimeType: application/json
    name: Workspace List
    uri: "workspace://list"
  - description: List of all available profiles
    mimeType: application/json
    name: Profile List
    uri: "profile://list"
  - description: Current system status and performance metrics
    mimeType: application/json
    name: System Status
    uri: "system://status"
  - description: MetaDock application information including version and build details
    mimeType: application/json
    name: Application Info
    uri: "system://info"
  - description: API server status and connection information
    mimeType: application/json
    name: API Status
    uri: "api://status"
x-mcp-tools:
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Navigate Browser
    description: Navigate a browser to a specific URL
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        url:
          description: URL to navigate to
          type: string
      required:
        - browser_uuid
        - url
      type: object
    name: browser_navigate
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Go Back
    description: Navigate browser back in history
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_go_back
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Go Forward
    description: Navigate browser forward in history
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_go_forward
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Reload Page
    description: Reload the current page
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_reload
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Stop Loading
    description: Stop loading the current page
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_stop
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get URL
    description: Get current URL of a browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_get_url
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        found:
          description: False when no browser has this uuid. A browser sitting on a blank page also reports an empty url.
          type: boolean
        url:
          description: "Current URL, empty when the browser was not found"
          type: string
      required:
        - browser_uuid
        - url
        - found
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get Title
    description: Get current page title
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_get_title
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        title:
          description: "Live document title. Empty when the page has none, or when the browser was not found."
          type: string
      required:
        - browser_uuid
        - title
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get Page Source
    description: Get raw page source HTML. Token-heavy - prefer browser_read for clean content. Supports clean (strip script/style/svg/etc.) and max_chars + offset paging to avoid dumping the whole document.
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        clean:
          description: Strip script/style/noscript/svg/iframe/meta/link noise before returning (default false)
          type: boolean
        max_chars:
          description: Max characters to return (0 = no limit). Use with offset to page.
          type: integer
        offset:
          description: Character offset to start from (for paging)
          type: integer
      required:
        - browser_uuid
      type: object
    name: browser_get_source
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        clean:
          description: Whether the noise-stripping mode was applied
          type: boolean
        max_chars:
          description: "The requested window size, 0 when unlimited"
          type: integer
        offset:
          description: "Character offset this window starts at, clamped to the document length"
          type: integer
        returned_chars:
          description: Length of the source field
          type: integer
        source:
          description: "The windowed HTML, without the paging footer that the text block carries"
          type: string
        total_chars:
          description: "Length of the whole document, before windowing"
          type: integer
        truncated:
          description: True when more characters remain past this window
          type: boolean
      required:
        - browser_uuid
        - total_chars
        - offset
        - returned_chars
        - truncated
        - source
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get Browser State
    description: "Get comprehensive browser state as structured JSON: identity, navigation, zoom, muted, headless, offline, viewport, user agent, emulated device, dialog policy and custom request headers. One call returns everything the per-setting getters return individually."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_get_state
    outputSchema:
      additionalProperties: true
      properties:
        can_go_back:
          type: boolean
        can_go_forward:
          type: boolean
        custom_title:
          description: "Agent-set label, distinct from the document title"
          type: string
        dialog_policy:
          description: How JavaScript dialogs are answered
          enum:
            - default
            - accept
            - dismiss
          type: string
        emulated_device:
          description: "Device class applied by browser_emulate_device, or null when none is applied"
          enum:
            - mobile
            - tablet
            - null
          type:
            - string
            - "null"
        found:
          description: False when no browser has this uuid
          type: boolean
        headers:
          additionalProperties:
            type: string
          description: "Custom request headers set via browser_set_header, keyed by header name"
          type: object
        headless:
          type: boolean
        is_loading:
          type: boolean
        layout_uuid:
          type: string
        muted:
          type: boolean
        offline:
          description: Whether browser_set_offline network emulation is active
          type: boolean
        profile:
          type: string
        title:
          description: Live document title
          type: string
        url:
          type: string
        user_agent:
          description: "User agent as the engine reports it. With fingerprint identity enabled a CDP override takes precedence at the network layer, so this is not necessarily what the site sees."
          type: string
        uuid:
          type: string
        viewport:
          description: "Live viewport size in pixels, not the last value passed to browser_set_viewport - docking and window resizing move it independently"
          properties:
            height:
              type: integer
            width:
              type: integer
          type: object
        zoom:
          description: "Zoom factor (1.0 = 100%)"
          type: number
      required:
        - uuid
        - found
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get Offline Mode
    description: Get whether offline network emulation is active for a browser. Readable counterpart to browser_set_offline.
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_get_offline
    outputSchema:
      properties:
        browser_uuid:
          type: string
        offline:
          type: boolean
      required:
        - browser_uuid
        - offline
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get Viewport Size
    description: "Get a browser's live viewport size in pixels. Note this is the current size, not the last value passed to browser_set_viewport - docking and window resizing move it independently of the API."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_get_viewport
    outputSchema:
      properties:
        browser_uuid:
          type: string
        height:
          type: integer
        width:
          type: integer
      required:
        - browser_uuid
        - width
        - height
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get User Agent
    description: "Get a browser's user agent as the engine reports it. Readable counterpart to browser_set_user_agent. With fingerprint identity enabled a CDP override takes precedence at the network layer, so this is not necessarily the string the site sees."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_get_user_agent
    outputSchema:
      properties:
        browser_uuid:
          type: string
        user_agent:
          type: string
      required:
        - browser_uuid
        - user_agent
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get Emulated Device
    description: "Get which device class browser_emulate_device is currently applying, or null when none is applied. Recorded at the time of the call rather than inferred from the user agent."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_get_emulated_device
    outputSchema:
      properties:
        browser_uuid:
          type: string
        device:
          description: null when no device emulation is applied
          enum:
            - mobile
            - tablet
            - null
          type:
            - string
            - "null"
      required:
        - browser_uuid
        - device
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get Dialog Policy
    description: "Get how a browser answers JavaScript dialogs. Readable counterpart to browser_set_dialog_policy. For the last dialog that was actually captured, use browser_get_last_dialog."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_get_dialog_policy
    outputSchema:
      properties:
        browser_uuid:
          type: string
        policy:
          enum:
            - default
            - accept
            - dismiss
          type: string
      required:
        - browser_uuid
        - policy
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get Custom Headers
    description: List the custom request headers currently applied to a browser. Readable counterpart to browser_set_header and browser_remove_header. These are session-only and do not survive a restart.
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_get_headers
    outputSchema:
      properties:
        browser_uuid:
          type: string
        count:
          type: integer
        headers:
          additionalProperties:
            type: string
          description: Header name to value
          type: object
      required:
        - browser_uuid
        - headers
        - count
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Read Page (clean)
    description: "Read the page as clean, LLM-friendly content instead of raw HTML. Strips boilerplate (article mode), converts to markdown or plain text, and supports paging via max_chars + offset. Prefer this over browser_get_source."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        format:
          description: Output format. Default markdown.
          enum:
            - markdown
            - text
          type: string
        frame:
          description: Optional CSS selector for a same-origin iframe to read inside (cross-origin frames are not accessible)
          type: string
        include_images:
          description: Keep images in markdown (default false)
          type: boolean
        include_links:
          description: Keep links in markdown (default true)
          type: boolean
        max_chars:
          description: Max characters to return (0 = no limit). Use with offset to page.
          type: integer
        mode:
          description: article = main content only (boilerplate stripped); full = whole page cleaned; text = plain readable text (lightest). Default article.
          enum:
            - article
            - full
            - text
          type: string
        offset:
          description: Character offset to start from (for paging)
          type: integer
        selector:
          description: Optional CSS selector to scope extraction to a subtree
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
      type: object
    name: browser_read
    outputSchema:
      additionalProperties: true
      properties:
        base_url:
          description: "Page URL the content was read from, used to resolve relative links"
          type: string
        browser_uuid:
          type: string
        content:
          description: "The windowed content, without the paging footer that the text block carries"
          type: string
        format:
          description: The output format that was applied
          type: string
        max_chars:
          description: "The requested window size, 0 when unlimited"
          type: integer
        mode:
          description: The read mode that was applied
          type: string
        offset:
          description: "Character offset this window starts at, clamped to the content length"
          type: integer
        returned_chars:
          description: Length of the content field
          type: integer
        total_chars:
          description: "Length of the converted content, before windowing"
          type: integer
        truncated:
          description: True when more characters remain past this window
          type: boolean
      required:
        - browser_uuid
        - mode
        - format
        - total_chars
        - offset
        - returned_chars
        - truncated
        - content
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get Links
    description: "Extract all hyperlinks on the page as a compact list of {text, href, rel}. Deduplicated. A token-cheap navigation map instead of raw HTML."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        frame:
          description: Optional CSS selector for a same-origin iframe to read inside
          type: string
        limit:
          description: Max links to return (0 = no limit)
          type: integer
        selector:
          description: Optional CSS selector to scope link collection
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
      type: object
    name: browser_get_links
    outputSchema:
      additionalProperties: true
      properties:
        count:
          description: Number of links returned (see the limit parameter)
          type: integer
        links:
          description: Deduplicated hyperlinks in document order
          items:
            additionalProperties: true
            properties:
              href:
                description: Absolute URL
                type: string
              rel:
                description: "The rel attribute, null when absent"
                type:
                  - string
                  - "null"
              text:
                description: "Link text or aria-label, truncated to 300 characters"
                type: string
            required:
              - text
              - href
            type: object
          type: array
      required:
        - links
        - count
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get Metadata
    description: "Get page metadata: title, description, canonical URL, author, published/modified dates, language, favicon, Open Graph + Twitter cards, word count and reading time."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
      type: object
    name: browser_get_metadata
    outputSchema:
      additionalProperties: true
      properties:
        metadata:
          additionalProperties: true
          description: Page metadata. String fields are null when the page does not declare them.
          properties:
            author:
              type:
                - string
                - "null"
            canonical:
              description: "Canonical URL from link[rel=canonical]"
              type:
                - string
                - "null"
            description:
              type:
                - string
                - "null"
            favicon:
              description: "Declared icon, falling back to the origin's /favicon.ico"
              type: string
            image:
              type:
                - string
                - "null"
            lang:
              description: The lang attribute on the document element
              type:
                - string
                - "null"
            modified:
              description: "article:modified_time, as declared by the page"
              type:
                - string
                - "null"
            og:
              additionalProperties: true
              description: "Open Graph properties, keyed without the og: prefix"
              type: object
            published:
              description: "article:published_time, as declared by the page"
              type:
                - string
                - "null"
            readingTimeMin:
              description: "Estimated reading time in minutes at 200 words per minute, minimum 1"
              type: integer
            siteName:
              type:
                - string
                - "null"
            title:
              type: string
            twitter:
              additionalProperties: true
              description: "Twitter card properties, keyed without the twitter: prefix"
              type: object
            type:
              description: "The og:type value"
              type:
                - string
                - "null"
            url:
              description: "The page's current location"
              type: string
            wordCount:
              description: Whitespace-delimited word count of the rendered body text
              type: integer
          required:
            - title
            - url
            - favicon
            - wordCount
            - readingTimeMin
          type: object
      required:
        - metadata
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get Tables
    description: "Extract HTML tables as markdown (default), CSV, or JSON rows. Avoids the model parsing <td> soup."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        format:
          description: Output format. Default markdown.
          enum:
            - markdown
            - csv
            - json
          type: string
        selector:
          description: Optional CSS selector to scope which tables are read
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
      type: object
    name: browser_get_tables
    outputSchema:
      additionalProperties: true
      properties:
        count:
          description: Number of tables found
          type: integer
        format:
          description: How the text block was rendered. The structured rows below are the same in every format.
          type: string
        tables:
          description: "Tables in document order, as rows rather than rendered text"
          items:
            additionalProperties: true
            properties:
              caption:
                description: "Table caption, empty when it has none"
                type: string
              headers:
                description: Header cells
                items:
                  type: string
                type: array
              index:
                description: Position of the table in the document
                type: integer
              rows:
                description: "Body rows, each an array of cell values"
                items:
                  items:
                    type: string
                  type: array
                type: array
              selector:
                description: CSS selector for the table
                type: string
            required:
              - index
              - headers
              - rows
            type: object
          type: array
      required:
        - count
        - tables
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get Forms
    description: "Enumerate forms and their fields {name, id, type, label, placeholder, required, options, selector}. Lets you fill forms by known field names instead of guessing selectors. Password/sensitive values are never returned."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        frame:
          description: Optional CSS selector for a same-origin iframe to read inside
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
      type: object
    name: browser_get_forms
    outputSchema:
      additionalProperties: true
      properties:
        count:
          description: Number of forms returned
          type: integer
        forms:
          description: Forms in document order
          items:
            additionalProperties: true
            properties:
              action:
                type:
                  - string
                  - "null"
              fields:
                description: Visible fields. Hidden inputs are omitted.
                items:
                  additionalProperties: true
                  properties:
                    id:
                      type:
                        - string
                        - "null"
                    label:
                      description: "Associated label text, truncated to 200 characters"
                      type: string
                    name:
                      type:
                        - string
                        - "null"
                    options:
                      description: Present only for select fields. Capped at 50 options.
                      items:
                        additionalProperties: true
                        properties:
                          label:
                            type: string
                          value:
                            type: string
                        type: object
                      type: array
                    placeholder:
                      type:
                        - string
                        - "null"
                    required:
                      type: boolean
                    selector:
                      description: CSS selector usable by browser_set_value
                      type: string
                    type:
                      description: "Input type, or the tag name for select and textarea"
                      type: string
                    value:
                      description: "Current value, truncated to 200 characters. Omitted entirely for password and other sensitive fields."
                      type: string
                  required:
                    - type
                    - selector
                    - required
                  type: object
                type: array
              id:
                type:
                  - string
                  - "null"
              index:
                description: Position of the form in the document
                type: integer
              method:
                description: "Lowercased submit method, defaulting to get"
                type: string
              name:
                type:
                  - string
                  - "null"
              selector:
                description: CSS selector for the form
                type: string
            required:
              - index
              - selector
              - method
              - fields
            type: object
          type: array
      required:
        - forms
        - count
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Extract Structured
    description: "Structured, schema-driven extraction. Provide a 'fields' map of {fieldName: {selector, attr, all}} and get back JSON. attr: 'text' (default), 'html', or an attribute name like 'href'. all:true returns an array of matches."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        fields:
          description: "Map of fieldName -> {selector, attr, all}"
          type: object
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
        - fields
      type: object
    name: browser_extract
    outputSchema:
      additionalProperties: true
      properties:
        data:
          additionalProperties: true
          description: "One key per entry in the requested fields map. A field with all:true yields an array of matches, otherwise a single value, and null when nothing matched."
          type: object
      required:
        - data
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Page Snapshot
    description: "Token-efficient interactive snapshot: a compact list of visible interactive elements (links, buttons, inputs, selects) each with role, accessible name and a CSS selector usable by browser_click/browser_set_value, plus a heading outline. Far cheaper than a screenshot for driving a page."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        frame:
          description: Optional CSS selector for a same-origin iframe to snapshot inside
          type: string
        limit:
          description: Max interactive elements to return (0 = no limit)
          type: integer
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
      type: object
    name: browser_snapshot
    outputSchema:
      additionalProperties: true
      properties:
        count:
          description: Number of interactive elements returned (see the limit parameter)
          type: integer
        headings:
          description: "Heading outline in document order, capped at 100 entries"
          items:
            additionalProperties: true
            properties:
              level:
                description: "Heading level, 1 through 6"
                type: integer
              text:
                description: "Heading text, truncated to 200 characters"
                type: string
            required:
              - level
              - text
            type: object
          type: array
        interactive:
          description: Visible interactive elements
          items:
            additionalProperties: true
            properties:
              checked:
                description: Present only for checkboxes and radios
                type: boolean
              disabled:
                description: Present only when the element is disabled
                type: boolean
              href:
                description: Present only for links
                type: string
              name:
                description: Accessible name
                type: string
              role:
                description: "Explicit role attribute, or one derived from the tag and input type"
                type: string
              selector:
                description: CSS selector usable by browser_click and browser_set_value
                type: string
            required:
              - role
              - name
              - selector
            type: object
          type: array
        title:
          description: Live document title
          type: string
        url:
          description: "The page's current location"
          type: string
      required:
        - title
        - url
        - headings
        - interactive
        - count
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Find Elements
    description: Find visible interactive elements whose role or accessible name matches a text query. Returns matches with CSS selectors usable by browser_click/browser_set_value.
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        frame:
          description: Optional CSS selector for a same-origin iframe to search inside
          type: string
        limit:
          description: Max matches to return (0 = no limit)
          type: integer
        query:
          description: Text to match against element name/role
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
        - query
      type: object
    name: browser_find
    outputSchema:
      additionalProperties: true
      properties:
        count:
          description: Number of matches returned (see the limit parameter)
          type: integer
        matches:
          description: Visible interactive elements whose role or accessible name matched the query
          items:
            additionalProperties: true
            properties:
              checked:
                description: Present only for checkboxes and radios
                type: boolean
              disabled:
                description: Present only when the element is disabled
                type: boolean
              href:
                description: Present only for links
                type: string
              name:
                description: Accessible name
                type: string
              role:
                description: "Explicit role attribute, or one derived from the tag and input type"
                type: string
              selector:
                description: CSS selector usable by browser_click and browser_set_value
                type: string
            required:
              - role
              - name
              - selector
            type: object
          type: array
      required:
        - matches
        - count
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Press Key
    description: "Send a real (trusted) key press to the focused element via native input. Accepts a named key or a single printable character. Named keys (case-insensitive): Enter/Return, Tab, Escape/Esc, Backspace, Delete/Del, Space, Up/ArrowUp, Down/ArrowDown, Left/ArrowLeft, Right/ArrowRight, Home, End, PageUp, PageDown, Insert, and F1-F24. Use this for Enter-to-submit / Tab-between-fields where synthetic JS key events do not work. Modifier combos (Ctrl+A etc.) are not yet supported."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        key:
          description: "A named key from the tool description (e.g. Enter, Tab, ArrowDown, F5) or a single printable character. Anything else is rejected."
          type: string
      required:
        - browser_uuid
        - key
      type: object
    name: browser_press_key
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: History Go
    description: "Move within the browser's session history by a relative delta (e.g. -1 = back, 1 = forward, -2 = back twice)."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        delta:
          description: "Relative history offset (negative = back, positive = forward)"
          type: integer
      required:
        - browser_uuid
        - delta
      type: object
    name: browser_history_go
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get Element Box
    description: "Get an element's bounding box (x/y/width/height/top/left/bottom/right) and key computed styles (display, visibility, opacity, font-size, color, background, z-index, position). Useful for spatial reasoning."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        selector:
          description: CSS selector of the element
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
        - selector
      type: object
    name: browser_get_element_box
    outputSchema:
      additionalProperties: true
      properties:
        backgroundColor:
          type: string
        bottom:
          type: number
        browser_uuid:
          type: string
        color:
          type: string
        display:
          description: Computed style value
          type: string
        fontSize:
          type: string
        found:
          description: False when the selector matched nothing. The geometry and style fields are absent in that case.
          type: boolean
        height:
          type: number
        left:
          type: number
        opacity:
          type: string
        position:
          type: string
        right:
          type: number
        selector:
          type: string
        top:
          type: number
        visibility:
          type: string
        width:
          type: number
        x:
          description: "Viewport-relative position, in CSS pixels"
          type: number
        y:
          type: number
        zIndex:
          type: string
      required:
        - browser_uuid
        - selector
        - found
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: true
      title: Wait For Network Idle
    description: "Wait until the page has finished loading and no new network requests have started for a quiet period. Use after navigation or an action that triggers async loading, before reading/snapshotting."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        idle_ms:
          description: Quiet period with no new requests that counts as idle (default 500)
          type: integer
        timeout_ms:
          description: Max time to wait (default 30000)
          type: integer
      required:
        - browser_uuid
      type: object
    name: browser_wait_for_network_idle
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Hover
    description: "Hover the pointer over an element (dispatches pointer/mouse enter+over+move events), triggering hover menus and tooltips. Scrolls the element into view first."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        selector:
          description: CSS selector of the element to hover
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
        - selector
      type: object
    name: browser_hover
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Right Click
    description: Right-click (context-menu) an element by dispatching mousedown/mouseup/contextmenu with the secondary button. Scrolls the element into view first.
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        selector:
          description: CSS selector of the element to right-click
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
        - selector
      type: object
    name: browser_right_click
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Upload File
    description: "Attach files to a file <input> element. You supply the file CONTENT as base64 (not a local path), so the tool never reads the machine's disk. Each file is materialized in-page and assigned to the input."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        files:
          description: Files to attach
          items:
            properties:
              content_base64:
                description: "File contents, base64-encoded"
                type: string
              mime_type:
                description: "MIME type (optional, default application/octet-stream)"
                type: string
              name:
                description: Filename to present to the page
                type: string
            required:
              - name
              - content_base64
            type: object
          type: array
        selector:
          description: "CSS selector of the <input type=file> element"
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
        - selector
        - files
      type: object
    name: browser_upload_file
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get Network Requests
    description: "List the network requests the page has made (from the Resource Timing API): url, type, protocol, size, and duration, plus navigation timing. Note: does NOT include status codes, headers, or response bodies."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        filter:
          description: Only requests whose URL contains this substring (optional)
          type: string
        limit:
          description: Max requests to return (0 = all)
          type: integer
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
      type: object
    name: browser_get_network
    outputSchema:
      additionalProperties: true
      properties:
        count:
          description: Number of requests returned (see the filter and limit parameters)
          type: integer
        navigation:
          additionalProperties: true
          description: Navigation timing for the current document. Absent when the browser reports no navigation entry.
          properties:
            domContentLoadedMs:
              type: integer
            durationMs:
              type: integer
            loadEventMs:
              type: integer
            type:
              description: "How the document was reached, for example navigate, reload or back_forward"
              type: string
            url:
              type: string
          type: object
        requests:
          description: "Resource Timing entries. Excludes status codes, headers and response bodies."
          items:
            additionalProperties: true
            properties:
              decodedSize:
                type: integer
              durationMs:
                type: integer
              encodedSize:
                type: integer
              protocol:
                description: "Next-hop protocol, null when the origin does not expose it"
                type:
                  - string
                  - "null"
              startMs:
                description: Start time in milliseconds relative to navigation start
                type: integer
              transferSize:
                description: "Bytes over the wire, 0 for cached responses"
                type: integer
              type:
                description: "What initiated the request, for example script, img or fetch"
                type: string
              url:
                type: string
            required:
              - url
              - type
              - startMs
              - durationMs
            type: object
          type: array
      required:
        - requests
        - count
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get Storage
    description: "Read the page's localStorage or sessionStorage. With a key, returns that value; without, returns all entries for the origin."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        key:
          description: Specific key to read (optional; omit for all entries)
          type: string
        store:
          description: Which store (default local)
          enum:
            - local
            - session
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
      type: object
    name: browser_get_storage
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        count:
          description: Number of entries in the store. Present only when reading all entries.
          type: integer
        entries:
          additionalProperties:
            type: string
          description: All key/value pairs for the origin. Present only when no key was requested.
          type: object
        key:
          description: The key that was read. Present only when a key was requested.
          type: string
        store:
          description: Which store was read
          type: string
        value:
          description: "Value for the requested key, null when the store has no such key. Present only when a key was requested."
          type:
            - string
            - "null"
      required:
        - browser_uuid
        - store
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: false
      title: Set Storage
    description: "Set a key in the page's localStorage or sessionStorage."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        key:
          description: Key to set
          type: string
        store:
          description: Which store (default local)
          enum:
            - local
            - session
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
        value:
          description: Value to store
          type: string
      required:
        - browser_uuid
        - key
        - value
      type: object
    name: browser_set_storage
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: true
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Clear Storage
    description: "Clear the page's localStorage or sessionStorage. With a key, removes just that key; without, clears the whole store for the origin."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        key:
          description: Specific key to remove (optional; omit to clear all)
          type: string
        store:
          description: Which store (default local)
          enum:
            - local
            - session
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
      type: object
    name: browser_clear_storage
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Clear Cache
    description: "Clear this browser's HTTP cache (CDP Network.clearBrowserCache). Does not touch cookies."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
      type: object
    name: browser_clear_cache
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Click At Coordinates
    description: Click at raw viewport pixel coordinates using a real (trusted) mouse event. Use when you have coordinates rather than a CSS selector (e.g. from a screenshot or element box).
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        x:
          description: X coordinate in CSS/viewport pixels
          type: integer
        y:
          description: Y coordinate in CSS/viewport pixels
          type: integer
      required:
        - browser_uuid
        - x
        - y
      type: object
    name: browser_click_at
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Muted
    description: "Mute or unmute a single browser's audio."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        muted:
          description: "true to mute, false to unmute (default true)"
          type: boolean
      required:
        - browser_uuid
      type: object
    name: browser_set_muted
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Dialog Policy
    description: "Control how this browser handles JavaScript dialogs (alert/confirm/prompt/beforeunload). 'default' shows the native dialog (which blocks automation); 'accept' auto-accepts (OK / prompt returns prompt_text); 'dismiss' auto-cancels. IMPORTANT: this takes effect from the NEXT navigation/reload, so set the policy BEFORE navigating to (or reloading) the page that may pop dialogs. Handles page-initiated dialogs (load handlers, timers, events, beforeunload); use browser_get_last_dialog to see what was intercepted."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        policy:
          description: How to handle dialogs
          enum:
            - default
            - accept
            - dismiss
          type: string
        prompt_text:
          description: "Text returned for prompt() when policy is 'accept' (optional)"
          type: string
      required:
        - browser_uuid
        - policy
      type: object
    name: browser_set_dialog_policy
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Get Last Dialog
    description: "Get the most recent JavaScript dialog captured for this browser (only captured while a non-default dialog policy is active): {policy, kind, message, uri, captured}."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_get_last_dialog
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        captured:
          description: Whether a dialog has been captured for this browser
          type: boolean
        kind:
          description: "Dialog kind, empty when nothing has been captured"
          type: string
        message:
          description: Dialog message text
          type: string
        policy:
          description: "Active dialog policy (see browser_set_dialog_policy): default, accept or dismiss"
          type: string
        registered:
          description: Whether dialog interception is currently registered
          type: boolean
        uri:
          description: Page that raised the dialog
          type: string
      required:
        - browser_uuid
        - policy
        - captured
        - registered
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: false
      title: Set Request Header
    description: "Add or override a custom HTTP request header sent by this browser on subsequent requests (e.g. Authorization, X-* headers)."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        name:
          description: Header name
          type: string
        value:
          description: Header value
          type: string
      required:
        - browser_uuid
        - name
        - value
      type: object
    name: browser_set_header
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: false
      title: Remove Request Header
    description: Remove a previously-set custom request header from this browser.
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        name:
          description: Header name to remove
          type: string
      required:
        - browser_uuid
        - name
      type: object
    name: browser_remove_header
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Screenshot Element
    description: "Screenshot a single element (scrolls it into view, captures just its bounding box). Returns an image. Far smaller than a full-page screenshot when you only need one component."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        format:
          description: Image format (default png)
          enum:
            - png
            - jpeg
          type: string
        quality:
          description: JPEG quality (ignored for png)
          maximum: 100
          minimum: 0
          type: integer
        selector:
          description: CSS selector of the element to capture
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
        - selector
      type: object
    name: browser_screenshot_element
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Drag and Drop
    description: "Drag from one element to another using real (trusted) mouse events: press at the source center, move in steps to the target center, release. Works for sliders, sortable lists, and canvas/custom drag handlers."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        source_selector:
          description: CSS selector of the element to drag from
          type: string
        target_selector:
          description: CSS selector of the element to drop onto
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
        - source_selector
        - target_selector
      type: object
    name: browser_drag
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Execute JavaScript
    description: Execute JavaScript code in browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        script:
          description: JavaScript code to execute
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
        - script
      type: object
    name: browser_execute_js
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        error:
          type: string
        result:
          description: "The value the script evaluated to, decoded from its JSON form. Absent on timeout."
        success:
          type: boolean
      required:
        - success
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Click Element
    description: Click an element by CSS selector
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        selector:
          description: CSS selector of element to click
          type: string
        timeout_ms:
          description: "Timeout in milliseconds (default: 5000)"
          type: number
      required:
        - browser_uuid
        - selector
      type: object
    name: browser_click
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Type Text
    description: Type text at current cursor position
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        text:
          description: Text to type
          type: string
      required:
        - browser_uuid
        - text
      type: object
    name: browser_type
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: false
      title: Set Input Value
    description: Set value of an input element
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        selector:
          description: CSS selector of input element
          type: string
        timeout_ms:
          description: "Timeout in milliseconds (default: 5000)"
          type: number
        value:
          description: Value to set
          type: string
      required:
        - browser_uuid
        - selector
        - value
      type: object
    name: browser_set_value
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: false
      title: Clear Input
    description: Clear an input field
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        selector:
          description: CSS selector of input element
          type: string
        timeout_ms:
          description: "Timeout in milliseconds (default: 5000)"
          type: number
      required:
        - browser_uuid
        - selector
      type: object
    name: browser_clear_input
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Submit Form
    description: Submit a form
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        selector:
          description: CSS selector of form element
          type: string
        timeout_ms:
          description: "Timeout in milliseconds (default: 5000)"
          type: number
      required:
        - browser_uuid
        - selector
      type: object
    name: browser_submit_form
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: false
      title: Scroll To
    description: Scroll to specific coordinates
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        x:
          description: X coordinate
          type: number
        y:
          description: Y coordinate
          type: number
      required:
        - browser_uuid
        - x
        - y
      type: object
    name: browser_scroll_to
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Scroll By
    description: Scroll by offset amount
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        delta_x:
          description: X offset
          type: number
        delta_y:
          description: Y offset
          type: number
      required:
        - browser_uuid
        - delta_x
        - delta_y
      type: object
    name: browser_scroll_by
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: true
      title: Take Screenshot
    description: "Take a screenshot of the page - returns base64-encoded PNG image data. Use save=true for batch operations to reduce token usage (returns UUID instead of image data, use browser_get_screenshot to retrieve)."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        format:
          description: "Output format (default: 'jpeg')"
          enum:
            - png
            - jpeg
          type: string
        full_page:
          description: "Capture entire scrollable page (default: false)"
          type: boolean
        height:
          description: "Viewport height in pixels (default: 1080)"
          maximum: 16384
          minimum: 1
          type: number
        quality:
          description: "JPEG quality (default: 90, ignored for PNG)"
          maximum: 100
          minimum: 0
          type: number
        save:
          description: "If true, store screenshot server-side and return UUID only (RECOMMENDED for batch operations to reduce token usage). Use browser_get_screenshot to retrieve. Screenshots expire after 5 minutes. (default: false)"
          type: boolean
        width:
          description: "Viewport width in pixels (default: 1920)"
          maximum: 16384
          minimum: 1
          type: number
      required:
        - browser_uuid
      type: object
    name: browser_screenshot
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Get Saved Screenshot
    description: Retrieve a saved screenshot by UUID. Use this after browser_screenshot with save=true. Screenshots expire after 5 minutes.
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        screenshot_uuid:
          description: Screenshot UUID returned from browser_screenshot with save=true
          type: string
      required:
        - screenshot_uuid
      type: object
    name: browser_get_screenshot
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: true
      title: Print to PDF
    description: Print page to PDF
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        file_path:
          description: "File path to save PDF. WSL users: Use Windows paths (C:\\path\\file.pdf), accessible at /mnt/c/path/file.pdf"
          type: string
      required:
        - browser_uuid
        - file_path
      type: object
    name: browser_print_pdf
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Cookie
    description: Set a cookie for the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        domain:
          description: Cookie domain (optional)
          type: string
        name:
          description: Cookie name
          type: string
        value:
          description: Cookie value
          type: string
      required:
        - browser_uuid
        - name
        - value
      type: object
    name: browser_set_cookie
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Get Cookie
    description: Get a cookie value from the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        name:
          description: Cookie name
          type: string
      required:
        - browser_uuid
        - name
      type: object
    name: browser_get_cookie
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        found:
          description: False when no such cookie exists. A cookie set to an empty value also reports false.
          type: boolean
        name:
          description: The cookie that was requested
          type: string
        value:
          description: "Cookie value, empty when not found. Use browser_get_all_cookies for domain, path and expiry."
          type: string
      required:
        - browser_uuid
        - name
        - found
        - value
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Get All Cookies
    description: Get all cookies for the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_get_all_cookies
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        cookies:
          description: "Full cookie records, not just name and value"
          items:
            additionalProperties: true
            properties:
              name:
                type: string
              value:
                type: string
            required:
              - name
            type: object
          type: array
        count:
          description: Number of cookies returned
          type: integer
      required:
        - browser_uuid
        - count
        - cookies
      type: object
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Delete Cookie
    description: Delete a specific cookie from the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        name:
          description: Cookie name to delete
          type: string
      required:
        - browser_uuid
        - name
      type: object
    name: browser_delete_cookie
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Clear Cookies
    description: Clear all cookies for the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_clear_cookies
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set User Agent
    description: Set user agent for the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        user_agent:
          description: User agent string
          type: string
      required:
        - browser_uuid
        - user_agent
      type: object
    name: browser_set_user_agent
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Viewport
    description: Set viewport size for the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        height:
          description: Viewport height
          type: number
        width:
          description: Viewport width
          type: number
      required:
        - browser_uuid
        - width
        - height
      type: object
    name: browser_set_viewport
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Zoom
    description: Set zoom factor for the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        factor:
          description: "Zoom factor (1.0 = 100%)"
          type: number
      required:
        - browser_uuid
        - factor
      type: object
    name: browser_set_zoom
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Get Zoom
    description: Get current zoom factor for the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_get_zoom
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        zoom:
          description: "Zoom factor (1.0 = 100%). Reported as 0 when the browser was not found."
          type: number
      required:
        - browser_uuid
        - zoom
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Open DevTools
    description: Open developer tools for the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_open_devtools
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Close DevTools
    description: Close developer tools for the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_close_devtools
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Enable DevTools
    description: Enable or disable developer tools for the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        enable:
          description: "Enable or disable DevTools (default: true)"
          type: boolean
      required:
        - browser_uuid
      type: object
    name: browser_enable_devtools
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Geolocation
    description: Set geolocation for the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        latitude:
          description: Latitude coordinate
          type: number
        longitude:
          description: Longitude coordinate
          type: number
      required:
        - browser_uuid
        - latitude
        - longitude
      type: object
    name: browser_set_geolocation
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Clear Geolocation
    description: Clear geolocation override for the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_clear_geolocation
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Emulate Device
    description: Enable device emulation for the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        device_name:
          description: "Device class to emulate. 'mobile' applies an iPhone user agent at 375x812; 'tablet' an iPad user agent at 768x1024."
          enum:
            - mobile
            - tablet
          type: string
      required:
        - browser_uuid
        - device_name
      type: object
    name: browser_emulate_device
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Clear Device Emulation
    description: Clear device emulation for the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_clear_device_emulation
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Offline Mode
    description: Set offline mode for the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        offline:
          description: Enable offline mode
          type: boolean
      required:
        - browser_uuid
        - offline
      type: object
    name: browser_set_offline
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Headless Mode
    description: "Toggle headless mode for a browser. When switching from headless to visible, the browser is automatically docked into the layout."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        headless:
          description: "true = headless (hidden, no UI), false = visible (docked into layout)"
          type: boolean
      required:
        - browser_uuid
        - headless
      type: object
    name: browser_set_headless
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Fingerprint
    description: "Set fingerprint spoofing config for a browser. Supports canvas, WebGL, and audio spoofing with per-profile deterministic fingerprints or random-per-refresh mode."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        audio:
          description: Audio spoofing config
          properties:
            enabled:
              type: boolean
            noise_level:
              enum:
                - subtle
                - moderate
                - aggressive
              type: string
          type: object
        browser_uuid:
          description: Browser UUID
          type: string
        canvas:
          description: Canvas spoofing config
          properties:
            enabled:
              type: boolean
            noise_level:
              enum:
                - subtle
                - moderate
                - aggressive
              type: string
          type: object
        enabled:
          description: Enable fingerprint spoofing
          type: boolean
        preset:
          description: "Preset: none, balanced, maximum, custom"
          enum:
            - none
            - balanced
            - maximum
            - custom
          type: string
        randomize_on_refresh:
          description: Generate new random fingerprint on every page load
          type: boolean
        seed:
          description: Custom seed (blank = auto from profile)
          type: string
        webgl:
          description: WebGL spoofing config
          properties:
            enabled:
              type: boolean
            gpu_preset:
              description: "GPU profile: Intel HD 630, NVIDIA GTX 1060, AMD RX 580, Apple M1, Generic Integrated, Custom"
              type: string
          type: object
      required:
        - browser_uuid
        - enabled
      type: object
    name: browser_set_fingerprint
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Get Fingerprint
    description: Get current fingerprint spoofing configuration for a browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_get_fingerprint
    outputSchema:
      additionalProperties: true
      properties:
        audio:
          additionalProperties: true
          type: object
        canvas:
          additionalProperties: true
          type: object
        client_rects:
          additionalProperties: true
          type: object
        device:
          additionalProperties: true
          type: object
        device_override:
          additionalProperties: true
          type: object
        enabled:
          type: boolean
        font:
          additionalProperties: true
          type: object
        identity:
          additionalProperties: true
          type: object
        media_prefs:
          additionalProperties: true
          type: object
        navigator:
          additionalProperties: true
          type: object
        network:
          additionalProperties: true
          type: object
        permissions:
          additionalProperties: true
          type: object
        persona:
          additionalProperties: true
          type: object
        platform:
          type: string
        preset:
          type: string
        randomize_on_refresh:
          type: boolean
        seed:
          type: string
        timing:
          additionalProperties: true
          type: object
        webgl:
          additionalProperties: true
          type: object
      required:
        - enabled
        - preset
        - platform
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Canvas Fingerprint
    description: Configure canvas fingerprint spoofing for a browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        enabled:
          description: Enable canvas spoofing
          type: boolean
        noise_level:
          description: "Noise level: subtle, moderate, aggressive"
          enum:
            - subtle
            - moderate
            - aggressive
          type: string
      required:
        - browser_uuid
        - enabled
      type: object
    name: browser_set_fingerprint_canvas
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set WebGL Fingerprint
    description: Configure WebGL fingerprint spoofing for a browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        custom_profile:
          description: "Custom GPU profile fields, used when gpu_preset is Custom"
          type: object
        enabled:
          description: Enable WebGL spoofing
          type: boolean
        gpu_preset:
          description: "GPU profile to emulate: Intel HD 630, NVIDIA GTX 1060, AMD RX 580, Apple M1, Generic Integrated, Custom"
          type: string
      required:
        - browser_uuid
        - enabled
      type: object
    name: browser_set_fingerprint_webgl
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Audio Fingerprint
    description: Configure audio fingerprint spoofing for a browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        enabled:
          description: Enable audio spoofing
          type: boolean
        noise_level:
          description: "Noise level: subtle, moderate, aggressive"
          enum:
            - subtle
            - moderate
            - aggressive
          type: string
      required:
        - browser_uuid
        - enabled
      type: object
    name: browser_set_fingerprint_audio
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Clear Fingerprint
    description: Disable all fingerprint spoofing for a browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_clear_fingerprint
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List GPU Presets
    description: "List the GPU presets browser_set_fingerprint_webgl accepts as gpu_preset, with a description of each."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: browser_list_gpu_presets
    outputSchema:
      additionalProperties: true
      properties:
        count:
          description: Number of presets returned
          type: integer
        presets:
          description: Available GPU presets
          items:
            additionalProperties: true
            properties:
              description:
                type: string
              name:
                description: Value to pass as gpu_preset
                type: string
            required:
              - name
            type: object
          type: array
      required:
        - count
        - presets
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Wait For Element
    description: Wait for an element to appear on the page
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        selector:
          description: CSS selector of element to wait for
          type: string
        timeout_ms:
          description: "Timeout in milliseconds (default: 5000)"
          type: number
      required:
        - browser_uuid
        - selector
      type: object
    name: browser_wait_for_element
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Wait For Load
    description: Wait for page to finish loading
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        timeout_ms:
          description: "Timeout in milliseconds (default: 30000)"
          type: number
      required:
        - browser_uuid
      type: object
    name: browser_wait_for_load
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Inject CSS
    description: Inject CSS into the page
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        css:
          description: CSS code to inject
          type: string
      required:
        - browser_uuid
        - css
      type: object
    name: browser_inject_css
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Inject Script
    description: Inject a script URL into the page
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        script_url:
          description: URL of script to inject
          type: string
      required:
        - browser_uuid
        - script_url
      type: object
    name: browser_inject_script
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get Console
    description: Get console messages from the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_get_console
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        count:
          description: Number of captured messages
          type: integer
        messages:
          description: "Captured console messages, oldest first, as recorded text. Severity, source file and line number are not currently captured."
          items:
            type: string
          type: array
      required:
        - browser_uuid
        - count
        - messages
      type: object
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Clear Console
    description: Clear console messages for the browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_clear_console
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get Element Text
    description: Get the text content of an element by CSS selector
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        selector:
          description: CSS selector of the element
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
        - selector
      type: object
    name: browser_get_element_text
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        found:
          description: False when the selector matched nothing
          type: boolean
        selector:
          type: string
        text:
          description: "The element's text content. Absent when found is false."
          type: string
      required:
        - browser_uuid
        - selector
        - found
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get Element Attribute
    description: Get an attribute value of an element by CSS selector
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        attribute:
          description: Attribute name to get
          type: string
        browser_uuid:
          description: Browser UUID
          type: string
        selector:
          description: CSS selector of the element
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
        - selector
        - attribute
      type: object
    name: browser_get_element_attribute
    outputSchema:
      additionalProperties: true
      properties:
        attribute:
          description: The attribute that was requested
          type: string
        browser_uuid:
          type: string
        found:
          description: Whether the element was found. Null value with found true means the element exists but carries no such attribute.
          type: boolean
        selector:
          type: string
        value:
          description: "Attribute value, null when the element does not carry it. Absent when found is false."
          type:
            - string
            - "null"
      required:
        - browser_uuid
        - selector
        - attribute
        - found
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Is Element Visible
    description: Check if an element is visible on the page
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: Browser UUID
          type: string
        selector:
          description: CSS selector of the element
          type: string
        timeout_ms:
          description: "Max time to wait for the in-page result, in ms"
          type: integer
      required:
        - browser_uuid
        - selector
      type: object
    name: browser_is_element_visible
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          type: string
        exists:
          description: Whether the selector matched an element
          type: boolean
        rect:
          additionalProperties: true
          description: Viewport-relative geometry in CSS pixels. Present only when the element exists.
          properties:
            height:
              type: number
            left:
              type: number
            top:
              type: number
            width:
              type: number
          type: object
        selector:
          type: string
        visible:
          description: Whether the matched element is actually visible
          type: boolean
      required:
        - browser_uuid
        - selector
        - exists
        - visible
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Execute JS on All Browsers
    description: "Execute JavaScript on all browsers and return each browser's result"
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        script:
          description: JavaScript code to execute on all browsers
          type: string
        timeout_ms:
          description: "Max time to wait for each browser's result (default 5000)"
          type: integer
      required:
        - script
      type: object
    name: browsers_execute_all
    outputSchema:
      additionalProperties: true
      properties:
        browsers_affected:
          description: Number of browsers the script was dispatched to
          type: integer
        results:
          additionalProperties:
            type: string
          description: Map of browser UUID to its JavaScript result
          type: object
        timed_out:
          description: UUIDs of browsers that did not return a result in time
          items:
            type: string
          type: array
      required:
        - browsers_affected
        - results
        - timed_out
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Navigate All Browsers
    description: Navigate all browsers to a URL
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        url:
          description: URL to navigate all browsers to
          type: string
      required:
        - url
      type: object
    name: browsers_navigate_all
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Reload All Browsers
    description: Reload all browsers
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      type: object
    name: browsers_reload_all
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Close All Browsers
    description: Close all browsers
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      type: object
    name: browsers_close_all
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Close Other Browsers
    description: Close all browsers except one
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        keep_browser_uuid:
          description: UUID of the browser to keep open (from browsers_list)
          type: string
      required:
        - keep_browser_uuid
      type: object
    name: browsers_close_others
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Create Browser
    description: Create a new browser instance
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        auto_refresh_interval:
          description: Auto-refresh interval in seconds (0 = off)
          type: integer
        custom_title:
          description: Custom title for browser tab
          type: string
        disable_javascript:
          description: Create the browser with JavaScript disabled
          type: boolean
        headless:
          description: "Create browser in headless mode (hidden, no UI - for automation)"
          type: boolean
        hide:
          description: Create the dock hidden
          type: boolean
        layout_uuid:
          description: "Layout UUID to create browser in (optional, defaults to first layout)"
          type: string
        lock:
          description: Lock the dock against moving or closing
          type: boolean
        mute:
          description: Start the browser muted
          type: boolean
        profile:
          description: Browser profile name
          type: string
        show_extended_titlebar_profile:
          description: Show the profile name in the dock titlebar
          type: boolean
        show_extended_titlebar_proxy:
          description: Show the proxy in the dock titlebar
          type: boolean
        toolbar_visible:
          description: Show the browser toolbar
          type: boolean
        url:
          description: Initial URL to navigate to
          type: string
        zoom_factor:
          description: "Initial zoom factor (1.0 = 100%)"
          type: number
      required:
        - url
      type: object
    name: browser_create
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Close Browser
    description: Close a browser instance
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: UUID of the browser to close
          type: string
      required:
        - browser_uuid
      type: object
    name: browser_close
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Create Multiple Browsers
    description: Create multiple browsers with different configurations
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browsers:
          description: Array of browser configurations
          items:
            properties:
              custom_title:
                description: Custom title for browser tab
                type: string
              headless:
                description: "Create browser in headless mode (hidden, no UI - for automation)"
                type: boolean
              layout_uuid:
                description: "Layout UUID to create browser in (optional, defaults to first layout)"
                type: string
              mute:
                description: Mute audio
                type: boolean
              profile:
                description: Browser profile name
                type: string
              proxy:
                description: Proxy settings
                type: string
              toolbar_visible:
                description: Show toolbar
                type: boolean
              url:
                description: Initial URL to navigate to
                type: string
              zoom_factor:
                description: "Zoom factor (1.0 = 100%)"
                type: number
            required:
              - url
            type: object
          type: array
      required:
        - browsers
      type: object
    name: browsers_create_multiple
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Close Other Browsers In Layout
    description: Close all browsers in a layout except one
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        keep_browser_uuid:
          description: UUID of the browser to keep open (from browsers_list)
          type: string
        layout_uuid:
          description: "Layout UUID to scope the close to (optional, defaults to first layout)"
          type: string
      required:
        - keep_browser_uuid
      type: object
    name: browsers_close_others_in_layout
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List Browsers
    description: List all browsers
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      type: object
    name: browsers_list
    outputSchema:
      additionalProperties: true
      properties:
        browsers:
          description: Open browsers
          items:
            additionalProperties: true
            properties:
              custom_title:
                description: "Agent-set label, distinct from the document title"
                type: string
              layout_uuid:
                type: string
              profile:
                type: string
              title:
                description: "Live document title, empty when the page has none"
                type: string
              url:
                type: string
              uuid:
                type: string
            required:
              - uuid
            type: object
          type: array
        count:
          description: Number of open browsers
          type: integer
      required:
        - count
        - browsers
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: true
      readOnlyHint: true
      title: Get All Browser URLs
    description: "Get every open browser's uuid, url and title (copy all URLs)"
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      type: object
    name: browsers_get_urls
    outputSchema:
      additionalProperties: true
      properties:
        browsers:
          description: "Open browsers (uuid, url, title)"
          items:
            additionalProperties: true
            type: object
          type: array
        count:
          description: Number of open browsers
          type: integer
      required:
        - count
        - browsers
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Batch Browser Operations
    description: Execute multiple browser operations in sequence on one or multiple browsers (100 operations per browser max)
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        browser_uuid:
          description: "Single browser UUID (use this OR browsers array, not both)"
          type: string
        browsers:
          description: Array of browser configurations for multi-browser operations
          items:
            properties:
              browser_uuid:
                description: Browser UUID
                type: string
              operations:
                description: Operations for this browser (max 100 per browser)
                items:
                  properties:
                    params:
                      description: Tool parameters
                      type: object
                    tool:
                      description: Tool name
                      type: string
                  required:
                    - tool
                    - params
                  type: object
                type: array
            required:
              - browser_uuid
              - operations
            type: object
          type: array
        continue_on_error:
          description: "Continue executing if an operation fails (default: false)"
          type: boolean
        operations:
          description: Operations for single browser mode (max 100 per browser)
          items:
            properties:
              params:
                description: Parameters for the tool
                type: object
              tool:
                description: "Tool name (e.g., 'navigate', 'click', 'type')"
                type: string
            required:
              - tool
              - params
            type: object
          type: array
      type: object
    name: browser_batch
    outputSchema:
      additionalProperties: true
      description: "Single-browser mode reports browser_uuid and operations; multi-browser mode reports browsers, each with its own operations."
      properties:
        browser_uuid:
          description: Present in single-browser mode only
          type: string
        browsers:
          description: Per-browser results. Present in multi-browser mode only.
          items:
            additionalProperties: true
            properties:
              browser_index:
                description: Position of this browser in the submitted array
                type: integer
              browser_uuid:
                type: string
              failure_count:
                type: integer
              operations:
                description: Per-operation results for this browser
                items:
                  additionalProperties: true
                  type: object
                type: array
              success_count:
                type: integer
              total_operations:
                type: integer
            required:
              - browser_uuid
              - operations
            type: object
          type: array
        continue_on_error:
          description: Whether the batch was told to keep going past a failure
          type: boolean
        failed:
          type: integer
        operations:
          description: "Per-operation results, in submission order. Present in single-browser mode only."
          items:
            additionalProperties: true
            properties:
              bytes:
                description: Encoded size of an image result
                type: integer
              error:
                description: Failure message. Present only when success is false.
                type: string
              mime_type:
                description: Present for image results
                type: string
              operation_index:
                type: integer
              structuredContent:
                additionalProperties: true
                description: "The sub-tool's own payload, whole and untruncated. Present when that tool emits one."
                type: object
              success:
                type: boolean
              text:
                description: "The sub-tool's text output, untruncated. Present when it emits no structured payload."
                type: string
              tool:
                type: string
              type:
                description: Set to image for screenshot operations
                type: string
            required:
              - operation_index
              - tool
              - success
            type: object
          type: array
        screenshots:
          description: "Number of image results. Present only when the batch captured any; the images themselves travel as content items, not in this payload."
          type: integer
        successful:
          type: integer
        total_browsers:
          description: Present in multi-browser mode only
          type: integer
        total_operations:
          description: Operations actually attempted
          type: integer
      required:
        - total_operations
        - successful
        - failed
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List Layouts
    description: List all available layouts/docks
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      type: object
    name: layout_list
    outputSchema:
      additionalProperties: true
      properties:
        count:
          type: integer
        layouts:
          description: "Layouts (uuid, name)"
          items:
            additionalProperties: true
            type: object
          type: array
      required:
        - count
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: false
      readOnlyHint: false
      title: Create Layout
    description: Create a new layout/dock
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        name:
          description: Name for the new layout
          type: string
      required:
        - name
      type: object
    name: layout_create
    outputSchema:
      additionalProperties: true
      properties:
        name:
          type: string
        success:
          type: boolean
        uuid:
          type: string
      required:
        - success
      type: object
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Delete Layout
    description: Delete a layout/dock
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        layout_uuid:
          description: "Layout UUID to delete (optional, defaults to first layout)"
          type: string
      type: object
    name: layout_delete
    outputSchema:
      additionalProperties: true
      properties:
        success:
          type: boolean
        uuid:
          type: string
      required:
        - success
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Rename Layout
    description: Rename a layout/dock
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        layout_uuid:
          description: "Layout UUID to rename (optional, defaults to first layout)"
          type: string
        name:
          description: New name for the layout
          type: string
      required:
        - name
      type: object
    name: layout_rename
    outputSchema:
      additionalProperties: true
      properties:
        name:
          type: string
        success:
          type: boolean
        uuid:
          type: string
      required:
        - success
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Get Layout Info
    description: "Get information about a layout, including the readable counterparts to layout_set_locked, layout_set_resolution, layout_toggle_fullscreen and layout_set_mute_all."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        layout_uuid:
          description: "Layout UUID (optional, defaults to first layout)"
          type: string
      type: object
    name: layout_get_info
    outputSchema:
      additionalProperties: true
      properties:
        all_muted:
          description: True only when the layout has browsers and every one of them is muted
          type: boolean
        browser_count:
          type: integer
        fullscreen:
          description: Whether the layout window is fullscreen (see layout_toggle_fullscreen)
          type: boolean
        height:
          description: Current height in pixels (see layout_set_resolution)
          type: integer
        locked:
          description: Whether the layout is locked (see layout_set_locked)
          type: boolean
        muted_browsers:
          description: "How many of the layout's browsers are muted (see layout_set_mute_all)"
          type: integer
        name:
          type: string
        uuid:
          type: string
        width:
          description: Current width in pixels (see layout_set_resolution)
          type: integer
      required:
        - uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Get Layout Browsers
    description: Get browsers in a layout
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        layout_uuid:
          description: "Layout UUID (optional, defaults to first layout)"
          type: string
      type: object
    name: layout_get_browsers
    outputSchema:
      additionalProperties: true
      properties:
        browsers:
          type: array
        count:
          type: integer
        uuid:
          type: string
      required:
        - count
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Get Layout Apps
    description: Get applications in a layout
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        layout_uuid:
          description: "Layout UUID (optional, defaults to first layout)"
          type: string
      type: object
    name: layout_get_apps
    outputSchema:
      additionalProperties: true
      properties:
        apps:
          type: array
        count:
          type: integer
        layout_uuid:
          type: string
      required:
        - count
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Screenshot Layout
    description: Take a screenshot of the entire layout window at its exact dimensions
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        layout_uuid:
          description: "Layout UUID (optional, defaults to first layout)"
          type: string
      type: object
    name: layout_screenshot
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Close All Docks
    description: "Close all dock widgets of specified types. Use to bulk-close browsers, native apps, video players, etc."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        layout_uuid:
          description: "Layout UUID to close widgets in (optional, defaults to all layouts)"
          type: string
        types:
          description: "Dock types to close. If omitted, closes every type."
          items:
            enum:
              - browser
              - native
              - video
              - bookmarks
              - settings
            type: string
          type: array
      type: object
    name: layout_close_all
    outputSchema:
      additionalProperties: true
      properties:
        closed:
          type: integer
        success:
          type: boolean
        total:
          type: integer
        types:
          type: string
      required:
        - success
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Lock Layout
    description: "Lock or unlock a layout. A locked layout prevents docks from being moved, resized, or closed."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        layout_uuid:
          description: "Layout UUID (optional, defaults to first layout)"
          type: string
        locked:
          description: "true to lock, false to unlock (default true)"
          type: boolean
      type: object
    name: layout_set_locked
    outputSchema:
      additionalProperties: true
      properties:
        success:
          type: boolean
        uuid:
          type: string
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Layout Resolution
    description: Set a fixed pixel resolution for the layout window (useful for consistent screenshots or device-size testing).
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        height:
          description: Height in pixels
          type: integer
        layout_uuid:
          description: "Layout UUID (optional, defaults to first layout)"
          type: string
        width:
          description: Width in pixels
          type: integer
      required:
        - width
        - height
      type: object
    name: layout_set_resolution
    outputSchema:
      additionalProperties: true
      properties:
        success:
          type: boolean
        uuid:
          type: string
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Reset Layout Resolution
    description: Clear a custom layout resolution and return the window to free/auto sizing.
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        layout_uuid:
          description: "Layout UUID (optional, defaults to first layout)"
          type: string
      type: object
    name: layout_reset_resolution
    outputSchema:
      additionalProperties: true
      properties:
        success:
          type: boolean
        uuid:
          type: string
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: false
      readOnlyHint: false
      title: Equalize Layout
    description: Equalize the dock splitters so the tiled docks share space evenly (tidy up the layout).
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        layout_uuid:
          description: "Layout UUID (optional, defaults to first layout)"
          type: string
      type: object
    name: layout_equalize
    outputSchema:
      additionalProperties: true
      properties:
        success:
          type: boolean
        uuid:
          type: string
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: false
      readOnlyHint: false
      title: Open Dock
    description: "Open a non-browser dock in the layout: a downloads panel, history panel, or new-window panel."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        layout_uuid:
          description: "Layout UUID (optional, defaults to first layout)"
          type: string
        type:
          description: Which dock to open
          enum:
            - downloads
            - history
            - new_window
          type: string
      required:
        - type
      type: object
    name: layout_open_dock
    outputSchema:
      additionalProperties: true
      properties:
        success:
          type: boolean
        uuid:
          type: string
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Mute All Browsers
    description: Mute or unmute all browsers in the layout at once.
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        layout_uuid:
          description: "Layout UUID (optional, defaults to first layout)"
          type: string
        muted:
          description: "true to mute all, false to unmute (default true)"
          type: boolean
      type: object
    name: layout_set_mute_all
    outputSchema:
      additionalProperties: true
      properties:
        success:
          type: boolean
        uuid:
          type: string
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: false
      readOnlyHint: false
      title: Toggle Fullscreen
    description: Toggle fullscreen mode for the layout window.
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        layout_uuid:
          description: "Layout UUID (optional, defaults to first layout)"
          type: string
      type: object
    name: layout_toggle_fullscreen
    outputSchema:
      additionalProperties: true
      properties:
        success:
          type: boolean
        uuid:
          type: string
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List Profiles
    description: "List all browser profiles: which one is the default, which are temporary, and which have a proxy configured. Does not return proxy values - the stored form embeds credentials."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      type: object
    name: profile_list
    outputSchema:
      additionalProperties: true
      properties:
        count:
          type: integer
        profiles:
          description: Profiles
          items:
            additionalProperties: true
            properties:
              is_default:
                description: Whether this is the default profile (see profile_set_default)
                type: boolean
              is_temporary:
                description: Whether the profile was created via profile_create_temporary
                type: boolean
              name:
                type: string
              proxy_is_set:
                description: Whether a proxy is configured. The value is deliberately not returned - it embeds credentials.
                type: boolean
            required:
              - name
            type: object
          type: array
      required:
        - count
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Get Default Profile
    description: Get default browser profile
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      type: object
    name: profile_get_default
    outputSchema:
      additionalProperties: true
      properties:
        default_profile:
          type: string
        is_set:
          type: boolean
      required:
        - is_set
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: false
      readOnlyHint: false
      title: Create Profile
    description: Create a new browser profile
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        name:
          description: Name for the new profile
          type: string
      required:
        - name
      type: object
    name: profile_create
    outputSchema:
      additionalProperties: true
      properties:
        profile:
          type: string
        success:
          type: boolean
      required:
        - success
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: false
      readOnlyHint: false
      title: Create Temporary Profile
    description: Create a temporary browser profile
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        name:
          description: Name for the temporary profile
          type: string
      required:
        - name
      type: object
    name: profile_create_temporary
    outputSchema:
      additionalProperties: true
      properties:
        id:
          type: integer
        profile:
          type: string
        success:
          type: boolean
      required:
        - success
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Rename Profile
    description: Rename a browser profile (automatically handles both regular and temporary profiles)
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        new_name:
          description: New profile name
          type: string
        old_name:
          description: Current profile name
          type: string
      required:
        - old_name
        - new_name
      type: object
    name: profile_rename
    outputSchema:
      additionalProperties: true
      properties:
        new_name:
          type: string
        old_name:
          type: string
        success:
          type: boolean
      required:
        - success
      type: object
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Delete Profile
    description: Delete a browser profile
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        name:
          description: Profile name to delete
          type: string
      required:
        - name
      type: object
    name: profile_delete
    outputSchema:
      additionalProperties: true
      properties:
        profile:
          type: string
        success:
          type: boolean
      required:
        - success
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Default Profile
    description: Set default browser profile
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        name:
          description: Profile name to set as default
          type: string
      required:
        - name
      type: object
    name: profile_set_default
    outputSchema:
      additionalProperties: true
      properties:
        profile:
          type: string
        success:
          type: boolean
      required:
        - success
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Get Profile Proxy
    description: "Get the proxy configured for a browser profile, with any credentials stripped. Returns scheme://host:port only - the stored form embeds user:pass, which is never returned over the API."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        name:
          description: Profile name to get proxy for
          type: string
      required:
        - name
      type: object
    name: profile_get_proxy
    outputSchema:
      additionalProperties: true
      properties:
        has_credentials:
          description: Whether the stored proxy carries a username or password
          type: boolean
        is_set:
          type: boolean
        profile:
          type: string
        proxy:
          description: "scheme://host:port, credentials removed. Empty when unset or unparseable."
          type: string
      required:
        - is_set
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Profile Proxy
    description: Set the proxy address for a browser profile. Affects new browsers created with this profile (already-running browsers are unaffected).
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        name:
          description: Profile name to set proxy for
          type: string
        proxy:
          description: "Proxy address (e.g. http://host:port or socks5://host:port)"
          type: string
      required:
        - name
        - proxy
      type: object
    name: profile_set_proxy
    outputSchema:
      additionalProperties: true
      properties:
        profile:
          type: string
        proxy:
          type: string
        success:
          type: boolean
      required:
        - success
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List Workspaces
    description: List all available workspaces
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: workspace_list
    outputSchema:
      additionalProperties: true
      properties:
        count:
          type: integer
        workspaces:
          items:
            additionalProperties: true
            properties:
              id:
                type: integer
              name:
                type: string
            type: object
          type: array
      required:
        - count
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: false
      readOnlyHint: false
      title: Create Workspace
    description: Create a new workspace
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        name:
          description: Name for the new workspace
          type: string
      required:
        - name
      type: object
    name: workspace_create
    outputSchema:
      additionalProperties: true
      properties:
        id:
          type: integer
        name:
          type: string
        success:
          type: boolean
      required:
        - success
      type: object
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Delete Workspace
    description: Delete a workspace
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        workspace_id:
          description: Workspace id to delete (from workspace_list)
          type: number
      required:
        - workspace_id
      type: object
    name: workspace_delete
    outputSchema:
      additionalProperties: true
      properties:
        success:
          type: boolean
        workspace_id:
          type: integer
      required:
        - success
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Rename Workspace
    description: Rename a workspace
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        name:
          description: Name for the new workspace
          type: string
        workspace_id:
          description: Workspace id to rename (from workspace_list)
          type: number
      required:
        - workspace_id
        - name
      type: object
    name: workspace_rename
    outputSchema:
      additionalProperties: true
      properties:
        name:
          type: string
        success:
          type: boolean
        workspace_id:
          type: integer
      required:
        - success
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Workspace Homepage
    description: Set workspace homepage URL
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        url:
          description: Homepage URL
          type: string
        workspace_id:
          description: Workspace id whose homepage is being set (from workspace_list)
          type: number
      required:
        - workspace_id
        - url
      type: object
    name: workspace_set_homepage
    outputSchema:
      additionalProperties: true
      properties:
        success:
          type: boolean
        url:
          type: string
        workspace_id:
          type: integer
      required:
        - success
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Startup Workspace
    description: Set workspace as startup workspace
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        workspace_id:
          description: Workspace id to open on startup (from workspace_list)
          type: number
      required:
        - workspace_id
      type: object
    name: workspace_set_startup
    outputSchema:
      additionalProperties: true
      properties:
        success:
          type: boolean
        workspace_id:
          type: integer
      required:
        - success
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Switch Workspace
    description: Switch to a different workspace
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        workspace_id:
          description: Workspace id to switch to (from workspace_list)
          type: number
      required:
        - workspace_id
      type: object
    name: workspace_switch
    outputSchema:
      additionalProperties: true
      properties:
        success:
          type: boolean
        workspace_id:
          type: integer
      required:
        - success
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Get Current Workspace
    description: Get the currently active workspace
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: workspace_get_current
    outputSchema:
      additionalProperties: true
      properties:
        id:
          type: integer
        name:
          type: string
      required:
        - id
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Get Startup Workspace
    description: Get the startup workspace information
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: workspace_get_startup
    outputSchema:
      additionalProperties: true
      properties:
        configured:
          type: boolean
        exists:
          type: boolean
        id:
          type: integer
        name:
          type: string
      required:
        - configured
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Get Workspace Info
    description: Get information about a workspace
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        workspace_id:
          description: Workspace id to describe (from workspace_list)
          type: number
      required:
        - workspace_id
      type: object
    name: workspace_get_info
    outputSchema:
      additionalProperties: true
      properties:
        homepage:
          description: Homepage URL (see workspace_set_homepage)
          type: string
        id:
          type: integer
        is_startup:
          description: Whether this workspace opens at launch (see workspace_set_startup)
          type: boolean
        layout_count:
          type: integer
        name:
          type: string
      required:
        - id
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Get Workspace Layouts
    description: Get all layouts associated with a workspace
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        workspace_id:
          description: Workspace id whose layouts to list (from workspace_list)
          type: number
      required:
        - workspace_id
      type: object
    name: workspace_get_layouts
    outputSchema:
      additionalProperties: true
      properties:
        count:
          type: integer
        layouts:
          items:
            additionalProperties: true
            properties:
              app_index:
                type: integer
              title:
                type: string
            type: object
          type: array
        workspace_id:
          type: integer
      required:
        - count
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List Processes
    description: "List visible top-level OS windows that can be mounted as native app docks, including process name, PID, and window title"
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        refresh:
          description: Re-scan running processes before listing (optional)
          type: boolean
      type: object
    name: native_app_list_processes
    outputSchema:
      additionalProperties: true
      properties:
        count:
          type: integer
        processes:
          items:
            additionalProperties: false
            properties:
              pid:
                type: integer
              process_name:
                type: string
              title:
                type: string
            required:
              - process_name
              - pid
              - title
            type: object
          type: array
      required:
        - count
        - processes
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List App Docks
    description: List native app docks mounted in a layout (full JSON)
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        layout_uuid:
          description: "Layout UUID (optional, defaults to first layout)"
          type: string
      type: object
    name: native_app_list
    outputSchema:
      additionalProperties: true
      properties:
        apps:
          items:
            additionalProperties: true
            type: object
          type: array
        count:
          type: integer
        layout_uuid:
          type: string
      required:
        - apps
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: App Info
    description: Get full info for a mounted native app by UUID
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        uuid:
          description: Native app UUID
          type: string
      required:
        - uuid
      type: object
    name: native_app_info
    outputSchema:
      additionalProperties: true
      properties:
        custom_title:
          type: string
        is_locked:
          type: boolean
        is_running:
          type: boolean
        is_valid:
          type: boolean
        layout_uuid:
          type: string
        pid:
          type: integer
        process_name:
          type: string
        uuid:
          type: string
      required:
        - uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: false
      readOnlyHint: false
      title: Mount App
    description: Mount a running native window as a dock in a layout
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        custom_title:
          description: Custom dock title (optional)
          type: string
        layout_uuid:
          description: "Layout UUID (optional, defaults to first layout)"
          type: string
        pid:
          description: Specific process id to disambiguate (optional)
          type: integer
        process_name:
          description: Process/window name to mount
          type: string
      required:
        - process_name
      type: object
    name: native_app_mount
    outputSchema:
      additionalProperties: true
      properties:
        layout_uuid:
          type: string
        process_name:
          type: string
        uuid:
          type: string
      required:
        - uuid
      type: object
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Dismount App
    description: Dismount (unembed) a native app dock by UUID
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        uuid:
          description: Native app UUID
          type: string
      required:
        - uuid
      type: object
    name: native_app_dismount
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Lock App
    description: Lock or unlock a native app dock
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        locked:
          description: "true to lock, false to unlock (default true)"
          type: boolean
        uuid:
          description: Native app UUID
          type: string
      required:
        - uuid
      type: object
    name: native_app_lock
    outputSchema:
      additionalProperties: true
      properties:
        is_locked:
          type: boolean
        success:
          type: boolean
        uuid:
          type: string
      required:
        - success
        - uuid
        - is_locked
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Dock Title
    description: Set the custom title of a native app dock
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        title:
          description: New custom title
          type: string
        uuid:
          description: Native app UUID
          type: string
      required:
        - uuid
        - title
      type: object
    name: native_app_set_title
    outputSchema:
      additionalProperties: true
      properties:
        custom_title:
          type: string
        success:
          type: boolean
        uuid:
          type: string
      required:
        - success
        - uuid
        - custom_title
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List Adblock Filter Lists
    description: "List all adblock filter lists (id, name, url, enabled, rule_count, last_updated)"
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: adblock_list
    outputSchema:
      additionalProperties: true
      properties:
        count:
          description: Number of filter lists
          type: integer
        lists:
          description: "Filter lists (id, name, url, enabled, rule_count, last_updated)"
          items:
            additionalProperties: true
            type: object
          type: array
      required:
        - count
        - lists
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Add Adblock Filter List
    description: Add a new adblock filter list by URL
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        enabled:
          description: Enable immediately and download (default true)
          type: boolean
        name:
          description: Display name for the list
          type: string
        url:
          description: Filter list URL
          type: string
      required:
        - name
        - url
      type: object
    name: adblock_add
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Remove Adblock Filter List
    description: Remove an adblock filter list by id
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        id:
          description: Filter list id
          type: integer
      required:
        - id
      type: object
    name: adblock_remove
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Enable Adblock Filter List
    description: Enable or disable an adblock filter list by id
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        enabled:
          description: "true to enable, false to disable (default true)"
          type: boolean
        id:
          description: Filter list id
          type: integer
      required:
        - id
      type: object
    name: adblock_enable
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Update All Adblock Filter Lists
    description: Trigger a refresh/download of all enabled filter lists
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: adblock_update_all
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Update Adblock Filter List
    description: Trigger a refresh/download of a single filter list by id
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        id:
          description: Filter list id
          type: integer
      required:
        - id
      type: object
    name: adblock_update
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Adblock Auto-Update
    description: Configure periodic auto-update of filter lists
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        enabled:
          description: Enable periodic auto-update (default true)
          type: boolean
        interval_hours:
          description: Hours between updates (default 24)
          maximum: 8760
          minimum: 1
          type: integer
      type: object
    name: adblock_set_auto_update
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Get Adblock Override
    description: "Get a profile's adblock override (on/off/inherit) and the effective enabled state"
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        profile:
          description: Profile name
          type: string
      required:
        - profile
      type: object
    name: adblock_get_override
    outputSchema:
      additionalProperties: true
      properties:
        effective_enabled:
          description: Effective enabled state for the profile
          type: boolean
        override:
          description: "Override value (on, off, or inherit)"
          type: string
        profile:
          description: Profile name
          type: string
      required:
        - profile
        - override
        - effective_enabled
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Adblock Override
    description: "Set a profile's adblock override"
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        override:
          description: "Per-profile adblock override; 'inherit' follows the global adblock_enabled setting"
          enum:
            - "on"
            - "off"
            - inherit
          type: string
        profile:
          description: Profile name
          type: string
      required:
        - profile
        - override
      type: object
    name: adblock_set_override
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List Adblock Site Exceptions
    description: List the hosts that are excepted from adblocking. Each entry also covers its subdomains.
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: adblock_list_whitelist
    outputSchema:
      properties:
        count:
          type: integer
        hosts:
          description: "Whitelisted hosts, sorted"
          items:
            type: string
          type: array
      required:
        - count
        - hosts
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Check Adblock Site Exception
    description: "Check whether a host is excepted from adblocking. Matching is subdomain-inclusive, so an entry for example.com reports true for www.example.com."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        host:
          description: Host to check. A full URL is accepted and reduced to its host.
          type: string
      required:
        - host
      type: object
    name: adblock_get_whitelist
    outputSchema:
      properties:
        host:
          description: The normalized host that was checked
          type: string
        whitelisted:
          type: boolean
      required:
        - host
        - whitelisted
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Adblock Site Exception
    description: "Add or remove a host from the adblock site exceptions. Adding a host that is already excepted is a no-op, reported as changed=false."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        host:
          description: Host to except. A full URL is accepted and reduced to its host.
          type: string
        whitelisted:
          description: "true to except the host from adblocking, false to resume blocking on it"
          type: boolean
      required:
        - host
        - whitelisted
      type: object
    name: adblock_set_whitelist
    outputSchema:
      properties:
        changed:
          description: False when the host was already in that state
          type: boolean
        host:
          description: The normalized host that was written
          type: string
        whitelisted:
          description: The state requested
          type: boolean
      required:
        - host
        - whitelisted
        - changed
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List Site Permissions
    description: "List all remembered site permission decisions (host, permission_type, label, allowed)"
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: permission_list
    outputSchema:
      additionalProperties: true
      properties:
        count:
          description: Number of remembered permissions
          type: integer
        permissions:
          description: "Remembered permissions (host, permission_type, label, state, allowed, created, updated)"
          items:
            additionalProperties: true
            type: object
          type: array
      required:
        - count
        - permissions
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List Permission Types
    description: "List every permission type that can be granted or denied, with a human-readable label. Call this to discover valid permission_type values for permission_set and permission_remove."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: permission_list_types
    outputSchema:
      additionalProperties: true
      properties:
        count:
          description: Number of permission types
          type: integer
        permission_types:
          description: Permission types
          items:
            additionalProperties: true
            properties:
              label:
                description: "Human-readable name, e.g. Camera"
                type: string
              permission_type:
                description: Value to pass as permission_type
                type: string
            required:
              - permission_type
              - label
            type: object
          type: array
      required:
        - count
        - permission_types
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Site Permission
    description: "Remember a permission decision for a host, as if the user had answered a prompt with 'remember this choice'. Takes effect immediately, without a restart."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        allowed:
          description: "true to grant, false to deny"
          type: boolean
        host:
          description: "Host the decision applies to, e.g. example.com"
          type: string
        permission_type:
          description: Permission type (from permission_list_types)
          type: string
      required:
        - host
        - permission_type
        - allowed
      type: object
    name: permission_set
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Forget Site Permission
    description: Forget one remembered permission decision for a host. permission_type is the stored value from permission_list or permission_list_types
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        host:
          description: Host the permission was remembered for
          type: string
        permission_type:
          description: Stored permission type (from permission_list)
          type: string
      required:
        - host
        - permission_type
      type: object
    name: permission_remove
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Forget Host Permissions
    description: Forget every remembered permission decision for a host
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        host:
          description: Host to forget all permissions for
          type: string
      required:
        - host
      type: object
    name: permission_remove_host
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Clear All Site Permissions
    description: Forget every remembered permission decision for all hosts
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: permission_clear
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Setting
    description: "Set an application setting by key. Call settings_list first for each key's type, permitted values, bounds and whether it is writable."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        key:
          description: Writable setting key (see settings_list)
          enum:
            - launch_on_startup
            - scripts_enabled
            - trading_tools_enabled
            - privacy_tools_enabled
            - floating_windows_enabled
            - theme_id
            - web_content_color_scheme
            - icon_scale
            - dock_divider_thickness
            - dock_titlebar_visibility
            - titlebar_show_profile
            - titlebar_show_proxy
            - default_search_engine_id
            - default_zoom
            - download_directory
            - tracking_prevention
            - auto_suggest_interval_ms
          type: string
        value:
          description: Setting value; type depends on the key (see settings_list)
      required:
        - key
        - value
      type: object
    name: settings_set
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List Settings
    description: "List every application setting with its type, whether it is writable, its current value, permitted values and bounds. Use this to discover valid keys before calling settings_set."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: settings_list
    outputSchema:
      additionalProperties: true
      properties:
        count:
          description: Number of settings returned
          type: integer
        settings:
          description: Setting descriptors
          items:
            additionalProperties: true
            properties:
              description:
                type: string
              enum:
                description: Permitted values; present only for enum settings
                items:
                  type: string
                type: array
              key:
                description: Setting key used by settings_set
                type: string
              maximum:
                description: Inclusive upper bound; present only for bounded numbers
                type: number
              minimum:
                description: Inclusive lower bound; present only for bounded numbers
                type: number
              read_only_reason:
                description: Why the setting cannot be written; present only when writable is false
                type: string
              type:
                description: "boolean, integer, number or string"
                type: string
              value:
                description: Current value
              writable:
                description: False when the setting can only be read
                type: boolean
            required:
              - key
              - type
              - writable
              - value
            type: object
          type: array
      required:
        - count
        - settings
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Get Settings
    description: "Get current values of application settings (the readable counterpart to settings_set) - behaviour/features, appearance, browsing, and API-surface flags. The API key/secret is never returned."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: settings_get
    outputSchema:
      additionalProperties: true
      properties:
        settings:
          additionalProperties: true
          description: Current setting values keyed by setting name
          type: object
      required:
        - settings
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List Themes
    description: "List available themes (id, name, is_dark, is_core). The id is what settings_set writes to theme_id."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: theme_list
    outputSchema:
      additionalProperties: true
      properties:
        count:
          description: Number of themes returned
          type: integer
        themes:
          description: "Available themes (id, name, is_dark, is_core)"
          items:
            additionalProperties: true
            type: object
          type: array
      required:
        - count
        - themes
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List Search Engines
    description: "List configured search engines (id, name, url). The id is what settings_set writes to default_search_engine_id and what search accepts as engine_id."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: search_engine_list
    outputSchema:
      additionalProperties: true
      properties:
        count:
          description: Number of search engines returned
          type: integer
        search_engines:
          description: "Configured search engines (id, name, url)"
          items:
            additionalProperties: true
            type: object
          type: array
      required:
        - count
        - search_engines
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: false
      readOnlyHint: false
      title: Create Search Engine
    description: "Add a search engine. The URL must contain the {searchTerms} placeholder where the query is inserted. A bare host gains an https:// prefix. Both name and URL must be unique."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        name:
          description: "Display name, must not collide with an existing engine"
          type: string
        url:
          description: "Search URL containing {searchTerms}, e.g. https://www.google.com/search?q={searchTerms}"
          type: string
      required:
        - name
        - url
      type: object
    name: search_engine_create
    outputSchema:
      properties:
        id:
          description: "Id of the new engine, usable as default_search_engine_id"
          type: integer
        name:
          type: string
        url:
          description: "URL as stored, after normalization"
          type: string
      required:
        - id
        - name
        - url
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Update Search Engine
    description: "Rename a search engine, change its URL, or both. Omit a field to leave it unchanged. A changed URL must still contain the {searchTerms} placeholder."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        id:
          description: Engine id from search_engine_list
          type: integer
        name:
          description: New display name. Omit to leave unchanged.
          type: string
        url:
          description: "New search URL containing {searchTerms}. Omit to leave unchanged."
          type: string
      required:
        - id
      type: object
    name: search_engine_update
    outputSchema:
      properties:
        id:
          type: integer
        name:
          type: string
        url:
          description: "URL as stored, after normalization"
          type: string
      required:
        - id
        - name
        - url
      type: object
  - annotations:
      destructiveHint: true
      idempotentHint: false
      openWorldHint: false
      readOnlyHint: false
      title: Delete Search Engine
    description: Remove a search engine. Refused for the engine currently set as default - point default_search_engine_id at another engine first.
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        id:
          description: Engine id from search_engine_list
          type: integer
      required:
        - id
      type: object
    name: search_engine_delete
    outputSchema:
      properties:
        deleted:
          type: boolean
        id:
          type: integer
      required:
        - id
        - deleted
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List Bookmarks
    description: "List bookmarks (id, name, url, category_id, tags). Optional profile filter. Supports limit + offset paging; response includes total."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        limit:
          description: Max rows to return (0 = all)
          type: integer
        offset:
          description: Row offset for paging (default 0)
          type: integer
        profile:
          description: "Profile name (optional, defaults to default profile)"
          type: string
      type: object
    name: bookmark_list
    outputSchema:
      additionalProperties: true
      properties:
        bookmarks:
          description: "Bookmarks (id, name, url, category_id, origin_profile_id, tags)"
          items:
            additionalProperties: true
            type: object
          type: array
        count:
          type: integer
      required:
        - count
        - bookmarks
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List Bookmark Categories
    description: "List bookmark categories (id, name, parent_id, color, path, depth)"
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        profile:
          description: Profile name (optional)
          type: string
      type: object
    name: bookmark_list_categories
    outputSchema:
      additionalProperties: true
      properties:
        categories:
          description: "Categories (id, name, parent_id, color, path, depth)"
          items:
            additionalProperties: true
            type: object
          type: array
        count:
          type: integer
      required:
        - count
        - categories
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List Bookmark Tags
    description: "List every distinct tag used across saved bookmarks, sorted alphabetically. Call this to discover valid values for the tags parameter on bookmark_create and bookmark_update. Unlike bookmark_list, this is not scoped to a profile - tags are shared across all bookmarks."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: bookmark_list_tags
    outputSchema:
      properties:
        count:
          type: integer
        tags:
          description: "Distinct tag names, sorted"
          items:
            type: string
          type: array
      required:
        - count
        - tags
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: false
      readOnlyHint: false
      title: Create Bookmark Category
    description: "Create a bookmark category and return its id, which bookmark_create and bookmark_update take as category_id."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        name:
          description: Category name
          type: string
        parent_id:
          description: Parent category id to nest under (from bookmark_list_categories). Omit for a top-level category.
          type: integer
        profile:
          description: Profile name (optional)
          type: string
      required:
        - name
      type: object
    name: bookmark_create_category
    outputSchema:
      additionalProperties: true
      properties:
        category_id:
          description: Id of the created category
          type: integer
        name:
          type: string
        parent_id:
          description: Present only when the category was nested
          type: integer
        success:
          type: boolean
      required:
        - success
        - category_id
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Rename Bookmark Category
    description: Rename a bookmark category
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        category_id:
          description: Category id (from bookmark_list_categories)
          type: integer
        name:
          description: New category name
          type: string
      required:
        - category_id
        - name
      type: object
    name: bookmark_rename_category
    outputSchema:
      additionalProperties: true
      properties:
        category_id:
          type: integer
        name:
          type: string
        success:
          type: boolean
      required:
        - success
      type: object
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Delete Bookmark Category
    description: Delete a bookmark category. Fails if it still holds bookmarks or child categories unless delete_contents is true.
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        category_id:
          description: Category id (from bookmark_list_categories)
          type: integer
        delete_contents:
          description: Also delete the bookmarks and child categories inside it (default false)
          type: boolean
        profile:
          description: Profile name (optional)
          type: string
      required:
        - category_id
      type: object
    name: bookmark_delete_category
    outputSchema:
      additionalProperties: true
      properties:
        category_id:
          type: integer
        deleted_contents:
          description: Whether contents were deleted along with the category
          type: boolean
        success:
          type: boolean
      required:
        - success
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: false
      readOnlyHint: false
      title: Create Bookmark
    description: Create a bookmark
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        category_id:
          description: Category id (optional)
          type: integer
        name:
          description: Bookmark title
          type: string
        profile:
          description: Profile name (optional)
          type: string
        tags:
          description: Tags (optional)
          items:
            type: string
          type: array
        url:
          description: Bookmark URL
          type: string
      required:
        - name
        - url
      type: object
    name: bookmark_create
    outputSchema:
      additionalProperties: true
      properties:
        id:
          type: integer
        name:
          type: string
        url:
          type: string
      required:
        - id
      type: object
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Delete Bookmark
    description: Delete a bookmark by id
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        id:
          description: Bookmark id
          type: integer
      required:
        - id
      type: object
    name: bookmark_delete
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Update Bookmark
    description: "Update a bookmark's title, url, and/or category by id (unspecified fields keep their current value)"
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        category_id:
          description: New category id (optional)
          type: integer
        id:
          description: Bookmark id
          type: integer
        title:
          description: New title (optional)
          type: string
        url:
          description: New URL (optional)
          type: string
      required:
        - id
      type: object
    name: bookmark_update
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Open Bookmark
    description: Open a bookmark in a new browser
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        id:
          description: Bookmark id
          type: integer
        layout_uuid:
          description: "Layout UUID (optional, defaults to first layout)"
          type: string
        profile:
          description: Profile to open under (optional)
          type: string
      required:
        - id
      type: object
    name: bookmark_open
    outputSchema:
      additionalProperties: true
      properties:
        bookmark_id:
          type: integer
        browser_uuid:
          type: string
        url:
          type: string
      required:
        - bookmark_id
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List History
    description: "List/search browsing history visits (visit_id, uri, title, host, profile, visit_time, counts)"
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        from:
          description: Only visits at/after this time. Epoch milliseconds (number) or ISO-8601 string (optional)
        limit:
          description: Max rows (default 50)
          type: integer
        offset:
          description: Row offset for paging (default 0)
          type: integer
        profile:
          description: Filter to a profile (optional; omit for all profiles)
          type: string
        search:
          description: Substring matched against uri and title (optional)
          type: string
        to:
          description: Only visits at/before this time. Epoch milliseconds (number) or ISO-8601 string (optional)
      type: object
    name: history_list
    outputSchema:
      additionalProperties: true
      properties:
        count:
          description: Number of visits returned in this page
          type: integer
        total:
          description: Total matching visits across all pages
          type: integer
        visits:
          description: "History visit rows (visit_id, uri, title, host, profile, visit_time, counts)"
          items:
            additionalProperties: true
            type: object
          type: array
      required:
        - count
        - total
        - visits
      type: object
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Delete History Visit
    description: Delete a single history visit by visit_id
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        visit_id:
          description: Visit id from history_list
          type: integer
      required:
        - visit_id
      type: object
    name: history_delete_visit
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Remove History URI
    description: Remove all history for a specific URL
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        uri:
          description: Exact URL to forget
          type: string
      required:
        - uri
      type: object
    name: history_remove_uri
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Clear History
    description: Clear all browsing history across every profile
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: history_clear
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List History Profiles
    description: List distinct profiles that have history visits
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: history_profiles
    outputSchema:
      additionalProperties: true
      properties:
        count:
          description: Number of distinct profiles
          type: integer
        profiles:
          description: Distinct profile names with history
          items:
            type: string
          type: array
      required:
        - count
        - profiles
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List Downloads
    description: "List active/recent downloads (uuid, filename, url, status, bytes, speed). Supports limit + offset paging; response includes total."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        limit:
          description: Max rows to return (0 = all)
          type: integer
        offset:
          description: Row offset for paging (default 0)
          type: integer
      type: object
    name: download_list
    outputSchema:
      additionalProperties: true
      properties:
        count:
          type: integer
        downloads:
          items:
            additionalProperties: true
            properties:
              end_time:
                type: string
              error:
                type: string
              filename:
                type: string
              profile:
                type: string
              received_bytes:
                type: integer
              save_path:
                type: string
              speed_bps:
                type: number
              start_time:
                type: string
              status:
                type: string
              total_bytes:
                type: integer
              url:
                type: string
              uuid:
                type: string
            type: object
          type: array
      required:
        - count
        - downloads
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Start Download
    description: "Start a managed download to the app's configured download directory and return its UUID and initial state. The transfer can be observed and controlled with the other download tools. There is intentionally no destination-path parameter, and the request does not use a browser login session."
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        url:
          description: http(s) URL of the file to download
          type: string
      required:
        - url
      type: object
    name: download_start
    outputSchema:
      additionalProperties: true
      properties:
        filename:
          type: string
        status:
          type: string
        success:
          type: boolean
        url:
          type: string
        uuid:
          type: string
      required:
        - success
        - uuid
        - url
        - filename
        - status
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Get Download
    description: Get one download by uuid
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        uuid:
          description: Download uuid
          type: string
      required:
        - uuid
      type: object
    name: download_get
    outputSchema:
      additionalProperties: true
      properties:
        end_time:
          type: string
        error:
          type: string
        filename:
          type: string
        profile:
          type: string
        received_bytes:
          type: integer
        save_path:
          type: string
        speed_bps:
          type: number
        start_time:
          type: string
        status:
          type: string
        total_bytes:
          type: integer
        url:
          type: string
        uuid:
          type: string
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Pause Download
    description: Pause an in-flight download
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        uuid:
          description: Download uuid
          type: string
      required:
        - uuid
      type: object
    name: download_pause
    outputSchema:
      additionalProperties: true
      properties:
        action:
          type: string
        success:
          type: boolean
        uuid:
          type: string
      required:
        - success
        - uuid
        - action
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Resume Download
    description: Resume a paused download
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        uuid:
          description: Download uuid
          type: string
      required:
        - uuid
      type: object
    name: download_resume
    outputSchema:
      additionalProperties: true
      properties:
        action:
          type: string
        success:
          type: boolean
        uuid:
          type: string
      required:
        - success
        - uuid
        - action
      type: object
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Cancel Download
    description: Cancel an in-flight download
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        uuid:
          description: Download uuid
          type: string
      required:
        - uuid
      type: object
    name: download_cancel
    outputSchema:
      additionalProperties: true
      properties:
        action:
          type: string
        success:
          type: boolean
        uuid:
          type: string
      required:
        - success
        - uuid
        - action
      type: object
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Remove Download
    description: Remove a download from the list (cancels first if active)
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        uuid:
          description: Download uuid
          type: string
      required:
        - uuid
      type: object
    name: download_remove
    outputSchema:
      additionalProperties: true
      properties:
        action:
          type: string
        success:
          type: boolean
        uuid:
          type: string
      required:
        - success
        - uuid
        - action
      type: object
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Clear Completed Downloads
    description: Remove all completed/cancelled/failed downloads
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: download_clear_completed
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Clear All Downloads
    description: Remove every download (cancels in-flight first)
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: download_clear_all
  - annotations:
      destructiveHint: false
      idempotentHint: false
      openWorldHint: true
      readOnlyHint: false
      title: Search Web
    description: Run a search query in a new browser using the default (or specified) search engine
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        engine_id:
          description: "Search engine id from settings_list_search_engines (optional, defaults to the configured default)"
          type: integer
        layout_uuid:
          description: "Layout UUID (optional, defaults to first layout)"
          type: string
        profile:
          description: Profile to open under (optional)
          type: string
        query:
          description: Search terms
          type: string
      required:
        - query
      type: object
    name: search
    outputSchema:
      additionalProperties: true
      properties:
        browser_uuid:
          description: UUID of the browser opened for the search
          type: string
        query:
          description: The search terms that were run
          type: string
        search_url:
          description: Resolved search engine URL that was opened
          type: string
      required:
        - browser_uuid
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: List Aliases
    description: "List website aliases (short keyword -> URL shortcuts used in the omnibox)"
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties: {}
      type: object
    name: search_alias_list
    outputSchema:
      additionalProperties: true
      properties:
        aliases:
          description: "List of website aliases (id, alias, url)"
          items:
            additionalProperties: true
            type: object
          type: array
        count:
          description: Number of aliases returned
          type: integer
      required:
        - count
        - aliases
      type: object
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Set Alias
    description: Create or update a website alias
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        alias:
          description: Alias keyword
          type: string
        url:
          description: Destination URL
          type: string
      required:
        - alias
        - url
      type: object
    name: search_alias_set
    outputSchema:
      additionalProperties: true
      properties:
        alias:
          description: Alias keyword that was set
          type: string
        url:
          description: Destination URL the alias points to
          type: string
      required:
        - alias
        - url
      type: object
  - annotations:
      destructiveHint: true
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: false
      title: Delete Alias
    description: Delete a website alias
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        alias:
          description: Alias keyword to delete
          type: string
      required:
        - alias
      type: object
    name: search_alias_delete
  - annotations:
      destructiveHint: false
      idempotentHint: true
      openWorldHint: false
      readOnlyHint: true
      title: Resolve Alias
    description: Resolve a website alias to its URL
    inputSchema:
      $schema: "https://json-schema.org/draft/2020-12/schema"
      properties:
        alias:
          description: Alias keyword
          type: string
      required:
        - alias
      type: object
    name: search_alias_resolve
    outputSchema:
      additionalProperties: true
      properties:
        alias:
          description: Alias keyword that was resolved
          type: string
        url:
          description: Destination URL the alias resolves to
          type: string
      required:
        - alias
        - url
      type: object
