Skip to main content
Glama

keyboard_show

Opens the iOS keyboard on a field by scrolling to it and tapping it with a real touch, then waits for the viewport to shrink. Use when script focus() fails to show the keyboard.

Instructions

Open the keyboard on a field with a real tap (script focus() does not open it on iOS): scrolls the field into view, finds where it is on the screen, taps it, and waits until the visual viewport has shrunk. Returns the state with the keyboard up.

Input Schema

NameRequiredDescriptionDefault
pageNoindex in inspector_pages; default the first page with a real address
waitNoseconds to wait for the page list, default 60
indexNowhich match, default 0
scrollNoscroll the field to the middle first, default true
timeoutNoseconds to wait for the keyboard, default 120
selectorYesCSS selector of the element

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden, and it does so well: it discloses the concrete side effects (scrolls the field into view, computes its screen position, performs a real tap) and the synchronous completion condition (waits until the visual viewport shrinks). It leaves out what happens on timeout failure or whether the tap requires the page to be foregrounded.

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

Conciseness5/5

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

Two dense sentences, front-loaded with the purpose and the non-obvious iOS rationale, followed by the mechanism and return. No filler sentences.

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?

Covers mechanism, side effects, and the wait condition for a six-parameter tool, which is nearly everything an agent needs. The residual gap is that 'returns the state' is not defined (presumably the keyboard_state shape) and failure/timeout behavior is unstated, and there is no output schema to fall back on.

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 description coverage is 100%, so all six parameters are already documented in the schema, setting the baseline at 3. The description only loosely implies the scroll and timeout parameters through its prose ('scrolls the field into view', 'waits until the visual viewport has shrunk') without adding format or default detail beyond the schema.

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?

States a specific verb and resource ('Open the keyboard on a field') and immediately distinguishes itself from scripted alternatives by explaining that calling focus() does not work on iOS. An agent can tell this apart from siblings like tap_css, fill, or js without opening any schema.

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

Usage Guidelines4/5

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

Makes the operative context clear: use this when the keyboard must actually be up and JS focus() is insufficient (explicitly iOS). It does not, however, name sibling alternatives such as keyboard_state for read-only checks or keyboard_hide for dismissal, so the routing is good but not exhaustive.

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