High Risk →

select_frame

Selects a frame (by index from list_frames) as the execution context for evaluate_script, hook_function, inspect_object, and other tools that run JavaScript in the page.

How to control select_frame ↓

What select_frame does on JS Reverse Strong MCP

AI agents invoke select_frame to trigger actions in JS Reverse Strong 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.

High Risk

Why select_frame needs a policy

While selecting a frame is nominally a configuration action, it sets the execution context for subsequent JavaScript execution and hooking operations. This means misuse could redirect script execution, hooks, or inspection to unintended frames, enabling indirect execution-level impact.

From the tool's definition Selects a frame...as the execution context for evaluate_script, hook_function, inspect_object, and other tools that run JavaScript in the page

Documented attack patterns abuse exactly the kind of access select_frame gives an agent:

How to control select_frame

PolicyLayer is an MCP gateway — it sits between your AI agents and JS Reverse Strong MCP, and nothing reaches the server without passing your rules. This is the rule we recommend for select_frame:

policy.json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "select_frame": {
      "limits": [
        {
          "counter": "select_frame_rate",
          "window": "minute",
          "max": 10,
          "scope": "grant"
        }
      ]
    }
  }
}

select_frame stays usable, but rate-capped — a runaway agent can't fire it dozens of times a minute. Everything else on the server is denied unless you say otherwise.

  1. Create a free account and register JS Reverse Strong MCP — nothing to install.
  2. Add this policy — paste it, or build it visually.
  3. Point your MCP client (Claude, Cursor, anything) at your gateway URL.
RATE-LIMIT THIS TOOL →

Free to start. No card required.

Related tools and policies

Go deeper

Questions about select_frame

What does the select_frame tool do? +

Selects a frame (by index from list_frames) as the execution context for evaluate_script, hook_function, inspect_object, and other tools that run JavaScript in the page. It is categorised as a Execute tool in the JS Reverse Strong MCP MCP Server, which means it can trigger actions or run processes. Use rate limits and argument validation.

How do I enforce a policy on select_frame? +

Register the JS Reverse Strong MCP server in PolicyLayer and add a rule for select_frame: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches JS Reverse Strong MCP. Nothing to install.

What risk level is select_frame? +

select_frame is a Execute tool with high risk. Execute tools should be rate-limited and have argument validation enabled.

Can I rate-limit select_frame? +

Yes. Add a rate_limit block to the select_frame rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.

How do I block select_frame completely? +

Set action: deny in the PolicyLayer policy for select_frame. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.

What MCP server provides select_frame? +

select_frame is provided by the JS Reverse Strong MCP server (lwjjike/jsreverser-strong-mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.

Enforce policy on every JS Reverse Strong MCP tool call.

Start from JS Reverse Strong MCP, add the rest of your stack, and see everything your agents can call. Then put policy on all of it.

Free to start. No card required.

85 JS Reverse Strong MCP tools catalogued and risk-classified — across an index of 43,000+ MCP servers.

// GET IN TOUCH

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

Message sent.

We'll get back to you soon.