MCP reference

One MCP server for profiles, browsers, and Playwright.

Run the MCP helper that ships with the Windows installer, connect Claude Code, Codex, OpenClaw, or Hermes over stdio, and review every tool the server exposes per release.

Tool lists are documented for 0.1.0-beta.47, the published installer release, and for 0.1.0-beta.42, the previous release. The catalog block reflects the released installer. · Tested 2026-09-01

Direct answer

Point your MCP client at aliasmode-mcp.exe with the serve argument. The released beta.47 installer serves 40 tools (9 AliasMode plus 31 Playwright); beta.42 served 8 AliasMode tools without bulk proxy replacement.

40Tools on beta.47
31Playwright actions
stdioLocal transport

Requirements

  • AliasMode 0.1.0-beta.42 or newer installed on Windows
  • CloakBrowser installed through AliasMode
  • An MCP client such as Claude Code, Codex, OpenClaw, or Hermes
  • AliasMode Cloud sign-in for Remote MCP connections

How the local server runs

AliasMode ships one MCP server for automation clients. The Windows installer places the aliasmode-mcp helper next to the desktop executable, and the helper speaks MCP over standard input and output. Point any MCP client at the helper with the command and arguments below; serve is the default command, but generated client registrations pass it explicitly.

The helper attaches to the local AliasMode runtime. When the desktop app is closed, the helper starts it in the background and waits for readiness, so a scheduled agent run does not fail just because nobody opened the dashboard.

{
  "mcpServers": {
    "aliasmode": {
      "command": "C:\\Users\\<you>\\AppData\\Local\\AliasMode\\aliasmode-mcp.exe",
      "args": [
        "serve"
      ],
      "env": {
        "ALIASMODE_MCP_DIAGNOSTICS": "1"
      }
    }
  }
}
  • command: the full path to aliasmode-mcp.exe in the AliasMode install directory (%LOCALAPPDATA%\AliasMode by default)
  • args: ["serve"] starts the stdio server; it is also the default when args are omitted
  • env: optional. Set ALIASMODE_MCP_DIAGNOSTICS to "1" to write [aliasmode-mcp] diagnostics to stderr without touching the JSON-RPC stream

Register the server in your client

Run one command from the install directory to register AliasMode in every detected MCP client: Claude Code, Codex, OpenClaw, and Hermes. The setup removes an existing aliasmode registration first, so it is safe to run again after an update.

cd "%LOCALAPPDATA%\AliasMode"
aliasmode-mcp setup --yes

rem Restrict setup to one client:
aliasmode-mcp setup --yes --client claude

Prefer manual registration? These are the commands the setup generates for each client:

claude mcp add --scope user aliasmode -- "%LOCALAPPDATA%\AliasMode\aliasmode-mcp.exe" serve
codex mcp add aliasmode -- "%LOCALAPPDATA%\AliasMode\aliasmode-mcp.exe" serve
openclaw mcp add aliasmode --command "%LOCALAPPDATA%\AliasMode\aliasmode-mcp.exe" --arg serve
hermes mcp add aliasmode --command "%LOCALAPPDATA%\AliasMode\aliasmode-mcp.exe" --args serve

AliasMode tools

The published 0.1.0-beta.47 installer exposes these nine AliasMode tools. Opening a browser also selects it, so the Playwright tools act on that browser until another one is selected.

AliasMode tools in 0.1.0-beta.47
ToolWhat it does
aliasmode_profiles_listList AliasMode profiles and their current browser state
aliasmode_profiles_replace_proxiesDry-run or apply bulk proxy replacements to closed Cloud profiles
aliasmode_profile_createCreate a persistent profile, or an explicit temporary profile (name, group, platform, screen, proxy)
aliasmode_profile_deleteDelete a closed AliasMode profile
aliasmode_browser_openOpen a browser and select it for Playwright actions (headless, startup URLs)
aliasmode_browser_selectSelect an open AliasMode browser for subsequent Playwright actions
aliasmode_browser_statusGet the selected browser state, or the state of one profile
aliasmode_browser_closeSafely capture and close one AliasMode browser
browser_closeSafely capture and close the selected AliasMode browser

Playwright tools

