Skip to main content
Glama

fingerprint_touch

Simulates an emulator fingerprint-sensor touch to satisfy BiometricPrompt using an enrolled finger ID; check enrollment first to avoid a stuck 'Touch the sensor' prompt.

Instructions

Simulate a fingerprint-sensor touch on an EMULATOR (adb emu finger touch). With a fingerprint enrolled it satisfies a BiometricPrompt, so you can drive the real biometric path instead of cancelling into the PIN fallback. finger_id must match an enrolled finger (default 1). Check has_biometric_enrolled FIRST: with nothing enrolled the prompt sits on "Touch the sensor" forever. GOTCHA: it reports OK even when the id matches nothing, and wrong ids trip a HAL lockout, so enroll deterministically rather than sweeping ids (android://guide/pin-and-lock). Emulator-only.

Input Schema

NameRequiredDescriptionDefault
serialNoTarget device serial (adb -s). Optional when exactly one device is attached.
finger_idNoId of the enrolled finger to touch with (must match a finger enrolled in Settings). Default 1.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.8/5.0
Behavior5/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 does so well: it discloses emulator-only scope, that the call reports OK even for a non-matching id, and that wrong ids trip a HAL lockout. It also advises enrolling deterministically rather than sweeping ids, which is exactly the behavioral guidance an agent needs.

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?

Front-loads the action and the emulator restriction, then layers prerequisite and gotcha in order of importance. Dense but nearly every clause earns its place; the embedded guide reference is a minor extra.

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?

For a 2-param, no-output-schema tool, the description covers scope, precondition, failure mode, and side effects. Nothing an agent needs in order to invoke it safely is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description adds value by emphasizing that finger_id must match an enrolled finger and that an unmatched id fails silently yet destructively (HAL lockout). It doesn't add format/syntax detail beyond the schema for serial, so it stops short of 5.

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+resource (simulate a fingerprint-sensor touch on an emulator) and even names the underlying adb command (adb emu finger touch). It is clearly distinguishable from siblings like finger_remove, has_biometric_enrolled, and prefer_pin.

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?

Gives explicit preconditions (enroll and verify with has_biometric_enrolled FIRST) and the failure mode if skipped (prompt hangs on 'Touch the sensor'). It also frames the purpose against the PIN-fallback alternative, so the agent knows when this tool is the right choice.

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