# fill

Type text into an input, text area or select an option from a <select> element.

Agent View of the PolicyLayer registry record for `fill`. HTML page: https://policylayer.com/tools/async23-chrome-devtools-mcp/fill

## Facts

- Tool: `fill`
- Server: Chrome Devtools (`@async23/chrome-devtools-mcp`) — https://policylayer.com/tools/async23-chrome-devtools-mcp.md
- Install: `npx -y @async23/chrome-devtools-mcp`
- Homepage: https://github.com/Async23/chrome-devtools-mcp
- Risk category: Write (Medium 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": "fill",
    "arguments": {}
  }
}
```

## Why fill is rated Medium

The tool modifies browser form input state reversibly. While it can change data in web applications, it operates at the UI interaction level and does not execute arbitrary code, delete data irreversibly, or move funds.

From the tool's own definition: "Tool description states 'Type text into an input, text area or select an option from a <select> element.' This modifies form fields but does not execute arbitrary operations or delete data."

## Use case

AI agents use fill to create or update resources in Chrome Devtools, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Chrome Devtools environment.

## Recommended policy (PolicyLayer)

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

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "fill": {
      "limits": [
        {
          "counter": "fill_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Chrome Devtools (49)

- `close_heapsnapshot` — Destructive — https://policylayer.com/tools/async23-chrome-devtools-mcp/close-heapsnapshot.md
- `close_page` — Destructive — https://policylayer.com/tools/async23-chrome-devtools-mcp/close-page.md
- `uninstall_extension` — Destructive — https://policylayer.com/tools/async23-chrome-devtools-mcp/uninstall-extension.md
- `click` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/click.md
- `click_at` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/click-at.md
- `drag` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/drag.md
- `emulate` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/emulate.md
- `evaluate` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/evaluate.md
- `evaluate_script` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/evaluate-script.md
- `execute_3p_developer_tool` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/execute-3p-developer-tool.md
- `execute_webmcp_tool` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/execute-webmcp-tool.md
- `fill_form` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/fill-form.md
- `handle_dialog` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/handle-dialog.md
- `hover` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/hover.md
- `install_extension` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/install-extension.md
- `lighthouse_audit` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/lighthouse-audit.md
- `navigate` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/navigate.md
- `performance_start_trace` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/performance-start-trace.md
- `performance_stop_trace` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/performance-stop-trace.md
- `press_key` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/press-key.md
- `reload_extension` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/reload-extension.md
- `resize_page` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/resize-page.md
- `screencast_stop` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/screencast-stop.md
- `select_page` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/select-page.md
- `trigger_extension_action` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/trigger-extension-action.md
- `type_text` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/type-text.md
- `wait_for` — Execute — https://policylayer.com/tools/async23-chrome-devtools-mcp/wait-for.md
- `compare_heapsnapshots` — Read — https://policylayer.com/tools/async23-chrome-devtools-mcp/compare-heapsnapshots.md
- `get_console_message` — Read — https://policylayer.com/tools/async23-chrome-devtools-mcp/get-console-message.md
- `get_heapsnapshot_class_nodes` — Read — https://policylayer.com/tools/async23-chrome-devtools-mcp/get-heapsnapshot-class-nodes.md
- …and 19 more: https://policylayer.com/tools/async23-chrome-devtools-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=async23-chrome-devtools-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/async23-chrome-devtools-mcp
