Skip to main content
Glama

native-view-at-point

Identify the deepest visible UIView at a raw native window point, revealing the class, identifier, or label behind unlabeled icons, overlays, and custom-drawn cells that the accessibility tree omits.

Instructions

Inspect the deepest visible UIView at a raw native window point.

Unlike native-user-interactable-view-at-point, this ignores userInteractionEnabled, so it answers "what is visually here?" rather than "what would receive the touch?".

Use when a screenshot shows something the accessibility tree does not name — an unlabeled icon, a decorative overlay, a custom-drawn cell — and you need the class, identifier or nativeID of whatever draws it.

Returns { status: "ok", view }: the matched view with its class name, frames, identifier, label and layer name, its ancestor chain by default, and its subviews on request. view is null when nothing is drawn at that point.

IMPORTANT: x and y are raw iOS window coordinates in points, NOT normalized [0,1] simulator tap coordinates.

If status is restart_required: follow the message (usually restart-app), then retry. If status is service_stale: the app is already injected, so restarting it cannot help — restart the tool-server (argent server stop && argent server start --detach) and retry. If the same status comes back after that restart, stop restarting: follow the message, which names the terminal fallback. If status is connect_pending: the app is injected and still connecting — do not restart it, wait a few seconds and retry. If status is init_failed: the simulator's native-devtools environment could not be initialised — follow the message (re-boot the simulator) rather than retrying this tool. A not-connected or not-running app comes back as one of those statuses rather than a failure. Failures are separate: an Apple system app is rejected outright (terminal — never retry it), and the point query itself can error or time out.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
xYesRaw X coordinate in the app window's native point space. NOT normalized [0,1] tap space.
yYesRaw Y coordinate in the app window's native point space. NOT normalized [0,1] tap space.
udidYesSimulator UDID
fieldsNoView fields to include. Defaults: pointer, className, tag, frame, windowFrame, bounds, hidden, alpha, opaque, clipsToBounds, userInteractionEnabled, depth, identifier, label, layerName, nativeID. Additional: center, transform, contentMode, backgroundColor, tintColor
bundleIdYesBundle ID of the app
maxDepthNoMaximum depth for returned child/ancestor serialization (default 150)
skipClassesNoExact UIView class names whose entire subtree should be pruned
includeChildrenNoInclude child views for the matched view (default false)
includeAncestorsNoInclude ancestor chain for the matched view (default true)
skipClassPrefixesNoClass name prefixes to prune entire subtrees

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv0.15.0

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the return format (status + view with class, frames, identifier, label, layer name, ancestor chain, subviews on request), the coordinate system (raw points, not normalized), and detailed error-handling for statuses (restart_required, service_stale, connect_pending, init_failed) and failure modes (system apps rejected). No contradictions with annotations since none are present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured: it opens with the core purpose, then contrasts with a sibling, gives a use case, describes return structure, and concludes with status handling. Every paragraph covers a distinct aspect and includes necessary operational details. It could be slightly trimmed but remains efficient given the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, 4 required) and the absence of an output schema, the description is exceptionally complete. It covers the return value structure, all expected statuses with recovery steps, coordinate system specifics, and Edge cases (system app rejection). It leaves no major gaps for an agent to successfully use the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage of all 10 parameters, including descriptions for x/y coordinates and field lists. The description adds a warning about raw coordinates and clarifies default behavior (e.g., includeAncestors defaults true), but these are already in the schema. It does not significantly add value beyond what the schema documents, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it inspects the deepest visible UIView at a raw native window point, and explicitly contrasts with native-user-interactable-view-at-point, distinguishing it as answering 'what is visually here?' rather than 'what would receive the touch?'. This makes the purpose specific and distinct from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit when-to-use guidance: 'Use when a screenshot shows something the accessibility tree does not name — an unlabeled icon, a decorative overlay, a custom-drawn cell'. It also names the sibling alternative and explains the difference, fulfilling the when/when-not requirement fully.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/software-mansion/argent'

If you have feedback or need assistance with the MCP directory API, please join our Discord server