MacWright

72 tools. 50 can modify or destroy data without limits.

50 write tools that can modify data. Rate limits recommended.

Last updated:

50 can modify or destroy data
22 read-only
72 tools total

Community server · catalogue entry verified 03/07/2026

How to control MacWright ↓

What MacWright exposes to your agents

Read (22) Write / Execute (50) Destructive / Financial (0)
High Risk

The most dangerous MacWright tools

50 of MacWright's 72 tools can modify, destroy, or commit something on every call — and an agent calls them with no built-in limits.

How to control MacWright

PolicyLayer is an MCP gateway — it sits between your AI agents and MacWright, and nothing reaches the server without passing your rules. These are the rules we recommend:

Rate limit write operations
{
  "close_window": {
    "limits": [
      {
        "counter": "close_window_per_hour",
        "window": "hour",
        "max": 30,
        "scope": "grant"
      }
    ]
  }
}

Prevents bulk unintended modifications from agents caught in loops.

Cap read operations
{
  "ax_read_table": {
    "limits": [
      {
        "counter": "ax_read_table_per_minute",
        "window": "minute",
        "max": 60,
        "scope": "grant"
      }
    ]
  }
}

Controls API costs and prevents retry loops from exhausting upstream rate limits.

  1. Create a free account and register MacWright — nothing to install.
  2. Add these rules — paste them, or build them visually. Tune the limits to your setup.
  3. Point your MCP client (Claude, Cursor, anything) at your gateway URL.
ENFORCE POLICY ON MACWRIGHT →

Instant setup, no code required.

All 72 MacWright tools

