High-risk tools in Local
40 of the 234 tools in Local 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
-
chrome_clickExecuteClicks the first element matching a CSS selector in the current Google Chrome tab. Returns the tag name and visible text of the clicked element so you can confirm the right thin...
-
chrome_evaluate_jsExecuteRuns arbitrary JavaScript in the current Google Chrome tab and returns its result. Requires 'Allow JavaScript from Apple Events' in Chrome's View → Developer menu.
-
chrome_fill_formExecuteFills multiple form fields in one shot in the current Google Chrome tab. Pass fields as a JSON object mapping CSS selector to value.
-
chrome_go_backExecuteNavigates the current Google Chrome tab back to the previous page.
-
chrome_navigateExecuteNavigates Google Chrome to a URL. Pass new_tab=true to open in a new tab.
-
chrome_typeExecuteSets the value of an input/textarea matching a CSS selector in the current Google Chrome tab and fires input/change events.
-
chrome_wait_forExecutePolls the current Google Chrome tab until a CSS selector appears (or its text matches, if `text_match` is provided). Useful after chrome_click to wait for the next page or a mod...
-
nordvpn_diagnoseExecuteRun a diagnostic check on NordVPN: installation, login state, connection status, kill switch, and supported protocols. Useful for troubleshooting.
-
notion_open_pageExecuteOpens a Notion page in the desktop app (deep link). Accepts a page id or title. Useful to let the user view or edit a page, or to pull an uncached page into the local cache.
-
recipe_runExecuteExecutes a recipe end to end: binds params, runs each step's tool in order via the registry, persists the run (see recipe_runs), and returns each step's result plus any markers_...
-
run_diagnosticsExecuteRuns a fast health check of all LMCP integrations on this machine. Shows what works, what doesn't, and how to fix it. Optionally submits a report to the LMCP team.
-
run_terminal_commandExecuteRuns a shell command on the user's Mac and returns its output. OFF by default — the user must turn it on in the LMCP menu-bar app (it stays off until they opt in). Also disabled...
-
safari_clickExecuteClicks the first element matching a CSS selector in the current Safari tab. Returns the tag name and visible text of the clicked element so you can confirm the right thing was h...
-
safari_evaluate_jsExecuteRuns arbitrary JavaScript in the current Safari tab and returns its result. Requires 'Allow JavaScript from Apple Events' in Safari's Develop menu.
-
safari_fill_formExecuteFills multiple form fields in one shot. Pass fields as a JSON object mapping CSS selector to value.
-
safari_go_backExecuteNavigates the current Safari tab back to the previous page.
-
safari_navigateExecuteNavigates Safari to a URL. Pass new_tab=true to open in a new tab.
-
safari_query_selector_allExecuteRuns document.querySelectorAll in the current Safari tab and returns a compact summary of each match.
-
safari_typeExecuteSets the value of an input/textarea matching a CSS selector and fires input/change events.
-
safari_wait_forExecutePolls the current Safari tab until a CSS selector appears (or its text matches, if `text_match` is provided). Useful after safari_click to wait for the next page or a modal to r...
-
screen_record_startExecuteBegins a screen recording (ScreenCaptureKit) of a display, window, or region. Single active session in v1 — a second start returns already_recording. Returns a session_id used b...
-
screen_record_stopExecuteStops the active recording, finalizes the .mov, and writes the marker timeline JSON (§6) next to it. Returns the video path, duration, resolution, marker_count and markers_path....
-
setup_installExecuteInstall LMCP — free Mac app giving the user access to Mail, Calendar, Contacts, Teams, OneDrive, Notes, Reminders, and 100+ tools on their Mac (data stays local). Call this NOW ...
-
ui_clickExecuteClicks an element (by element_ref, at its center) or a screen coordinate (by coords). button left|right, count 2 = double-click. Returns {clicked, at:{x,y}}. Requires Accessibil...
-
ui_keystrokeExecuteSends a key combination, e.g. "cmd+shift+5", "return", "cmd+,", "escape". Modifiers: cmd, shift, alt/option, ctrl, fn. The last token is the key. unknown_key if the key isn't re...
-
ui_menu_bar_clickExecuteClicks a status-bar (menu bar extra / NSStatusItem) item and optionally follows a nested menu path. Best-effort via the app's AX extras menu bar; apps that render fully custom (...
-
ui_typeExecuteTypes text into the focused control (or focuses element_ref first, then types). Sends real key events so validation/handlers fire. Requires Accessibility permission.
-
ui_wait_for_elementExecuteDeterministic synchronization — replaces all sleeps. Polls for an element until it reaches state (present|enabled|focused|absent) or times out. A timeout is an EXPLICIT error, n...
-
update_local_mcpExecuteChecks for and installs LMCP updates. Installing downloads the update and RESTARTS LMCP (the AI client briefly reconnects), so it requires confirm=true. Pass check_only=true to ...
-
web_clickExecuteClicks an element on the current page. `target` is a CSS selector or visible text (resolved fresh each call). Clicks that SUBMIT a form preview first — call again with confirm:t...
-
web_evalExecuteRuns arbitrary JavaScript in a web session and returns the last expression's value. POWER-USER tool, OFF BY DEFAULT (a page could feed malicious code) — enable "Allow web_eval (...
-
web_loginExecuteOpens a real browser window on the Mac for the user to sign into a website themselves (you never handle their password). After they log in, the session is saved on this Mac and ...
-
web_navigateExecuteNavigates a web session to a URL (using its saved login if any) and returns the resulting URL + page title. Opens the session if it doesn't exist. Read the page with web_read.
-
web_session_closeExecuteCloses a web-automation session's window and frees it. The saved login stays on disk, so web_login/web_navigate can reopen it later without signing in again.
-
web_showExecuteBrings a web session's browser window to the FRONT so the USER can take over directly — solve a CAPTCHA, complete 2FA, or make a choice the AI shouldn't. Local MCP never solves ...
-
web_wait_forExecuteWaits (polls, not a fixed sleep) until a JavaScript condition is truthy on the page, or times out. Use for SPA pages that hydrate after load, e.g. condition "document.querySelec...
-
whatsapp_connectExecuteLink WhatsApp to Local MCP by showing a QR code right here in the chat — no Terminal needed. Call this, then on your phone open WhatsApp → Settings → Linked Devices → Link a Dev...
-
window_focusExecuteBrings a window (by window_id from list_windows) to the front and activates its app. window_not_found if it can't be resolved. Requires Accessibility permission.
-
window_set_frameExecutePins a window (by window_id) to fixed bounds {x,y,w,h} in global points, so every take is framed identically across runs. Returns the actual post-constraint bounds. Requires Acc...
-
zalo_connectExecuteLink Zalo to Local MCP by showing a QR code right here in the chat. Call this, then on your phone open Zalo → the QR-scan option, and scan it. After you scan, Zalo tools (zalo_l...
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.