Skip to main content
Glama
Derrors

iphone-control

iphone_tap_element

Taps iPhone UI elements by exact or partial visible text, selects among duplicates by index, and avoids covered areas so automation can interact with labels, buttons, and controls reliably.

Instructions

按文字点击元素:先找标签/名字完全相同的,找不到再找包含该文字的。中心被悬浮栏、键盘等盖住时改点没被盖住的部分,整个被盖住就不点。

index: 匹配到多个时点第几个(从 0 开始,顺序同 iphone_list_elements)。

Input Schema

NameRequiredDescriptionDefault
textYes
thenNo操作后等界面稳定,再顺带返回界面:elements=元素列表(最多 80 个),screenshot=截图。省一次单独的调用none
indexNo
then_filterNothen=elements 时只列包含这段文字的元素
then_regionNothen=screenshot 时只返回这块区域的放大图 [x, y, width, height](点),例如游戏棋盘
then_settleNo顺带返回界面前最多等几秒让界面稳定(不超过 10)。游戏、地图按画面是否静止判断,消除连锁等长动画可调大,画面一静止就返回

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full burden and does disclose non-obvious runtime behavior: match resolution order, hit-point adjustment when the element center is covered by a floating bar or keyboard, and the safe decision not to tap at all when fully occluded. It does not state what happens on zero matches (error vs. silent no-op) or whether success is confirmed, which keeps it below 5.

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 behavioral rules are front-loaded and dense with no filler; the index note is correctly split into its own line. It is compact for the amount of decision-relevant content it carries, with only minor terseness (no explicit no-match outcome) as the cost.

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

Completeness4/5

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

Six parameters with no output schema and no annotations demand a lot, and the description covers the two parameters the schema leaves undocumented plus the occlusion/matching edge cases that most often cause wrong taps. The main residual gap is failure semantics on no match, which matters for an agent deciding whether to retry or fall back to iphone_tap.

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?

Schema coverage is 67%, and the description genuinely adds meaning for the unlabeled `text` parameter (matching semantics) and for `index` (0-based, ordering consistent with iphone_list_elements), which the schema leaves bare. The remaining then_* parameters are documented in the schema itself, so the description neither repeats nor extends them. Baseline 3 fits given the split coverage.

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

Purpose4/5

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

The first line names a specific verb+resource: tap an element by matching its text, with an exact-match-then-substring-match resolution order. That is far more precise than the bare name. It stops short of a 5 because it never contrasts itself with sibling iphone_tap (coordinate tap) or says which to prefer when a label is unknown.

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

Usage Guidelines3/5

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

The matching priority (exact label/name first, then substring) plus the occlusion rule (tap an uncovered sub-region, skip entirely if fully covered) tells the agent how the tool behaves in edge cases, which implicitly guides use. However, there is no explicit when-to-use/when-not guidance against iphone_tap, iphone_list_elements, or iphone_long_press, so the agent must infer routing.

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