EXECUTE 46 tools
Execute ax_action Perform an Accessibility action on a native macOS UI element found by text. Execute ax_click Find a native macOS UI element by its label text and click its center. Execute ax_drag Find a native UI element by label text and drag from it to either another labeled element or specific screen c Execute click Perform a left mouse click at the specified screen coordinates (x, y). Coordinates are in LOGICAL screen pixel Execute click_element Click a DOM element in Safari by CSS selector. Combines find_element + click in one step — the most common web Execute click_menu_item Click a native macOS menu bar item by path, or list available menu items. Execute click_text Click a visible element in Safari by its text content or aria-label. Finds the most specific element (shortest Execute dismiss_sheet Detect and dismiss a sheet or dialog in a native macOS app (e.g. Safari Execute double_click Perform a double left-click at the specified screen coordinates. Useful for opening files, selecting words, et Execute drag Click and drag from one screen coordinate to another. Useful for moving windows, selecting text regions, drawi Execute drag_element Drag one DOM element to another in Safari — drag-and-drop automation using CSS selectors. Scrolls both element Execute focus_element Focus a DOM element in Safari by CSS selector — triggers the focus event which can reveal dropdowns, enable ke Execute focus_window Bring a specific application Execute fullscreen_window Toggle fullscreen mode for an application Execute hover_and_wait Move mouse to coordinates (or to an AX element by text label), wait for tooltip/popover to appear, then take a Execute hover_element Hover over a DOM element in Safari by CSS selector. Moves the mouse over the element without clicking — useful Execute minimize_window Minimize a specific window of an application to the Dock, or restore (unminimize) it. Execute move_mouse Move the mouse cursor to the specified screen coordinates without clicking. Execute navigate_file_dialog Navigate a macOS file open/save dialog to a specific path. Execute navigate_system_pref Open a specific section of macOS System Settings by name. Execute open_app Launch or activate a macOS application by name. If already running, it will be brought to the foreground. Execute open_spotlight Open an app, file, or anything via Spotlight search. Presses Cmd+Space, types the query, waits for results, th Execute press_key Press a key or key combination. Named keys: return, tab, esc, delete, fwd-delete, space, arrow-up, arrow-down, Execute quit_app Gracefully quit a running application. Sends the standard Quit command (equivalent to Cmd+Q). Execute right_click Perform a right-click (context menu click) at the specified screen coordinates. Execute run_applescript Execute an AppleScript script and return the result. Supports multi-line scripts. Powerful for automating macO Execute run_shell Execute a shell command and return stdout, stderr, and exit code. Much faster than using Terminal+clipboard. R Execute safari_js Execute JavaScript in the current Safari tab and return the result. Powerful for reading page content, filling Execute safari_navigate_back Go back to the previous page in the Safari history. Equivalent to clicking the back button or pressing Cmd+[. Execute safari_navigate_forward Go forward in the Safari history. Equivalent to clicking the forward button or pressing Cmd+]. Execute safari_reload Reload the current Safari page. Equivalent to pressing Cmd+R. Useful after making changes or waiting for dynam Execute safari_tabs List, create, close, or select a browser tab. Use waitUntil with action= Execute safari_url Navigate Safari to a URL or get the current URL. Much more reliable than clicking the address bar. Works witho Execute scroll Scroll at the specified screen coordinates. Positive amount scrolls down, negative scrolls up. Optionally scro Execute scroll_element Scroll a specific DOM element (overflow container) in Safari — for scrolling inside a div with overflow:auto/s Execute scroll_page Scroll the current Safari page using JavaScript window.scrollBy() or scrollTo(). Works regardless of which app Execute scroll_to_element Scroll the Safari page until a specific element is visible in the viewport. Uses element.scrollIntoView() with Execute send_notification Display a macOS notification banner. Useful for alerting the user that a task is complete or needs attention. Execute triple_click Perform a triple-click at the specified screen coordinates. Selects an entire line or paragraph in text editor Execute type_text Type the given text string at the current cursor position using simulated keystrokes. Requires Accessibility p Execute wait Pause execution for the specified number of milliseconds. Useful for waiting for animations, page loads, or UI Execute wait_for_element Wait until a CSS selector exists in the current Safari page Execute wait_for_function Poll a JavaScript expression in Safari until it returns a truthy value, or until timeout. The most flexible wa Execute wait_for_text Wait until specific text appears (or disappears with gone=true) in the page body. Unlike wait_for_element (CSS Execute wait_for_ui Wait for a native macOS UI element to appear in an app Execute wait_for_url Wait until the current Safari page URL contains (or matches) a specified pattern. Useful after clicking links,
READ 22 tools
Read ax_read_table Read row data from a native macOS AX table or outline (list view). Read find_element Find a DOM element in Safari by CSS selector and return its screen coordinates for clicking. Automatically com Read get_clipboard Read the current contents of the system clipboard. Supports plain text (default) and HTML formats. Read get_element_attr Get an attribute or property of a DOM element in Safari. Use to check form field values, checkbox state, eleme Read get_form_fields Discover all form input fields (inputs, textareas, selects — excludes buttons) on the current Safari page. Ret Read get_frontmost_app Get the name, bundle ID, PID, window title, and bounds of the currently active (frontmost) application. Return Read get_links Extract all links (anchor tags with href) from the current Safari page. Returns each link Read get_mouse_position Get the current mouse cursor position as screen coordinates. Useful for calibrating coordinate systems and ver Read get_page_info Get the current Safari page Read get_page_text Extract visible text content from the current Safari page, or from a specific CSS selector. Returns clean text Read get_screen_size Get the screen resolution of all displays. Returns main display info plus any additional displays Read get_selected_text Read the currently selected text in any native macOS app via Accessibility API (AXSelectedText). Read get_table_data Extract data from an HTML table as JSON rows. Each row is an object keyed by header text (from <th>). Multi-ro Read inspect_element Get detailed Accessibility info about the native UI element at specific screen coordinates. Read is_element_visible Check whether a DOM element exists AND is visible in the current Safari viewport. Returns {exists, visible, in Read list_windows List all visible applications with window titles and bounds where available. Returns JSON array of {app, title Read page_snapshot Get a comprehensive snapshot of the current Safari page in one call: URL, title, h1, meta description, visible Read read_ui Read UI elements from a native macOS app via Accessibility API. Uses Read screen_parse Use OmniParser V2 to detect all UI elements on screen via YOLO + OCR + Florence-2. Read screenshot Capture a screenshot of the screen or a region. Returns a base64-encoded image. Defaults to JPEG at 1280px wid Read screenshot_element Take a cropped screenshot of a specific DOM element in Safari by CSS selector. Returns just the element Read wait_for_change Take a baseline screenshot and poll until the screen visually changes (or becomes stable).

Related servers

Other MCP servers with similar tools — same risk classification, starter policies for each.

Questions about MacWright

How do I prevent bulk modifications through MacWright? +

The MacWright server has 4 write tools including close_window, fill_form, resize_window. Set a rate limit in your policy -- for example, 10 calls per hour prevents an agent from making more than 10 modifications per hour. PolicyLayer enforces this at the gateway, before calls reach MacWright.

How many tools does the MacWright MCP server expose? +

72 tools across 3 categories: Execute, Read, Write. 22 are read-only. 50 can modify, create, or delete data.

How do I enforce a policy on MacWright? +

Register the MacWright MCP server in PolicyLayer, apply the suggested rules above (adjust the limits to your use case), and point your AI client at the PolicyLayer proxy URL instead of the server directly. Your agents keep the same tools; PolicyLayer evaluates every call against policy before it executes. Nothing to install, live in minutes.

Enforce policy on every MacWright tool call.

Deterministic rules across all 72 MacWright tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.

Instant setup, no code required.

72 MacWright tools catalogued and risk-classified — across an index of 43,000+ MCP servers.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.