Alongside the AliasMode tools, the server proxies 31 Playwright browser tools from Playwright MCP 0.0.56. They run inside the selected AliasMode browser, so every action uses the profile’s persistent data, proxy, and fingerprint.

  • Navigate and manage tabs: browser_navigate, browser_navigate_back, browser_tabs, browser_resize
  • Interact: browser_click, browser_type, browser_fill_form, browser_press_key, browser_hover, browser_drag, browser_select_option, browser_file_upload, browser_handle_dialog, browser_wait_for
  • Mouse at coordinates: browser_mouse_click_xy, browser_mouse_move_xy, browser_mouse_drag_xy
  • Inspect and verify: browser_snapshot, browser_take_screenshot, browser_console_messages, browser_network_requests, browser_evaluate, browser_run_code, browser_generate_locator, browser_verify_element_visible, browser_verify_text_visible, browser_verify_list_visible, browser_verify_value
  • Capture: browser_pdf_save, browser_start_tracing, browser_stop_tracing

Playwright actions act on the selected browser. Call aliasmode_browser_open or aliasmode_browser_select first; the catalog marks availability as after-browser-selection. The generic Playwright browser_close and browser_install tools are filtered out — closing goes through aliasmode_browser_close or the selected-browser browser_close.

Full tool catalog

The catalog below is generated from the released installer and lists the exact input schemas the server serves: 39 tools on beta.42 — 8 AliasMode tools and 31 Playwright actions.

Tool catalog

AliasMode tools 10

Profile and browser lifecycle tools that AliasMode adds in front of Playwright MCP.

aliasmode_profiles_list

List AliasMode profiles

List AliasMode profiles and their current browser state. Cloud profiles include expectedVersion and permission for editing.

Input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

aliasmode_profiles_replace_proxies

Replace AliasMode profile proxiesdestructive

Dry-run or apply bulk proxy replacements to closed AliasMode Cloud profiles. Apply always preflights first.

Input schema
{
  "type": "object",
  "properties": {
    "dryRun": {
      "type": "boolean",
      "default": true
    },
    "replacements": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "properties": {
          "profileId": {
            "type": "string",
            "minLength": 1
          },
          "username": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "expectedVersion": {
            "type": "integer",
            "minimum": 1
          },
          "proxy": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "http",
                  "https",
                  "socks5"
                ]
              },
              "host": {
                "type": "string"
              },
              "port": {
                "type": "string"
              },
              "user": {
                "type": "string"
              },
              "pass": {
                "type": "string"
              }
            },
            "required": [
              "type",
              "host",
              "port",
              "user",
              "pass"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "proxy"
        ],
        "oneOf": [
          {
            "required": [
              "profileId"
            ],
            "not": {
              "required": [
                "username"
              ]
            }
          },
          {
            "required": [
              "username"
            ],
            "not": {
              "required": [
                "profileId"
              ]
            }
          }
        ],
        "additionalProperties": false
      }
    },
    "csv": {
      "type": "string",
      "minLength": 1
    }
  },
  "oneOf": [
    {
      "required": [
        "replacements"
      ],
      "not": {
        "required": [
          "csv"
        ]
      }
    },
    {
      "required": [
        "csv"
      ],
      "not": {
        "required": [
          "replacements"
        ]
      }
    }
  ],
  "additionalProperties": false
}

aliasmode_profile_create

Create an AliasMode profile

Create a persistent AliasMode profile, or an explicit temporary profile.

Input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "group": {
      "type": "string"
    },
    "platform": {
      "type": "string"
    },
    "screen": {
      "type": "string"
    },
    "proxy": {
      "anyOf": [
        {
          "type": "null"
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "http",
                "https",
                "socks5"
              ]
            },
            "host": {
              "type": "string"
            },
            "port": {
              "type": "string"
            },
            "user": {
              "type": "string"
            },
            "pass": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "temporary": {
      "type": "boolean",
      "default": false
    }
  },
  "additionalProperties": false
}

aliasmode_profile_update

Edit an AliasMode Cloud profiledestructive

Edit a closed AliasMode Cloud profile by ID using expectedVersion from aliasmode_profiles_list. Only supplied fields change; empty strings clear fields. Sessions and cookies are preserved. Returns confirmation, not credentials.

Input schema
{
  "type": "object",
  "properties": {
    "profileId": {
      "type": "string",
      "minLength": 1
    },
    "expectedVersion": {
      "type": "integer",
      "minimum": 0
    },
    "set": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "group": {
          "type": "string"
        },
        "platform": {
          "type": "string"
        },
        "username": {
          "type": "string"
        },
        "password": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "emailPassword": {
          "type": "string"
        },
        "twofa": {
          "type": "string"
        },
        "proxy": {
          "type": "string",
          "description": "host:port:user:pass, or an empty string to remove the proxy"
        },
        "proxyType": {
          "type": "string"
        },
        "resolution": {
          "type": "string",
          "description": "WIDTH*HEIGHT"
        },
        "extensions": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tags": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          ]
        }
      },
      "minProperties": 1,
      "additionalProperties": false
    }
  },
  "required": [
    "profileId",
    "expectedVersion",
    "set"
  ],
  "additionalProperties": false
}

