Low Risk

ui_tree

PREFERRED: Get the full UI element tree of an app via Accessibility. ~50ms, no screenshot/OCR. Use this FIRST to find elements — returns titles, roles, and bounds. Then use ui_press/ui_find to interact.

How to control ui_tree ↓

What ui_tree does on ScreenHand

AI agents call ui_tree to retrieve information from ScreenHand without modifying anything — typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.

Low Risk

Why ui_tree needs a policy

This tool retrieves structural information about UI elements without side effects. It enables discovery of what can be interacted with but does not itself execute commands, modify state, or trigger actions. The ~50ms performance note and comparison to screenshot-based alternatives indicate it is a lightweight information-gathering primitive. Classification as Read is appropriate.

From the tool's definition Tool description explicitly states 'Get the full UI element tree of an app via Accessibility' with no mention of modification, deletion, or execution. It returns 'titles, roles, and bounds' — pure data retrieval.

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

How to control ui_tree

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

policy.json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "ui_tree": {}
  }
}

ui_tree is read-only, so it stays allowed — but everything else on the server is denied unless you say otherwise.

  1. Create a free account and register ScreenHand — 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.
CAP THIS TOOL →

Free to start. No card required.

Related tools and policies

Go deeper

Questions about ui_tree

What does the ui_tree tool do? +

PREFERRED: Get the full UI element tree of an app via Accessibility. ~50ms, no screenshot/OCR. Use this FIRST to find elements — returns titles, roles, and bounds. Then use ui_press/ui_find to interact. It is categorised as a Read tool in the ScreenHand MCP Server, which means it retrieves data without modifying state.

How do I enforce a policy on ui_tree? +

Register the ScreenHand MCP server in PolicyLayer and add a rule for ui_tree: 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 ScreenHand. Nothing to install.

What risk level is ui_tree? +

ui_tree is a Read tool with low risk. Read-only tools are generally safe to allow by default.

Can I rate-limit ui_tree? +

Yes. Add a rate_limit block to the ui_tree 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 ui_tree completely? +

Set action: deny in the PolicyLayer policy for ui_tree. 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 ui_tree? +

ui_tree is provided by the ScreenHand MCP server (manushi4/screenhand). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.

Enforce policy on every ScreenHand tool call.

Start from ScreenHand, 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.

89 ScreenHand 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.