press_key
Simulate key presses on Android devices using keycodes like HOME, BACK, VOLUME_UP, or ENTER for automated testing and device control.
Instructions
Press a key by keycode name or number.
Common keycodes:
- HOME (3), BACK (4), CALL (5), ENDCALL (6)
- VOLUME_UP (24), VOLUME_DOWN (25), POWER (26)
- CAMERA (27), ENTER (66), DEL/BACKSPACE (67)
- TAB (61), SPACE (62), MENU (82)
- SEARCH (84), MEDIA_PLAY_PAUSE (85)
- PAGE_UP (92), PAGE_DOWN (93)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| keycode | Yes | ||
| device_serial | No |
Implementation Reference
- src/adb_mcp_server/server.py:516-539 (handler)The press_key tool handler function that maps common key names to keycodes and sends the corresponding ADB input keyevent command to the device.@mcp.tool() def press_key(keycode: str, device_serial: str | None = None) -> str: """ Press a key by keycode name or number. Common keycodes: - HOME (3), BACK (4), CALL (5), ENDCALL (6) - VOLUME_UP (24), VOLUME_DOWN (25), POWER (26) - CAMERA (27), ENTER (66), DEL/BACKSPACE (67) - TAB (61), SPACE (62), MENU (82) - SEARCH (84), MEDIA_PLAY_PAUSE (85) - PAGE_UP (92), PAGE_DOWN (93) """ # Handle common names key_map = { 'HOME': '3', 'BACK': '4', 'ENTER': '66', 'DELETE': '67', 'DEL': '67', 'TAB': '61', 'SPACE': '62', 'MENU': '82', 'SEARCH': '84', 'VOLUME_UP': '24', 'VOLUME_DOWN': '25', 'POWER': '26', 'PAGE_UP': '92', 'PAGE_DOWN': '93', 'ESCAPE': '111', 'ESC': '111' } key = key_map.get(keycode.upper(), keycode) return run_adb(["shell", "input", "keyevent", key], device_serial)
- src/adb_mcp_server/server.py:516-516 (registration)The @mcp.tool() decorator registers the press_key function as an MCP tool.@mcp.tool()