# browser_file_upload

A execute tool on the Playwright MCP MCP server.

Agent View of the PolicyLayer registry record for `browser_file_upload`. HTML page: https://policylayer.com/tools/alialobidm-playwright-mcp/browser-file-upload

## Facts

- Tool: `browser_file_upload`
- Server: Playwright MCP (`alialobidm/playwright-mcp`) — https://policylayer.com/tools/alialobidm-playwright-mcp.md
- Homepage: https://github.com/alialobidm/playwright-mcp
- Risk category: Execute (High risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "browser_file_upload",
    "arguments": {}
  }
}
```

## Why browser_file_upload is rated High

Based on the tool name, this likely triggers a file upload action in a browser context — sending local files to a remote web service. This constitutes an external operation with real-world side effects (uploading potentially sensitive files to arbitrary destinations). It falls under Execute as it triggers an external browser operation. Severity is high because misuse could exfiltrate local files.

From the tool's own definition: "Tool name 'browser_file_upload' on a Playwright browser automation server; description is empty and uninformative."

## Use case

AI agents invoke browser_file_upload to trigger actions in Playwright MCP. What it does depends on the arguments the agent supplies, and its effects often reach beyond the immediate call: builds kicked off, notifications sent, workflows started.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Playwright MCP:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "browser_file_upload": {
      "limits": [
        {
          "counter": "browser_file_upload_rate",
          "window": "minute",
          "max": 10,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Playwright MCP (58)

- `browser_cookie_clear` — Destructive — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-cookie-clear.md
- `browser_cookie_delete` — Destructive — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-cookie-delete.md
- `browser_localstorage_clear` — Destructive — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-localstorage-clear.md
- `browser_localstorage_delete` — Destructive — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-localstorage-delete.md
- `browser_sessionstorage_clear` — Destructive — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-sessionstorage-clear.md
- `browser_sessionstorage_delete` — Destructive — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-sessionstorage-delete.md
- `browser_click` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-click.md
- `browser_close` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-close.md
- `browser_drag` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-drag.md
- `browser_evaluate` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-evaluate.md
- `browser_fill_form` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-fill-form.md
- `browser_handle_dialog` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-handle-dialog.md
- `browser_hover` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-hover.md
- `browser_install` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-install.md
- `browser_mouse_click_xy` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-mouse-click-xy.md
- `browser_mouse_down` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-mouse-down.md
- `browser_mouse_drag_xy` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-mouse-drag-xy.md
- `browser_mouse_move_xy` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-mouse-move-xy.md
- `browser_mouse_up` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-mouse-up.md
- `browser_mouse_wheel` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-mouse-wheel.md
- `browser_navigate` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-navigate.md
- `browser_navigate_back` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-navigate-back.md
- `browser_press_key` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-press-key.md
- `browser_resize` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-resize.md
- `browser_route` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-route.md
- `browser_run_code` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-run-code.md
- `browser_select_option` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-select-option.md
- `browser_start_tracing` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-start-tracing.md
- `browser_start_video` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-start-video.md
- `browser_stop_tracing` — Execute — https://policylayer.com/tools/alialobidm-playwright-mcp/browser-stop-tracing.md
- …and 28 more: https://policylayer.com/tools/alialobidm-playwright-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=alialobidm-playwright-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/alialobidm-playwright-mcp