aliasmode_profile_delete

Delete an AliasMode profiledestructive

Delete a closed AliasMode profile.

Input schema
{
  "type": "object",
  "properties": {
    "profileId": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "profileId"
  ],
  "additionalProperties": false
}

aliasmode_browser_open

Open an AliasMode browserdestructiveopen world

Open an AliasMode browser and select it for Playwright actions.

Input schema
{
  "type": "object",
  "properties": {
    "profileId": {
      "type": "string",
      "minLength": 1
    },
    "headless": {
      "type": "boolean",
      "default": false
    },
    "startupUrls": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^https?://"
      }
    },
    "select": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "profileId"
  ],
  "additionalProperties": false
}

aliasmode_browser_select

Select an AliasMode browserdestructive

Select an open AliasMode browser for subsequent Playwright actions.

Input schema
{
  "type": "object",
  "properties": {
    "profileId": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "profileId"
  ],
  "additionalProperties": false
}

aliasmode_browser_status

Get AliasMode browser statusdestructive

Get the selected browser state, or the state of one profile.

Input schema
{
  "type": "object",
  "properties": {
    "profileId": {
      "type": "string",
      "minLength": 1
    }
  },
  "additionalProperties": false
}

aliasmode_browser_close

Close an AliasMode browserdestructive

Safely capture and close one AliasMode browser.

Input schema
{
  "type": "object",
  "properties": {
    "profileId": {
      "type": "string",
      "minLength": 1
    }
  },
  "additionalProperties": false
}

browser_close

Close the selected AliasMode browserdestructive

Safely capture and close the selected AliasMode browser.

Input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Playwright tools 31

Browser tools from Playwright MCP 0.0.56, run inside the selected AliasMode profile.

browser_resize

Resize browser windowdestructiveopen world

Resize the browser window

