High-risk tools in MacWright
46 of the 72 tools in MacWright are classified as high risk. This page profiles those tools specifically, with recommended policy actions and the attack patterns that target them.
Every operation listed below is an action PolicyLayer recommends controlling at the transport layer. Open any tool to see the full profile, risk score, and YAML policy snippet.
Tools at high risk
-
ax_actionExecutePerform an Accessibility action on a native macOS UI element found by text.
-
ax_clickExecuteFind a native macOS UI element by its label text and click its center.
-
ax_dragExecuteFind a native UI element by label text and drag from it to either another labeled element or specific screen coordinates.
-
clickExecutePerform a left mouse click at the specified screen coordinates (x, y). Coordinates are in LOGICAL screen pixels (not screenshot pixels).
-
click_elementExecuteClick a DOM element in Safari by CSS selector. Combines find_element + click in one step — the most common web automation pattern. Use this instead of find_element followed by c...
-
click_menu_itemExecuteClick a native macOS menu bar item by path, or list available menu items.
-
click_textExecuteClick a visible element in Safari by its text content or aria-label. Finds the most specific element (shortest text) containing the specified text and clicks it. On equal length...
-
dismiss_sheetExecuteDetect and dismiss a sheet or dialog in a native macOS app (e.g. Safari
-
double_clickExecutePerform a double left-click at the specified screen coordinates. Useful for opening files, selecting words, etc.
-
dragExecuteClick and drag from one screen coordinate to another. Useful for moving windows, selecting text regions, drawing, etc.
-
drag_elementExecuteDrag one DOM element to another in Safari — drag-and-drop automation using CSS selectors. Scrolls both elements into view, computes their screen coordinates, then performs the d...
-
focus_elementExecuteFocus a DOM element in Safari by CSS selector — triggers the focus event which can reveal dropdowns, enable keyboard input, or activate UI components. Unlike click, focus does n...
-
focus_windowExecuteBring a specific application
-
fullscreen_windowExecuteToggle fullscreen mode for an application
-
hover_and_waitExecuteMove mouse to coordinates (or to an AX element by text label), wait for tooltip/popover to appear, then take a screenshot.
-
hover_elementExecuteHover over a DOM element in Safari by CSS selector. Moves the mouse over the element without clicking — useful for triggering hover states, showing dropdown menus, revealing too...
-
minimize_windowExecuteMinimize a specific window of an application to the Dock, or restore (unminimize) it.
-
move_mouseExecuteMove the mouse cursor to the specified screen coordinates without clicking.
-
navigate_file_dialogExecuteNavigate a macOS file open/save dialog to a specific path.
-
navigate_system_prefExecuteOpen a specific section of macOS System Settings by name.
-
open_appExecuteLaunch or activate a macOS application by name. If already running, it will be brought to the foreground.
-
open_spotlightExecuteOpen an app, file, or anything via Spotlight search. Presses Cmd+Space, types the query, waits for results, then presses Enter.
-
press_keyExecutePress a key or key combination. Named keys: return, tab, esc, delete, fwd-delete, space, arrow-up, arrow-down, arrow-left, arrow-right, home, end, page-up, page-down, f1-f16, en...
-
quit_appExecuteGracefully quit a running application. Sends the standard Quit command (equivalent to Cmd+Q).
-
right_clickExecutePerform a right-click (context menu click) at the specified screen coordinates.
-
run_applescriptExecuteExecute an AppleScript script and return the result. Supports multi-line scripts. Powerful for automating macOS apps and system features not covered by other tools. Use
-
run_shellExecuteExecute a shell command and return stdout, stderr, and exit code. Much faster than using Terminal+clipboard. Runs in /bin/zsh by default. Supports working directory (cwd), timeo...
-
safari_jsExecuteExecute JavaScript in the current Safari tab and return the result. Powerful for reading page content, filling forms, clicking elements, or extracting data. No Accessibility per...
-
safari_navigate_backExecuteGo back to the previous page in the Safari history. Equivalent to clicking the back button or pressing Cmd+[.
-
safari_navigate_forwardExecuteGo forward in the Safari history. Equivalent to clicking the forward button or pressing Cmd+].
-
safari_reloadExecuteReload the current Safari page. Equivalent to pressing Cmd+R. Useful after making changes or waiting for dynamic content.
-
safari_tabsExecuteList, create, close, or select a browser tab. Use waitUntil with action=
-
safari_urlExecuteNavigate Safari to a URL or get the current URL. Much more reliable than clicking the address bar. Works without Accessibility permissions. Auto-opens Safari if not running.
-
scrollExecuteScroll at the specified screen coordinates. Positive amount scrolls down, negative scrolls up. Optionally scroll horizontally. Moves the mouse to the target position first, then...
-
scroll_elementExecuteScroll a specific DOM element (overflow container) in Safari — for scrolling inside a div with overflow:auto/scroll, not the page. Returns new scrollTop/scrollLeft.
-
scroll_pageExecuteScroll the current Safari page using JavaScript window.scrollBy() or scrollTo(). Works regardless of which app is frontmost — no focus required. Use this instead of scroll for w...
-
scroll_to_elementExecuteScroll the Safari page until a specific element is visible in the viewport. Uses element.scrollIntoView() with smooth or instant behavior. Returns the element
-
send_notificationExecuteDisplay a macOS notification banner. Useful for alerting the user that a task is complete or needs attention. Requires notifications to be enabled for Script Editor in System Se...
-
triple_clickExecutePerform a triple-click at the specified screen coordinates. Selects an entire line or paragraph in text editors and text fields.
-
type_textExecuteType the given text string at the current cursor position using simulated keystrokes. Requires Accessibility permissions for the terminal/app running the MCP server. Use click f...
-
waitExecutePause execution for the specified number of milliseconds. Useful for waiting for animations, page loads, or UI transitions to complete before taking the next action.
-
wait_for_elementExecuteWait until a CSS selector exists in the current Safari page
-
wait_for_functionExecutePoll a JavaScript expression in Safari until it returns a truthy value, or until timeout. The most flexible wait tool — use when wait_for_element and wait_for_text don
-
wait_for_textExecuteWait until specific text appears (or disappears with gone=true) in the page body. Unlike wait_for_element (CSS selector), this waits for visible text content — useful for checki...
-
wait_for_uiExecuteWait for a native macOS UI element to appear in an app
-
wait_for_urlExecuteWait until the current Safari page URL contains (or matches) a specified pattern. Useful after clicking links, submitting forms, or triggering navigation to verify the correct p...
Attacks that target this class
High-risk tools in any server share these documented attack patterns. Each links to the full case and the defensive policy.