# browser_eval

Execute JavaScript in page context Use when native WebFetch is wrong because you need real browser automation — JS-heavy SPA scraping, login flows with cookie reuse, replay against DOM-drifted versions, AIDefence PII gating before content reaches Claude. For static HTML pages, native WebFetch is faster and free.

Agent View of the PolicyLayer registry record for `browser_eval`. HTML page: https://policylayer.com/tools/hamza-agent-hub-252/browser-eval

## Facts

- Tool: `browser_eval`
- Server: Hamza Agent Hub 252 (`hamzachallenge3-dev/hamza-agent-hub-252`) — https://policylayer.com/tools/hamza-agent-hub-252.md
- Homepage: https://github.com/hamzachallenge3-dev/hamza-agent-hub-252
- 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_eval",
    "arguments": {}
  }
}
```

## Why browser_eval is rated High

This tool executes arbitrary JavaScript in a browser context, which is a code execution primitive. While the description notes legitimate use cases (SPA scraping, replay testing), an AI agent could misuse it to automate unauthorized actions, exfiltrate session cookies, inject malicious scripts, or perform unintended browser-based operations.

From the tool's own definition: "'Execute JavaScript in page context' and 'browser automation' — runs code in a live browser environment with side effects dependent on the JavaScript argument."

## Use case

AI agents invoke browser_eval to trigger actions in Hamza Agent Hub 252. 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 Hamza Agent Hub 252:

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

## Other tools on Hamza Agent Hub 252 (580)

- `agent_terminate` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/agent-terminate.md
- `agentdb_batch` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/agentdb-batch.md
- `agentdb_causal-edge-delete` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/agentdb-causal-edge-delete.md
- `agentdb_causal-node-delete` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/agentdb-causal-node-delete.md
- `agentdb_hierarchical-delete` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/agentdb-hierarchical-delete.md
- `agenticow_rollback` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/agenticow-rollback.md
- `autopilot_reset` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/autopilot-reset.md
- `cancel_task` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/cancel-task.md
- `config_reset` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/config-reset.md
- `federation_wg_keyrotate` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/federation-wg-keyrotate.md
- `hooks_intelligence-reset` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/hooks-intelligence-reset.md
- `hooks_worker-cancel` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/hooks-worker-cancel.md
- `iot_device_remove` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/iot-device-remove.md
- `iot_device_unpair` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/iot-device-unpair.md
- `iot_firmware_rollout_rollback` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/iot-firmware-rollout-rollback.md
- `iot_fleet_delete` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/iot-fleet-delete.md
- `iot_fleet_remove_device` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/iot-fleet-remove-device.md
- `managed_agent_terminate` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/managed-agent-terminate.md
- `memory_delete` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/memory-delete.md
- `policy_revoke` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/policy-revoke.md
- `ruvector_delete` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/ruvector-delete.md
- `session_delete` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/session-delete.md
- `system_reset` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/system-reset.md
- `task_cancel` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/task-cancel.md
- `teammate_cleanup` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/teammate-cleanup.md
- `wasm_agent_reset` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/wasm-agent-reset.md
- `wasm_gallery_remove_custom` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/wasm-gallery-remove-custom.md
- `workflow_cancel` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/workflow-cancel.md
- `workflow_delete` — Destructive — https://policylayer.com/tools/hamza-agent-hub-252/workflow-delete.md
- `agent_execute` — Execute — https://policylayer.com/tools/hamza-agent-hub-252/agent-execute.md
- …and 550 more: https://policylayer.com/tools/hamza-agent-hub-252.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=hamza-agent-hub-252 · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/hamza-agent-hub-252
