Wmux

80 tools. 51 can modify or destroy data without limits.

1 destructive tool with no built-in limits. Policy required.

Last updated:

51 can modify or destroy data
29 read-only
80 tools total

Community server · catalogue entry checked 07/07/2026

How to control Wmux ↓

What Wmux exposes to your agents

Read (29) Write / Execute (50) Destructive / Financial (1)
Critical Risk

The most dangerous Wmux tools

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

How to control Wmux

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

Deny destructive operations
{
  "browser_storage": {
    "deny_if": [
      {
        "conditions": [],
        "on_deny": "Blocked by default. Requires approval."
      }
    ]
  }
}

Destructive tools should never be available to autonomous agents without human approval.

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

Prevents bulk unintended modifications from agents caught in loops.

Cap read operations
{
  "a2a_discover": {
    "limits": [
      {
        "counter": "a2a_discover_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 Wmux — 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 WMUX →

Instant setup, no code required.

All 80 Wmux tools

EXECUTE 30 tools
Execute a2a_task_cancel Cancel a task you previously sent. Only the original sender can cancel. Execute a2a_task_send Alias for send_message. Execute browser_click Click an element identified by its ref number from the accessibility snapshot, or by a smartRef from browser_s Execute browser_dialog Pre-register a handler for the next browser dialog (alert, confirm, prompt, beforeunload). The handler will au Execute browser_download Click an element (identified by ref) and capture the resulting download. Returns the downloaded file path. Execute browser_drag Drag an element from sourceRef to targetRef. Execute browser_emulate Apply emulation settings to the browser page: offline mode, custom headers, HTTP credentials, geolocation, col Execute browser_evaluate Evaluate a JavaScript expression in the browser page context. Dangerous patterns (fetch, XHR, cookies, storage Execute browser_fill Fill multiple form fields at once. Each field is identified by a ref number. Execute browser_hover Hover over an element identified by its ref number. Execute browser_navigate Navigate the browser page to a URL. Returns the final URL after navigation. Execute browser_navigate_back Go back in browser history. Returns the current URL after going back. Execute browser_open Open a new browser panel in the active pane. Use this when no browser surface exists yet. Execute browser_press_key Press a keyboard key (e.g. Enter, Tab, Escape, ArrowDown, Control+a). Execute browser_resize Resize the browser viewport to the specified dimensions. Execute browser_scroll Scroll the page or a scrollable element. Use direction and amount to control scrolling. Execute browser_scroll_into_view Scroll an element into the visible viewport. Execute browser_select Select option(s) in a <select> element by value. Execute browser_session_start Start a browser session with the specified profile Execute browser_session_stop Stop the current browser session Execute browser_tabs Manage browser tabs: list all tabs, open a new tab, select a tab, or close a tab. Execute browser_trace Start or stop Playwright tracing. Use Execute browser_type Type text into an element identified by its ref number. Execute browser_wait Wait for a condition: URL pattern, CSS selector, text content, custom JS predicate, or network idle. Priority: Execute browser_wait_for_download Wait for a download event on the page. Optionally filter by filename. Execute company_a2a_broadcast Broadcast a message to ALL agents in the company. Use sparingly. Execute pane_split Split a leaf pane, creating a new sibling pane. Returns the new paneId (and a ptyWarning if a background PTY c Execute surface_new Open a new surface (terminal) in the active pane of a workspace. Returns the new surfaceId + ptyId. Omit works Execute terminal_send Send text to a terminal. By default the text is written as-is — no Enter is pressed, so a shell command or TUI Execute terminal_send_key Send a named key to a terminal. Omit ptyId to target the active terminal. Use surface_list() to discover avail
WRITE 20 tools
Write a2a_broadcast Send a message to ALL other workspaces at once (e.g. announcements, greetings). For targeted messages, use a2a Write a2a_set_skills Register your agent capabilities/skills so other agents can discover you via a2a_discover. Write a2a_task_update Update a task\ Write browser_close Close the browser panel in the calling workspace Write browser_file_upload Upload files to a file input element. Paths MUST live under ~/.wmux/uploads/ — arbitrary filesystem paths are Write browser_highlight Visually highlight an element on the page by its ref number. Adds a red outline around the element. Write browser_pdf Export the current page as a PDF file. Falls back to CDP Page.printToPDF when Playwright pdf() is unavailable Write channel_ack Acknowledge channel messages up to a seq (inclusive) as consumed. Call this after channel_read with the highes Write channel_create Create a new channel. The creator is auto-added as a member with full history (plan KTD10). Visibility is immu Write channel_invite Invite ANOTHER workspace/agent to a channel you belong to. This is the only way to add someone to a private ch Write channel_join Join a channel as a member. By default joins with full history (historyFromSeq=0); pass include_history=false Write channel_leave Leave a channel. The caller\ Write channel_post Post a message to a channel. Returns isError=true with code PERSIST_FAILED when persistence fails (U2 maintain Write company_a2a_ack Acknowledge (mark as read) inbox messages by their IDs. Write company_a2a_send Send a structured message to another agent by name. Write pane_close Close a leaf pane and dispose its surfaces\ Write pane_focus Focus a leaf pane. Does NOT switch the on-screen workspace (non-yank): focusing a pane in a background workspa Write pane_set_metadata Attach descriptive metadata (label/status + custom k/v) to a leaf pane in the calling workspace. The custom ma Write send_message Send a message to another workspace. Use when asked to talk to, greet, or send anything to workspace 1/2/3 etc Write surface_close Close a surface and dispose its PTY. surfaceId is globally unique and resolved across all workspaces.
READ 29 tools
Read a2a_discover List all available workspaces/agents and their names. ALWAYS call this first when the user references a worksp Read a2a_task_query Query tasks assigned to you or sent by you. Filter by status and role. For incremental polling, pass updated_s Read a2a_whoami Returns this workspace\ Read browser_console Retrieve console messages collected from the browser page. Messages are accumulated over time; use clear=true Read browser_cookies Manage browser cookies: get, set, or clear. Reads from sensitive domains (email, banking, auth) are blocked an Read browser_extract_data Extract structured data from the page (tables, lists, repeated items) as JSON. Read browser_extract_text Extract page content as clean markdown text, stripping navigation and noise. Read browser_network Retrieve network requests collected from the browser page. Requests are accumulated over time; use clear=true Read browser_response_body Retrieve the response body for a previously captured network request matching a URL pattern. Read browser_screenshot Take a screenshot of the current page or a specific element. Returns the image as base64-encoded PNG. Requires Read browser_session_list List available browser profiles Read browser_session_status Get current browser session status Read browser_smart_snapshot Get a smart snapshot of the page with indexed interactive elements and clean text content. Use element ref num Read browser_snapshot Take an accessibility tree snapshot of the current page. Returns a text representation of the page structure w Read channel_get_members List the members of a channel you can see. Returns each member\ Read channel_list List all channels visible to the calling workspace. Returns the channel metadata (id, name, visibility, topic, Read channel_read Read messages from a channel you can see (public, or private if you are a member). Read channel_unread Summarize your unread channel messages: per-channel unread count, mention-unread count (messages that @-mentio Read company_a2a_inbox Check your inbox for incoming messages from other agents. Read company_a2a_status Get the current company status: all departments, members, their roles, and online status. Read company_a2a_whoami Identify who you are in the company hierarchy. Returns your name, role, department, and status. Read pane_get_metadata Read the metadata attached to a leaf pane in the calling workspace. Returns { paneId, metadata, version }. A v Read pane_list List all panes in a workspace with CWD, git branch, and metadata. Omit workspaceId to list your own workspace. Read surface_list List all surfaces (terminals and browsers) in a workspace. Returns surfaceId, ptyId, shell, CWD, git branch fo Read terminal_read Read the current visible text from a terminal. Omit ptyId to read the active terminal. Pass tail_lines to cap Read terminal_read_events Return structured OSC 133 prompt/command events (prompt_start, prompt_end, command_start, command_end with exi Read wmux_events_poll Poll the wmux EventBus for pane, process, agent, notification, and A2A task lifecycle events. Cursor-based: pa Read wmux_search_panes Search across all live terminal panes in the caller\ Read workspace_list List all workspaces in wmux

Related servers

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

Questions about Wmux

Can an AI agent delete data through the Wmux MCP server? +

Yes. The Wmux server exposes 1 destructive tools including browser_storage. These permanently remove resources with no undo. PolicyLayer blocks destructive tools by default so they never reach the upstream server.

How do I prevent bulk modifications through Wmux? +

The Wmux server has 20 write tools including a2a_broadcast, a2a_set_skills, a2a_task_update. 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 Wmux.

How many tools does the Wmux MCP server expose? +

80 tools across 4 categories: Destructive, Execute, Read, Write. 29 are read-only. 51 can modify, create, or delete data.

How do I enforce a policy on Wmux? +

Register the Wmux 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 Wmux tool call.

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

Instant setup, no code required.

80 Wmux tools catalogued and risk-classified — across an index of 46,500+ MCP servers.

// WHERE THIS COMES FROM

These policies come from Wmux's registry record.

The record behind this page: verified identity, auth posture, risk grade, every tool classified, recommended policy — re-checked continuously.

Teams ship this data inside their own products. See what a licence covers →

// GET IN TOUCH

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

Message sent.

We'll get back to you soon.