tools:
  - name: browser_close
    description: Close the page
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      properties: {}
      additionalProperties: false
  - name: browser_wait
    description: Wait for a specified time in seconds
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      required:
        - time
      properties:
        time:
          type: number
          description: The time to wait in seconds
      additionalProperties: false
  - name: browser_resize
    description: Resize the browser window
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      required:
        - width
        - height
      properties:
        width:
          type: number
          description: Width of the browser window
        height:
          type: number
          description: Height of the browser window
      additionalProperties: false
  - name: browser_console_messages
    description: Returns all console messages
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      properties: {}
      additionalProperties: false
  - name: browser_handle_dialog
    description: Handle a dialog
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      required:
        - accept
      properties:
        accept:
          type: boolean
          description: Whether to accept the dialog.
        promptText:
          type: string
          description: The text of the prompt in case of a prompt dialog.
      additionalProperties: false
  - name: browser_file_upload
    description: Upload one or multiple files
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      required:
        - paths
      properties:
        paths:
          type: array
          items:
            type: string
          description: The absolute paths to the files to upload. Can be a single file or
            multiple files.
      additionalProperties: false
  - name: browser_install
    description: Install the browser specified in the config. Call this if you get
      an error about the browser not being installed.
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      properties: {}
      additionalProperties: false
  - name: browser_press_key
    description: Press a key on the keyboard
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      required:
        - key
      properties:
        key:
          type: string
          description: Name of the key to press or a character to generate, such as
            `ArrowLeft` or `a`
      additionalProperties: false
  - name: browser_navigate
    description: Navigate to a URL
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      required:
        - url
      properties:
        url:
          type: string
          description: The URL to navigate to
      additionalProperties: false
  - name: browser_navigate_back
    description: Go back to the previous page
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      properties: {}
      additionalProperties: false
  - name: browser_navigate_forward
    description: Go forward to the next page
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      properties: {}
      additionalProperties: false
  - name: browser_network_requests
    description: Returns all network requests since loading the page
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      properties: {}
      additionalProperties: false
  - name: browser_pdf_save
    description: Save page as PDF
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      properties: {}
      additionalProperties: false
  - name: browser_snapshot
    description: Capture accessibility snapshot of the current page, this is better
      than screenshot
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      properties: {}
      additionalProperties: false
  - name: browser_click
    description: Perform click on a web page
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      required:
        - element
        - ref
      properties:
        ref:
          type: string
          description: Exact target element reference from the page snapshot
        element:
          type: string
          description: Human-readable element description used to obtain permission to
            interact with the element
      additionalProperties: false
  - name: browser_drag
    description: Perform drag and drop between two elements
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      required:
        - startElement
        - startRef
        - endElement
        - endRef
      properties:
        endRef:
          type: string
          description: Exact target element reference from the page snapshot
        startRef:
          type: string
          description: Exact source element reference from the page snapshot
        endElement:
          type: string
          description: Human-readable target element description used to obtain the
            permission to interact with the element
        startElement:
          type: string
          description: Human-readable source element description used to obtain the
            permission to interact with the element
      additionalProperties: false
  - name: browser_hover
    description: Hover over element on page
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      required:
        - element
        - ref
      properties:
        ref:
          type: string
          description: Exact target element reference from the page snapshot
        element:
          type: string
          description: Human-readable element description used to obtain permission to
            interact with the element
      additionalProperties: false
  - name: browser_type
    description: Type text into editable element
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      required:
        - element
        - ref
        - text
      properties:
        ref:
          type: string
          description: Exact target element reference from the page snapshot
        text:
          type: string
          description: Text to type into the element
        slowly:
          type: boolean
          description: Whether to type one character at a time. Useful for triggering key
            handlers in the page. By default entire text is filled in at once.
        submit:
          type: boolean
          description: Whether to submit entered text (press Enter after)
        element:
          type: string
          description: Human-readable element description used to obtain permission to
            interact with the element
      additionalProperties: false
  - name: browser_select_option
    description: Select an option in a dropdown
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      required:
        - element
        - ref
        - values
      properties:
        ref:
          type: string
          description: Exact target element reference from the page snapshot
        values:
          type: array
          items:
            type: string
          description: Array of values to select in the dropdown. This can be a single
            value or multiple values.
        element:
          type: string
          description: Human-readable element description used to obtain permission to
            interact with the element
      additionalProperties: false
  - name: browser_take_screenshot
    description: Take a screenshot of the current page. You can't perform actions
      based on the screenshot, use browser_snapshot for actions.
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      properties:
        raw:
          type: boolean
          description: Whether to return without compression (in PNG format). Default is
            false, which returns a JPEG image.
        ref:
          type: string
          description: Exact target element reference from the page snapshot. If not
            provided, the screenshot will be taken of viewport. If ref is
            provided, element must be provided too.
        element:
          type: string
          description: Human-readable element description used to obtain permission to
            screenshot the element. If not provided, the screenshot will be
            taken of viewport. If element is provided, ref must be provided too.
      additionalProperties: false
  - name: browser_tab_list
    description: List browser tabs
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      properties: {}
      additionalProperties: false
  - name: browser_tab_new
    description: Open a new tab
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      properties:
        url:
          type: string
          description: The URL to navigate to in the new tab. If not provided, the new tab
            will be blank.
      additionalProperties: false
  - name: browser_tab_select
    description: Select a tab by index
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      required:
        - index
      properties:
        index:
          type: number
          description: The index of the tab to select
      additionalProperties: false
  - name: browser_tab_close
    description: Close a tab
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      properties:
        index:
          type: number
          description: The index of the tab to close. Closes current tab if not provided.
      additionalProperties: false
  - name: browser_generate_playwright_test
    description: Generate a Playwright test for given scenario
    inputSchema:
      type: object
      $schema: http://json-schema.org/draft-07/schema#
      required:
        - name
        - description
        - steps
      properties:
        name:
          type: string
          description: The name of the test
        steps:
          type: array
          items:
            type: string
          description: The steps of the test
        description:
          type: string
          description: The description of the test
      additionalProperties: false
