app_keyboard
This tool on every surface: CLI · MCP · Python · JavaScript · Go · Java · .NET
The soft keyboard: whether it is up and which field has focus, typing at that field's cursor, pressing a named key, or hiding it. For the field nothing names — one that took focus by itself, the next field after enter — where app_type needs a target. Typing is confirmed by reading the field back, and retried on iOS, which drops keystrokes; a password field's value is never shown. A key is reported as sent, since what it does is the app's to decide. Hiding is confirmed; on an iPhone, whose keyboard has no hide key, it is refused when the app offers no way, with the one that usually works.
Changes the device, the app or the session: readOnlyHint is false.
Arguments
| Name | Type | Required | What it is |
|---|---|---|---|
device | string | Device serial to target, e.g. "emulator-5554". Omit when only one device is running. | |
driver | string: uiautomator2, uiautomator, wda | Driver to use: "uiautomator2" (default for Android; fast, installs a server APK on first use), "uiautomator" (Android, installs nothing, slower, cannot type), or "wda" (WebDriverAgent: iOS simulators and iPhones). | |
hide | boolean | Hide the keyboard. Cannot be combined with text or key. Default false. | |
key | string: enter, delete, space | Press a named key, after any text. | |
text | string | Type this at the cursor of the field that has focus. |
Examples
Each is the arguments of a tools/call request; the first is shown whole.
Type into the focused field and press Enter
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "app_keyboard",
"arguments": {
"text": "coffee",
"key": "enter"
}
}
}
On an Android 15 emulator the answer's text was:
typed "coffee" into username, which now holds coffee; the keyboard is hidden

mobium keyboard --text coffee --key enter on an Android 15 emulator
Hide the keyboard
{
"hide": true
}
On an Android 15 emulator the answer's text was:
hid the keyboard
| Before | After |
|---|---|
![]() | ![]() |
mobium keyboard --hide on an Android 15 emulator