Input schema
{
  "type": "object",
  "properties": {
    "width": {
      "type": "number",
      "description": "Width of the browser window"
    },
    "height": {
      "type": "number",
      "description": "Height of the browser window"
    }
  },
  "required": [
    "width",
    "height"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_console_messages

Get console messagesread-onlyopen world

Returns all console messages

Input schema
{
  "type": "object",
  "properties": {
    "level": {
      "type": "string",
      "enum": [
        "error",
        "warning",
        "info",
        "debug"
      ],
      "default": "info",
      "description": "Level of the console messages to return. Each level includes the messages of more severe levels. Defaults to \"info\"."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_handle_dialog

Handle a dialogdestructiveopen world

Handle a dialog

Input schema
{
  "type": "object",
  "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."
    }
  },
  "required": [
    "accept"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_evaluate

Evaluate JavaScriptdestructiveopen world

Evaluate JavaScript expression on page or element

Input schema
{
  "type": "object",
  "properties": {
    "function": {
      "type": "string",
      "description": "() => { /* code */ } or (element) => { /* code */ } when element is provided"
    },
    "element": {
      "type": "string",
      "description": "Human-readable element description used to obtain permission to interact with the element"
    },
    "ref": {
      "type": "string",
      "description": "Exact target element reference from the page snapshot"
    }
  },
  "required": [
    "function"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_file_upload

Upload filesdestructiveopen world

Upload one or multiple files

Input schema
{
  "type": "object",
  "properties": {
    "paths": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The absolute paths to the files to upload. Can be single file or multiple files. If omitted, file chooser is cancelled."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_fill_form

Fill formdestructiveopen world

Fill multiple form fields

Input schema
{
  "type": "object",
  "properties": {
    "fields": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Human-readable field name"
          },
          "type": {
            "type": "string",
            "enum": [
              "textbox",
              "checkbox",
              "radio",
              "combobox",
              "slider"
            ],
            "description": "Type of the field"
          },
          "ref": {
            "type": "string",
            "description": "Exact target field reference from the page snapshot"
          },
          "value": {
            "type": "string",
            "description": "Value to fill in the field. If the field is a checkbox, the value should be `true` or `false`. If the field is a combobox, the value should be the text of the option."
          }
        },
        "required": [
          "name",
          "type",
          "ref",
          "value"
        ],
        "additionalProperties": false
      },
      "description": "Fields to fill in"
    }
  },
  "required": [
    "fields"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_press_key

Press a keydestructiveopen world

Press a key on the keyboard

Input schema
{
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "description": "Name of the key to press or a character to generate, such as `ArrowLeft` or `a`"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_type

Type textdestructiveopen world

Type text into editable element

Input schema
{
  "type": "object",
  "properties": {
    "element": {
      "type": "string",
      "description": "Human-readable element description used to obtain permission to interact with the element"
    },
    "ref": {
      "type": "string",
      "description": "Exact target element reference from the page snapshot"
    },
    "text": {
      "type": "string",
      "description": "Text to type into the element"
    },
    "submit": {
      "type": "boolean",
      "description": "Whether to submit entered text (press Enter after)"
    },
    "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."
    }
  },
  "required": [
    "element",
    "ref",
    "text"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_navigate

Navigate to a URLdestructiveopen world

Navigate to a URL

Input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The URL to navigate to"
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_navigate_back

Go backdestructiveopen world

Go back to the previous page

Input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_network_requests

List network requestsread-onlyopen world

Returns all network requests since loading the page

Input schema
{
  "type": "object",
  "properties": {
    "includeStatic": {
      "type": "boolean",
      "default": false,
      "description": "Whether to include successful static resources like images, fonts, scripts, etc. Defaults to false."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_mouse_move_xy

Move mousedestructiveopen world

Move mouse to a given position

Input schema
{
  "type": "object",
  "properties": {
    "element": {
      "type": "string",
      "description": "Human-readable element description used to obtain permission to interact with the element"
    },
    "x": {
      "type": "number",
      "description": "X coordinate"
    },
    "y": {
      "type": "number",
      "description": "Y coordinate"
    }
  },
  "required": [
    "element",
    "x",
    "y"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_mouse_click_xy

Clickdestructiveopen world

Click left mouse button at a given position

Input schema
{
  "type": "object",
  "properties": {
    "element": {
      "type": "string",
      "description": "Human-readable element description used to obtain permission to interact with the element"
    },
    "x": {
      "type": "number",
      "description": "X coordinate"
    },
    "y": {
      "type": "number",
      "description": "Y coordinate"
    }
  },
  "required": [
    "element",
    "x",
    "y"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_mouse_drag_xy

Drag mousedestructiveopen world

Drag left mouse button to a given position

Input schema
{
  "type": "object",
  "properties": {
    "element": {
      "type": "string",
      "description": "Human-readable element description used to obtain permission to interact with the element"
    },
    "startX": {
      "type": "number",
      "description": "Start X coordinate"
    },
    "startY": {
      "type": "number",
      "description": "Start Y coordinate"
    },
    "endX": {
      "type": "number",
      "description": "End X coordinate"
    },
    "endY": {
      "type": "number",
      "description": "End Y coordinate"
    }
  },
  "required": [
    "element",
    "startX",
    "startY",
    "endX",
    "endY"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_pdf_save

Save as PDFread-onlyopen world

Save page as PDF

Input schema
{
  "type": "object",
  "properties": {
    "filename": {
      "type": "string",
      "description": "File name to save the pdf to. Defaults to `page-{timestamp}.pdf` if not specified. Prefer relative file names to stay within the output directory."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_run_code

Run Playwright codedestructiveopen world

Run Playwright code snippet

Input schema
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "description": "A JavaScript function containing Playwright code to execute. It will be invoked with a single argument, page, which you can use for any page interaction. For example: `async (page) => { await page.getByRole('button', { name: 'Submit' }).click(); return await page.title(); }`"
    }
  },
  "required": [
    "code"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_take_screenshot

Take a screenshotread-onlyopen world

Take a screenshot of the current page. You can't perform actions based on the screenshot, use browser_snapshot for actions.

Input schema
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "png",
        "jpeg"
      ],
      "default": "png",
      "description": "Image format for the screenshot. Default is png."
    },
    "filename": {
      "type": "string",
      "description": "File name to save the screenshot to. Defaults to `page-{timestamp}.{png|jpeg}` if not specified. Prefer relative file names to stay within the output directory."
    },
    "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."
    },
    "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."
    },
    "fullPage": {
      "type": "boolean",
      "description": "When true, takes a screenshot of the full scrollable page, instead of the currently visible viewport. Cannot be used with element screenshots."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_snapshot

Page snapshotread-onlyopen world

Capture accessibility snapshot of the current page, this is better than screenshot

Input schema
{
  "type": "object",
  "properties": {
    "filename": {
      "type": "string",
      "description": "Save snapshot to markdown file instead of returning it in the response."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_click

Clickdestructiveopen world

Perform click on a web page

Input schema
{
  "type": "object",
  "properties": {
    "element": {
      "type": "string",
      "description": "Human-readable element description used to obtain permission to interact with the element"
    },
    "ref": {
      "type": "string",
      "description": "Exact target element reference from the page snapshot"
    },
    "doubleClick": {
      "type": "boolean",
      "description": "Whether to perform a double click instead of a single click"
    },
    "button": {
      "type": "string",
      "enum": [
        "left",
        "right",
        "middle"
      ],
      "description": "Button to click, defaults to left"
    },
    "modifiers": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "Alt",
          "Control",
          "ControlOrMeta",
          "Meta",
          "Shift"
        ]
      },
      "description": "Modifier keys to press"
    }
  },
  "required": [
    "element",
    "ref"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_drag

Drag mousedestructiveopen world

Perform drag and drop between two elements

Input schema
{
  "type": "object",
  "properties": {
    "startElement": {
      "type": "string",
      "description": "Human-readable source element description used to obtain the permission to interact with the element"
    },
    "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"
    },
    "endRef": {
      "type": "string",
      "description": "Exact target element reference from the page snapshot"
    }
  },
  "required": [
    "startElement",
    "startRef",
    "endElement",
    "endRef"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_hover

Hover mousedestructiveopen world

Hover over element on page

Input schema
{
  "type": "object",
  "properties": {
    "element": {
      "type": "string",
      "description": "Human-readable element description used to obtain permission to interact with the element"
    },
    "ref": {
      "type": "string",
      "description": "Exact target element reference from the page snapshot"
    }
  },
  "required": [
    "element",
    "ref"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_select_option

Select optiondestructiveopen world

Select an option in a dropdown

Input schema
{
  "type": "object",
  "properties": {
    "element": {
      "type": "string",
      "description": "Human-readable element description used to obtain permission to interact with the element"
    },
    "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."
    }
  },
  "required": [
    "element",
    "ref",
    "values"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_generate_locator

Create locator for elementread-onlyopen world

Generate locator for the given element to use in tests

Input schema
{
  "type": "object",
  "properties": {
    "element": {
      "type": "string",
      "description": "Human-readable element description used to obtain permission to interact with the element"
    },
    "ref": {
      "type": "string",
      "description": "Exact target element reference from the page snapshot"
    }
  },
  "required": [
    "element",
    "ref"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_tabs

Manage tabsdestructiveopen world

List, create, close, or select a browser tab.

Input schema
{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "list",
        "new",
        "close",
        "select"
      ],
      "description": "Operation to perform"
    },
    "index": {
      "type": "number",
      "description": "Tab index, used for close/select. If omitted for close, current tab is closed."
    }
  },
  "required": [
    "action"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_start_tracing

Start tracingread-onlyopen world

Start trace recording

Input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_stop_tracing

Stop tracingread-onlyopen world

Stop trace recording

Input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_wait_for

Wait forread-onlyopen world

Wait for text to appear or disappear or a specified time to pass

Input schema
{
  "type": "object",
  "properties": {
    "time": {
      "type": "number",
      "description": "The time to wait in seconds"
    },
    "text": {
      "type": "string",
      "description": "The text to wait for"
    },
    "textGone": {
      "type": "string",
      "description": "The text to wait for to disappear"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_verify_element_visible

Verify element visibleread-onlyopen world

Verify element is visible on the page

Input schema
{
  "type": "object",
  "properties": {
    "role": {
      "type": "string",
      "description": "ROLE of the element. Can be found in the snapshot like this: `- {ROLE} \"Accessible Name\":`"
    },
    "accessibleName": {
      "type": "string",
      "description": "ACCESSIBLE_NAME of the element. Can be found in the snapshot like this: `- role \"{ACCESSIBLE_NAME}\"`"
    }
  },
  "required": [
    "role",
    "accessibleName"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_verify_text_visible

Verify text visibleread-onlyopen world

Verify text is visible on the page. Prefer browser_verify_element_visible if possible.

Input schema
{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "description": "TEXT to verify. Can be found in the snapshot like this: `- role \"Accessible Name\": {TEXT}` or like this: `- text: {TEXT}`"
    }
  },
  "required": [
    "text"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_verify_list_visible

Verify list visibleread-onlyopen world

Verify list is visible on the page

Input schema
{
  "type": "object",
  "properties": {
    "element": {
      "type": "string",
      "description": "Human-readable list description"
    },
    "ref": {
      "type": "string",
      "description": "Exact target element reference that points to the list"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Items to verify"
    }
  },
  "required": [
    "element",
    "ref",
    "items"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

browser_verify_value

Verify valueread-onlyopen world

Verify element value

Input schema
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "textbox",
        "checkbox",
        "radio",
        "combobox",
        "slider"
      ],
      "description": "Type of the element"
    },
    "element": {
      "type": "string",
      "description": "Human-readable element description"
    },
    "ref": {
      "type": "string",
      "description": "Exact target element reference that points to the element"
    },
    "value": {
      "type": "string",
      "description": "Value to verify. For checkbox, use \"true\" or \"false\"."
    }
  },
  "required": [
    "type",
    "element",
    "ref",
    "value"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Secondary

Current source differences

Tools in the current source tree (source) that the 0.1.0-beta.49 installer does not ship yet.

No differences. The installer catalog matches the current source.

Added in beta.47: bulk proxy replacement

Version 0.1.0-beta.47 adds one AliasMode tool over beta.42: aliasmode_profiles_replace_proxies. It dry-runs or applies bulk proxy replacements to closed AliasMode Cloud profiles. Targets are profile IDs or profile usernames, each row can carry an expectedVersion guard, and an apply always preflights first. The tool is marked destructive, and a dry run is the default.

  • dryRun defaults to true; set it to false only after reviewing the dry-run result
  • replacements: an array of rows, each with a proxy and either profileId or username (not both), plus an optional expectedVersion
  • csv: an alternative payload that carries the same replacements as CSV text
{
  "dryRun": true,
  "replacements": [
    {
      "profileId": "<profile-id>",
      "expectedVersion": 7,
      "proxy": {
        "type": "socks5",
        "host": "proxy.example.com",
        "port": "1080",
        "user": "<user>",
        "pass": "<pass>"
      }
    }
  ]
}

Local stdio vs Remote MCP

Local stdio runs on the computer that holds the profiles. It works in Local mode without an AliasMode account and never leaves the machine.

Remote MCP publishes the same tools through AliasMode Cloud at a pinned per-device URL. It requires Cloud mode and a signed-in, running Windows host. Web clients connect with OAuth; CLI clients can use connector tokens as bearer credentials.

Verify your tool list

  1. List tools in your client

    Ask the client to list its available tools. Every aliasmode_* name should appear, and the Playwright set should load after a browser is selected.

  2. Count the AliasMode tools

    Expect eight aliasmode_* entries plus the selected-browser browser_close on beta.42 — 39 tools in total with Playwright. A count of 40 means the client reached a beta.47 source build.

  3. Run a browser start test

    Open a profile with aliasmode_browser_open, take a browser_snapshot, then close it with aliasmode_browser_close. For a transport-level check, request the Local API status route while the desktop app is open.

    curl http://127.0.0.1:50400/api/v1/status

FAQ

Does the local stdio server need an AliasMode account?

No. Local mode works without an account, and the stdio server talks to the runtime on the same computer. Remote MCP connections require AliasMode Cloud.

Why does my client show fewer Playwright tools than the catalog?

Playwright actions need a selected browser. Lifecycle tools stay visible, and the Playwright set is served after aliasmode_browser_open or aliasmode_browser_select.

What changed in the tool list recently?

0.1.0-beta.47, the published installer, adds aliasmode_profiles_replace_proxies for bulk proxy replacement on closed Cloud profiles. The previous beta.42 release served 39 tools without it.

Sources and verification

  • AliasMode · Generated MCP tool catalog for the released 0.1.0-beta.47 installer (checked September 2026)
  • AliasMode · Generated MCP tool catalog for the current source build (0.1.0-beta.47) (checked September 2026)
  • AliasMode repository · agent/aliasmode-mcp.ts and agent/setup.ts — stdio helper, serve command, and client registration (checked September 2026)
  • AliasMode repository · README — development commands and CloakBrowser runtime notes (checked September 2026)

Public product details can change after the check date. Facts are re-checked on a monthly cycle.

Sources