appium-mcp 1.47.0 → 1.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +5 -9
- package/dist/tests/tools/session/file-transfer.test.js +21 -21
- package/dist/tests/tools/session/file-transfer.test.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +11 -20
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/interactions/handle-alert.d.ts +1 -11
- package/dist/tools/interactions/handle-alert.d.ts.map +1 -1
- package/dist/tools/interactions/handle-alert.js +35 -79
- package/dist/tools/interactions/handle-alert.js.map +1 -1
- package/dist/tools/interactions/orientation.d.ts +1 -2
- package/dist/tools/interactions/orientation.d.ts.map +1 -1
- package/dist/tools/interactions/orientation.js +25 -51
- package/dist/tools/interactions/orientation.js.map +1 -1
- package/dist/tools/interactions/screen-recording.d.ts +1 -2
- package/dist/tools/interactions/screen-recording.d.ts.map +1 -1
- package/dist/tools/interactions/screen-recording.js +88 -115
- package/dist/tools/interactions/screen-recording.js.map +1 -1
- package/dist/tools/interactions/screenshot.d.ts +1 -2
- package/dist/tools/interactions/screenshot.d.ts.map +1 -1
- package/dist/tools/interactions/screenshot.js +15 -33
- package/dist/tools/interactions/screenshot.js.map +1 -1
- package/dist/tools/ios/prepare-ios-simulator.d.ts +8 -0
- package/dist/tools/ios/prepare-ios-simulator.d.ts.map +1 -0
- package/dist/tools/ios/prepare-ios-simulator.js +349 -0
- package/dist/tools/ios/prepare-ios-simulator.js.map +1 -0
- package/dist/tools/session/file-transfer.d.ts +1 -11
- package/dist/tools/session/file-transfer.d.ts.map +1 -1
- package/dist/tools/session/file-transfer.js +38 -81
- package/dist/tools/session/file-transfer.js.map +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/src/resources/submodules.zip +0 -0
- package/src/tools/README.md +1 -1
- package/src/tools/index.ts +11 -23
- package/src/tools/interactions/handle-alert.ts +39 -88
- package/src/tools/interactions/orientation.ts +30 -57
- package/src/tools/interactions/screen-recording.ts +106 -144
- package/src/tools/interactions/screenshot.ts +21 -42
- package/src/tools/ios/prepare-ios-simulator.ts +491 -0
- package/src/tools/session/file-transfer.ts +39 -87
- package/dist/tools/ios/boot-simulator.d.ts +0 -2
- package/dist/tools/ios/boot-simulator.d.ts.map +0 -1
- package/dist/tools/ios/boot-simulator.js +0 -69
- package/dist/tools/ios/boot-simulator.js.map +0 -1
- package/dist/tools/ios/install-wda.d.ts +0 -2
- package/dist/tools/ios/install-wda.d.ts.map +0 -1
- package/dist/tools/ios/install-wda.js +0 -219
- package/dist/tools/ios/install-wda.js.map +0 -1
- package/dist/tools/ios/setup-wda.d.ts +0 -2
- package/dist/tools/ios/setup-wda.d.ts.map +0 -1
- package/dist/tools/ios/setup-wda.js +0 -165
- package/dist/tools/ios/setup-wda.js.map +0 -1
- package/src/tools/ios/boot-simulator.ts +0 -85
- package/src/tools/ios/install-wda.ts +0 -277
- package/src/tools/ios/setup-wda.ts +0 -211
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [1.49.0](https://github.com/appium/appium-mcp/compare/v1.48.0...v1.49.0) (2026-04-08)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* consolidate simulator preparation into single `prepare_ios_simulator` tool ([#250](https://github.com/appium/appium-mcp/issues/250)) ([68cfc91](https://github.com/appium/appium-mcp/commit/68cfc9142857d346f3eacf36fff9ba7456724096))
|
|
6
|
+
|
|
7
|
+
## [1.48.0](https://github.com/appium/appium-mcp/compare/v1.47.0...v1.48.0) (2026-04-07)
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* merge some similar tools to reduce the amount of tools ([#249](https://github.com/appium/appium-mcp/issues/249)) ([7fa60f2](https://github.com/appium/appium-mcp/commit/7fa60f2ad74cbdfa99d9057380f32ec17716c8d0))
|
|
12
|
+
|
|
1
13
|
## [1.47.0](https://github.com/appium/appium-mcp/compare/v1.46.0...v1.47.0) (2026-04-07)
|
|
2
14
|
|
|
3
15
|
### Features
|
package/README.md
CHANGED
|
@@ -184,7 +184,7 @@ Screen recordings are saved as MP4 files to the same directory as screenshots (`
|
|
|
184
184
|
- **iOS**: Requires [ffmpeg](https://ffmpeg.org/download.html) to be installed and available on `PATH`. The default codec is `libx264` with `yuv420p` pixel format for QuickTime compatibility.
|
|
185
185
|
- **Android**: Uses the built-in `screenrecord` command via UiAutomator2. No additional dependencies required.
|
|
186
186
|
|
|
187
|
-
To
|
|
187
|
+
To start recording, call `appium_screen_recording` with `action="start"`. You may provide `timeLimit` in seconds to limit the maximum recording duration, but the start call still returns immediately. To finalize the recording, save the video, and receive the file path, call `appium_screen_recording` again with `action="stop"`.
|
|
188
188
|
|
|
189
189
|
### AI Vision Element Finding
|
|
190
190
|
|
|
@@ -338,27 +338,23 @@ The default regex pattern allows any URL that starts with `http://` or `https://
|
|
|
338
338
|
| `appium_get_text` | Get text content from an element |
|
|
339
339
|
| `appium_get_clipboard` | Get the current clipboard content as plain text from the device |
|
|
340
340
|
| `appium_set_clipboard` | Set the device clipboard to the provided plain text |
|
|
341
|
-
| `
|
|
342
|
-
| `appium_get_alert_text` | Get the text content of the currently displayed alert or dialog |
|
|
341
|
+
| `appium_alert` | Handle alerts with `action` = `accept`, `dismiss`, or `get_text` (optional `buttonLabel`) |
|
|
343
342
|
|
|
344
343
|
### Screen & Navigation
|
|
345
344
|
|
|
346
345
|
| Tool | Description |
|
|
347
346
|
| -------------------------- | ------------------------------------------------------- |
|
|
348
|
-
| `appium_screenshot` | Take a screenshot
|
|
349
|
-
| `appium_element_screenshot` | Take a screenshot of a specific element by its UUID and save as PNG |
|
|
347
|
+
| `appium_screenshot` | Take a screenshot and save as PNG. Optionally provide `elementUUID` to capture a specific element. |
|
|
350
348
|
| `appium_get_window_size` | Get the width and height of the device screen in pixels |
|
|
351
349
|
| `appium_scroll` | Scroll the screen vertically (up or down) |
|
|
352
350
|
| `appium_scroll_to_element` | Scroll until a specific element becomes visible |
|
|
353
351
|
| `appium_swipe` | Swipe the screen in a direction (left, right, up, down) or between custom coordinates |
|
|
354
352
|
| `appium_get_page_source` | Get the page source (XML) from the current screen |
|
|
355
|
-
| `
|
|
356
|
-
| `appium_set_orientation` | Set the device/screen orientation to LANDSCAPE or PORTRAIT (rotate screen). |
|
|
353
|
+
| `appium_orientation` | Get or set device/screen orientation with `action` = `get` or `set` (requires `orientation` for set). |
|
|
357
354
|
| `appium_set_geolocation` | Set the GPS coordinates (latitude, longitude, altitude) of the device. |
|
|
358
355
|
| `appium_get_geolocation` | Get the current GPS coordinates (latitude, longitude, altitude) of the device. |
|
|
359
356
|
| `appium_reset_geolocation` | Reset the simulated/mocked geolocation back to the system default. On iOS, clears the simulated location. On Android real devices, removes the mock location provider. Not supported on Android emulators. |
|
|
360
|
-
| `
|
|
361
|
-
| `appium_stop_recording_screen` | Stop the active screen recording and save the video to disk as an MP4 file. Returns the path to the saved file. |
|
|
357
|
+
| `appium_screen_recording` | Start or stop screen recording with `action` = `start` or `stop`. On stop, returns the saved MP4 path. |
|
|
362
358
|
| `appium_mobile_get_device_info` | Get device information (model, OS version, locale, timezone, screen density, etc.). On iOS real devices, includes detailed lockdown info (hardware model, product type, CPU architecture, etc.). |
|
|
363
359
|
| `appium_mobile_get_battery_info` | Get the current battery level (as a percentage) and charging state of the device. Works on both iOS and Android. |
|
|
364
360
|
| `appium_mobile_get_device_time` | Get the current time on the device. Accepts an optional `format` parameter (moment.js format string); defaults to ISO 8601. Works on both iOS and Android. |
|
|
@@ -15,40 +15,44 @@ const { execute } = await import('../../../command.js');
|
|
|
15
15
|
const mockGetDriver = getDriver;
|
|
16
16
|
const mockGetPlatformName = getPlatformName;
|
|
17
17
|
const mockExecute = execute;
|
|
18
|
-
describe('
|
|
18
|
+
describe('appium_mobile_file', () => {
|
|
19
19
|
const mockServer = { addTool: jest.fn() };
|
|
20
20
|
beforeEach(() => {
|
|
21
21
|
mockServer.addTool.mockClear();
|
|
22
22
|
mockExecute.mockReset();
|
|
23
23
|
});
|
|
24
|
-
|
|
25
|
-
const {
|
|
24
|
+
async function registerTool() {
|
|
25
|
+
const { default: fileTransfer } = await import('../../../tools/session/file-transfer.js');
|
|
26
|
+
fileTransfer(mockServer);
|
|
27
|
+
return mockServer.addTool.mock.calls.at(-1)?.[0];
|
|
28
|
+
}
|
|
29
|
+
test('throws when no driver is active', async () => {
|
|
30
|
+
const tool = await registerTool();
|
|
26
31
|
mockGetDriver.mockReturnValue(null);
|
|
27
|
-
|
|
28
|
-
const tool = mockServer.addTool.mock.calls.at(-1)?.[0];
|
|
29
|
-
await expect(tool.execute({ remotePath: '/sdcard/x.txt', payloadBase64: 'YQ==' }, undefined)).rejects.toThrow('No driver found');
|
|
32
|
+
await expect(tool.execute({ action: 'push', remotePath: '/sdcard/x.txt', payloadBase64: 'YQ==' }, undefined)).rejects.toThrow('No driver found');
|
|
30
33
|
});
|
|
31
34
|
test('push: Android uses path and data', async () => {
|
|
32
|
-
const
|
|
35
|
+
const tool = await registerTool();
|
|
33
36
|
mockGetDriver.mockReturnValue({});
|
|
34
37
|
mockGetPlatformName.mockReturnValue(PLATFORM.android);
|
|
35
38
|
mockExecute.mockResolvedValue(undefined);
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
await tool.execute({
|
|
40
|
+
action: 'push',
|
|
41
|
+
remotePath: '/data/local/tmp/a.txt',
|
|
42
|
+
payloadBase64: 'SGVsbG8=',
|
|
43
|
+
}, undefined);
|
|
39
44
|
expect(mockExecute).toHaveBeenCalledWith(expect.anything(), 'mobile: pushFile', expect.objectContaining({
|
|
40
45
|
path: '/data/local/tmp/a.txt',
|
|
41
46
|
data: 'SGVsbG8=',
|
|
42
47
|
}));
|
|
43
48
|
});
|
|
44
49
|
test('push: iOS uses remotePath and payload', async () => {
|
|
45
|
-
const
|
|
50
|
+
const tool = await registerTool();
|
|
46
51
|
mockGetDriver.mockReturnValue({});
|
|
47
52
|
mockGetPlatformName.mockReturnValue(PLATFORM.ios);
|
|
48
53
|
mockExecute.mockResolvedValue(undefined);
|
|
49
|
-
pushFile(mockServer);
|
|
50
|
-
const tool = mockServer.addTool.mock.calls.at(-1)?.[0];
|
|
51
54
|
await tool.execute({
|
|
55
|
+
action: 'push',
|
|
52
56
|
remotePath: '@com.example.app:documents/x.txt',
|
|
53
57
|
payloadBase64: 'QQ==',
|
|
54
58
|
}, undefined);
|
|
@@ -58,26 +62,22 @@ describe('appium_mobile_push_file / appium_mobile_pull_file', () => {
|
|
|
58
62
|
}));
|
|
59
63
|
});
|
|
60
64
|
test('pull: Android uses path', async () => {
|
|
61
|
-
const
|
|
65
|
+
const tool = await registerTool();
|
|
62
66
|
mockGetDriver.mockReturnValue({});
|
|
63
67
|
mockGetPlatformName.mockReturnValue(PLATFORM.android);
|
|
64
68
|
mockExecute.mockResolvedValue('YmJiYg==');
|
|
65
|
-
|
|
66
|
-
const tool = mockServer.addTool.mock.calls.at(-1)?.[0];
|
|
67
|
-
const result = await tool.execute({ remotePath: '/sdcard/Download/out.bin' }, undefined);
|
|
69
|
+
const result = await tool.execute({ action: 'pull', remotePath: '/sdcard/Download/out.bin' }, undefined);
|
|
68
70
|
expect(mockExecute).toHaveBeenCalledWith(expect.anything(), 'mobile: pullFile', expect.objectContaining({ path: '/sdcard/Download/out.bin' }));
|
|
69
71
|
const parsed = JSON.parse(result.content[0].text);
|
|
70
72
|
expect(parsed.contentBase64).toBe('YmJiYg==');
|
|
71
73
|
expect(parsed.platform).toBe('Android');
|
|
72
74
|
});
|
|
73
75
|
test('pull: iOS uses remotePath', async () => {
|
|
74
|
-
const
|
|
76
|
+
const tool = await registerTool();
|
|
75
77
|
mockGetDriver.mockReturnValue({});
|
|
76
78
|
mockGetPlatformName.mockReturnValue(PLATFORM.ios);
|
|
77
79
|
mockExecute.mockResolvedValue('eHh4');
|
|
78
|
-
|
|
79
|
-
const tool = mockServer.addTool.mock.calls.at(-1)?.[0];
|
|
80
|
-
const result = await tool.execute({ remotePath: '@com.app:documents/f.txt' }, undefined);
|
|
80
|
+
const result = await tool.execute({ action: 'pull', remotePath: '@com.app:documents/f.txt' }, undefined);
|
|
81
81
|
expect(mockExecute).toHaveBeenCalledWith(expect.anything(), 'mobile: pullFile', expect.objectContaining({ remotePath: '@com.app:documents/f.txt' }));
|
|
82
82
|
const parsed = JSON.parse(result.content[0].text);
|
|
83
83
|
expect(parsed.contentBase64).toBe('eHh4');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-transfer.test.js","sourceRoot":"","sources":["../../../../src/tests/tools/session/file-transfer.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEzE,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAAC,CAAC;IACxD,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE;IACpB,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE;IAC1B,QAAQ,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE;CAC7C,CAAC,CAAC,CAAC;AAEJ,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClD,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;CACnB,CAAC,CAAC,CAAC;AAEJ,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC;IACjD,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE;CAC9E,CAAC,CAAC,CAAC;AAEJ,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,GAC5C,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAExD,MAAM,aAAa,GAAG,SAAkD,CAAC;AACzE,MAAM,mBAAmB,GAAG,eAE3B,CAAC;AACF,MAAM,WAAW,GAAG,OAA8C,CAAC;AAEnE,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"file-transfer.test.js","sourceRoot":"","sources":["../../../../src/tests/tools/session/file-transfer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AA8DlC,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAiJ3D"}
|
package/dist/tools/index.js
CHANGED
|
@@ -14,12 +14,10 @@ import { lockDevice, unlockDevice } from './session/lock.js';
|
|
|
14
14
|
import { setGeolocation, getGeolocation, resetGeolocation, } from './session/geolocation.js';
|
|
15
15
|
import deviceInfo from './session/device-info.js';
|
|
16
16
|
import batteryInfo from './session/battery-info.js';
|
|
17
|
-
import
|
|
17
|
+
import fileTransfer from './session/file-transfer.js';
|
|
18
18
|
import deviceTime from './session/device-time.js';
|
|
19
19
|
import driverSettings from './session/driver-settings.js';
|
|
20
|
-
import
|
|
21
|
-
import setupWDA from './ios/setup-wda.js';
|
|
22
|
-
import installWDA from './ios/install-wda.js';
|
|
20
|
+
import prepareIosSimulator from './ios/prepare-ios-simulator.js';
|
|
23
21
|
import generateTest from './test-generation/generate-tests.js';
|
|
24
22
|
import scroll from './navigations/scroll.js';
|
|
25
23
|
import scrollToElement from './navigations/scroll-to-element.js';
|
|
@@ -38,12 +36,12 @@ import getText from './interactions/get-text.js';
|
|
|
38
36
|
import getElementAttribute from './interactions/get-element-attribute.js';
|
|
39
37
|
import getActiveElement from './interactions/active-element.js';
|
|
40
38
|
import getPageSource from './interactions/get-page-source.js';
|
|
41
|
-
import
|
|
39
|
+
import orientation from './interactions/orientation.js';
|
|
42
40
|
import clipboard from './interactions/clipboard.js';
|
|
43
|
-
import
|
|
44
|
-
import
|
|
41
|
+
import alert from './interactions/handle-alert.js';
|
|
42
|
+
import screenshot from './interactions/screenshot.js';
|
|
45
43
|
import getWindowSize from './interactions/window-size.js';
|
|
46
|
-
import
|
|
44
|
+
import screenRecording from './interactions/screen-recording.js';
|
|
47
45
|
import activateApp from './app-management/activate-app.js';
|
|
48
46
|
import backgroundApp from './app-management/background-app.js';
|
|
49
47
|
import installApp from './app-management/install-app.js';
|
|
@@ -134,14 +132,11 @@ export default function registerTools(server) {
|
|
|
134
132
|
resetGeolocation(server);
|
|
135
133
|
deviceInfo(server);
|
|
136
134
|
batteryInfo(server);
|
|
137
|
-
|
|
138
|
-
pullFile(server);
|
|
135
|
+
fileTransfer(server);
|
|
139
136
|
deviceTime(server);
|
|
140
137
|
driverSettings(server);
|
|
141
138
|
// iOS Setup
|
|
142
|
-
|
|
143
|
-
setupWDA(server);
|
|
144
|
-
installWDA(server);
|
|
139
|
+
prepareIosSimulator(server);
|
|
145
140
|
// Navigation
|
|
146
141
|
scroll(server);
|
|
147
142
|
scrollToElement(server);
|
|
@@ -166,15 +161,11 @@ export default function registerTools(server) {
|
|
|
166
161
|
clipboard(server);
|
|
167
162
|
getActiveElement(server);
|
|
168
163
|
getPageSource(server);
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
handleAlert(server);
|
|
172
|
-
getAlertText(server);
|
|
164
|
+
orientation(server);
|
|
165
|
+
alert(server);
|
|
173
166
|
screenshot(server);
|
|
174
|
-
elementScreenshot(server);
|
|
175
167
|
getWindowSize(server);
|
|
176
|
-
|
|
177
|
-
stopRecordingScreen(server);
|
|
168
|
+
screenRecording(server);
|
|
178
169
|
// App Management
|
|
179
170
|
activateApp(server);
|
|
180
171
|
backgroundApp(server);
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAeA,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,YAAY,MAAM,kCAAkC,CAAC;AAC5D,OAAO,YAAY,MAAM,kCAAkC,CAAC;AAC5D,OAAO,aAAa,MAAM,6BAA6B,CAAC;AACxD,OAAO,aAAa,MAAM,6BAA6B,CAAC;AACxD,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,aAAa,MAAM,6BAA6B,CAAC;AACxD,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAC7D,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,iBAAiB,MAAM,iCAAiC,CAAC;AAChE,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,3 @@
|
|
|
1
1
|
import type { FastMCP } from 'fastmcp';
|
|
2
|
-
|
|
3
|
-
export declare const handleAlertSchema: z.ZodObject<{
|
|
4
|
-
action: z.ZodEnum<{
|
|
5
|
-
accept: "accept";
|
|
6
|
-
dismiss: "dismiss";
|
|
7
|
-
}>;
|
|
8
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
9
|
-
buttonLabel: z.ZodOptional<z.ZodString>;
|
|
10
|
-
}, z.core.$strip>;
|
|
11
|
-
export declare function getAlertText(server: FastMCP): void;
|
|
12
|
-
export default function handleAlert(server: FastMCP): void;
|
|
2
|
+
export default function alert(server: FastMCP): void;
|
|
13
3
|
//# sourceMappingURL=handle-alert.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-alert.d.ts","sourceRoot":"","sources":["../../../src/tools/interactions/handle-alert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"handle-alert.d.ts","sourceRoot":"","sources":["../../../src/tools/interactions/handle-alert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,SAAS,CAAC;AA+FtD,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAuFnD"}
|
|
@@ -2,24 +2,6 @@ import { z } from 'zod';
|
|
|
2
2
|
import { generateAllElementLocators } from '../../locators/generate-all-locators.js';
|
|
3
3
|
import { getDriver, getPlatformName, PLATFORM, } from '../../session-store.js';
|
|
4
4
|
import { elementClick, execute, getPageSource } from '../../command.js';
|
|
5
|
-
export const handleAlertSchema = z.object({
|
|
6
|
-
action: z
|
|
7
|
-
.enum(['accept', 'dismiss'])
|
|
8
|
-
.describe('Action to perform on the alert: accept or dismiss'),
|
|
9
|
-
sessionId: z
|
|
10
|
-
.string()
|
|
11
|
-
.optional()
|
|
12
|
-
.describe('Session ID to target. If omitted, uses the active session.'),
|
|
13
|
-
buttonLabel: z
|
|
14
|
-
.string()
|
|
15
|
-
.optional()
|
|
16
|
-
.describe(`Optional label of the button to click. Common permission dialog buttons:
|
|
17
|
-
Android: "While using the app", "Only this time", "Don't allow"
|
|
18
|
-
iOS: "Always" or "Allow Always", "Once" or "Allow Once", "Don't allow"
|
|
19
|
-
Standard: "OK", "Cancel", "Allow", "Deny"
|
|
20
|
-
If not provided, uses default button based on action.
|
|
21
|
-
Use appium_get_page_source or generate_locators to inspect the screen and discover exact labels.`),
|
|
22
|
-
});
|
|
23
5
|
const ANDROID_LOCATOR_STRATEGY_ORDER = [
|
|
24
6
|
'id',
|
|
25
7
|
'accessibility id',
|
|
@@ -78,65 +60,24 @@ async function handleiOSAlert(driver, action, buttonLabel) {
|
|
|
78
60
|
}
|
|
79
61
|
await execute(driver, 'mobile: alert', params);
|
|
80
62
|
}
|
|
81
|
-
export function
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
},
|
|
95
|
-
execute: async (args, _context) => {
|
|
96
|
-
const driver = getDriver(args.sessionId);
|
|
97
|
-
if (!driver) {
|
|
98
|
-
throw new Error('No driver found');
|
|
99
|
-
}
|
|
100
|
-
try {
|
|
101
|
-
const text = await driver.getAlertText();
|
|
102
|
-
return {
|
|
103
|
-
content: [
|
|
104
|
-
{
|
|
105
|
-
type: 'text',
|
|
106
|
-
text: text
|
|
107
|
-
? `Alert text: "${text}"`
|
|
108
|
-
: 'Alert is present but has no text.',
|
|
109
|
-
},
|
|
110
|
-
],
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
catch (err) {
|
|
114
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
115
|
-
return {
|
|
116
|
-
content: [
|
|
117
|
-
{
|
|
118
|
-
type: 'text',
|
|
119
|
-
text: `Failed to get alert text. Error: ${message}`,
|
|
120
|
-
},
|
|
121
|
-
],
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
},
|
|
63
|
+
export default function alert(server) {
|
|
64
|
+
const appiumAlertSchema = z.object({
|
|
65
|
+
action: z
|
|
66
|
+
.enum(['accept', 'dismiss', 'get_text'])
|
|
67
|
+
.describe('Action to perform on alert: accept, dismiss, or get_text'),
|
|
68
|
+
sessionId: z
|
|
69
|
+
.string()
|
|
70
|
+
.optional()
|
|
71
|
+
.describe('Session ID to target. If omitted, uses the active session.'),
|
|
72
|
+
buttonLabel: z
|
|
73
|
+
.string()
|
|
74
|
+
.optional()
|
|
75
|
+
.describe('Optional label of the button to click for accept/dismiss.'),
|
|
125
76
|
});
|
|
126
|
-
}
|
|
127
|
-
export default function handleAlert(server) {
|
|
128
77
|
server.addTool({
|
|
129
|
-
name: '
|
|
130
|
-
description:
|
|
131
|
-
|
|
132
|
-
Supports permission dialogs with buttons like:
|
|
133
|
-
- Android: "While using the app", "Only this time", "Don't allow"
|
|
134
|
-
- iOS: "Always", "Allow Once", "Don't allow"
|
|
135
|
-
For iOS: Uses mobile: alert execute command.
|
|
136
|
-
For Android: Uses mobile: acceptAlert/dismissAlert or searches the current page source for an element whose text or content-desc matches the label, then uses generated locators to find and click it (no hardcoded resource IDs or XPaths).
|
|
137
|
-
If no alert is present, the error is caught and returned gracefully.
|
|
138
|
-
To discover button labels and screen structure first, use appium_get_page_source (XML hierarchy) or generate_locators (interactable elements with text/content-desc).`,
|
|
139
|
-
parameters: handleAlertSchema,
|
|
78
|
+
name: 'appium_alert',
|
|
79
|
+
description: 'Handle system alerts with action=accept|dismiss, or read alert text with action=get_text.',
|
|
80
|
+
parameters: appiumAlertSchema,
|
|
140
81
|
annotations: {
|
|
141
82
|
readOnlyHint: false,
|
|
142
83
|
openWorldHint: false,
|
|
@@ -147,6 +88,19 @@ To discover button labels and screen structure first, use appium_get_page_source
|
|
|
147
88
|
throw new Error('No driver found');
|
|
148
89
|
}
|
|
149
90
|
try {
|
|
91
|
+
if (args.action === 'get_text') {
|
|
92
|
+
const text = await driver.getAlertText();
|
|
93
|
+
return {
|
|
94
|
+
content: [
|
|
95
|
+
{
|
|
96
|
+
type: 'text',
|
|
97
|
+
text: text
|
|
98
|
+
? `Alert text: "${text}"`
|
|
99
|
+
: 'Alert is present but has no text.',
|
|
100
|
+
},
|
|
101
|
+
],
|
|
102
|
+
};
|
|
103
|
+
}
|
|
150
104
|
const platform = getPlatformName(driver);
|
|
151
105
|
if (platform === PLATFORM.android) {
|
|
152
106
|
await handleAndroidAlert(driver, args.action, args.buttonLabel);
|
|
@@ -167,14 +121,16 @@ To discover button labels and screen structure first, use appium_get_page_source
|
|
|
167
121
|
};
|
|
168
122
|
}
|
|
169
123
|
catch (err) {
|
|
170
|
-
const contextStr = args.
|
|
171
|
-
?
|
|
172
|
-
:
|
|
124
|
+
const contextStr = args.action === 'get_text'
|
|
125
|
+
? 'action=get_text'
|
|
126
|
+
: args.buttonLabel
|
|
127
|
+
? `action=${args.action}, buttonLabel="${args.buttonLabel}"`
|
|
128
|
+
: `action=${args.action}`;
|
|
173
129
|
return {
|
|
174
130
|
content: [
|
|
175
131
|
{
|
|
176
132
|
type: 'text',
|
|
177
|
-
text: `Failed
|
|
133
|
+
text: `Failed alert action (${contextStr}). err: ${err.toString()}`,
|
|
178
134
|
},
|
|
179
135
|
],
|
|
180
136
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-alert.js","sourceRoot":"","sources":["../../../src/tools/interactions/handle-alert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAEL,SAAS,EACT,eAAe,EACf,QAAQ,GACT,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAExE,MAAM,
|
|
1
|
+
{"version":3,"file":"handle-alert.js","sourceRoot":"","sources":["../../../src/tools/interactions/handle-alert.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import type { FastMCP } from 'fastmcp';
|
|
2
|
-
export
|
|
3
|
-
export declare function setOrientation(server: FastMCP): void;
|
|
2
|
+
export default function orientation(server: FastMCP): void;
|
|
4
3
|
//# sourceMappingURL=orientation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orientation.d.ts","sourceRoot":"","sources":["../../../src/tools/interactions/orientation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"orientation.d.ts","sourceRoot":"","sources":["../../../src/tools/interactions/orientation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,SAAS,CAAC;AAwBtD,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAyDzD"}
|
|
@@ -1,64 +1,24 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { getDriver } from '../../session-store.js';
|
|
3
3
|
import { getOrientation as _getOrientation, setOrientation as _setOrientation, } from '../../command.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
.optional()
|
|
9
|
-
.describe('Session ID to target. If omitted, uses the active session.'),
|
|
10
|
-
});
|
|
11
|
-
server.addTool({
|
|
12
|
-
name: 'appium_get_orientation',
|
|
13
|
-
description: 'Get the current device/screen orientation. Returns LANDSCAPE or PORTRAIT.',
|
|
14
|
-
parameters: orientationScheme,
|
|
15
|
-
annotations: {
|
|
16
|
-
readOnlyHint: true,
|
|
17
|
-
openWorldHint: false,
|
|
18
|
-
},
|
|
19
|
-
execute: async (args, _context) => {
|
|
20
|
-
const driver = getDriver(args.sessionId);
|
|
21
|
-
if (!driver) {
|
|
22
|
-
throw new Error('No driver found');
|
|
23
|
-
}
|
|
24
|
-
try {
|
|
25
|
-
const orientation = await _getOrientation(driver);
|
|
26
|
-
return {
|
|
27
|
-
content: [
|
|
28
|
-
{
|
|
29
|
-
type: 'text',
|
|
30
|
-
text: `Successfully got orientation: ${orientation}`,
|
|
31
|
-
},
|
|
32
|
-
],
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
catch (err) {
|
|
36
|
-
return {
|
|
37
|
-
content: [
|
|
38
|
-
{
|
|
39
|
-
type: 'text',
|
|
40
|
-
text: `Failed to get orientation. err: ${err.toString()}`,
|
|
41
|
-
},
|
|
42
|
-
],
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
const setOrientationSchema = z.object({
|
|
4
|
+
const orientationSchema = z.object({
|
|
5
|
+
action: z
|
|
6
|
+
.enum(['get', 'set'])
|
|
7
|
+
.describe('Use get to read current orientation, set to change orientation.'),
|
|
49
8
|
orientation: z
|
|
50
9
|
.enum(['LANDSCAPE', 'PORTRAIT'])
|
|
51
|
-
.
|
|
10
|
+
.optional()
|
|
11
|
+
.describe('Required when action is set.'),
|
|
52
12
|
sessionId: z
|
|
53
13
|
.string()
|
|
54
14
|
.optional()
|
|
55
15
|
.describe('Session ID to target. If omitted, uses the active session.'),
|
|
56
16
|
});
|
|
57
|
-
export function
|
|
17
|
+
export default function orientation(server) {
|
|
58
18
|
server.addTool({
|
|
59
|
-
name: '
|
|
60
|
-
description: '
|
|
61
|
-
parameters:
|
|
19
|
+
name: 'appium_orientation',
|
|
20
|
+
description: 'Get or set the device/screen orientation. Supports action=get and action=set (LANDSCAPE or PORTRAIT).',
|
|
21
|
+
parameters: orientationSchema,
|
|
62
22
|
annotations: {
|
|
63
23
|
readOnlyHint: false,
|
|
64
24
|
openWorldHint: false,
|
|
@@ -69,6 +29,20 @@ export function setOrientation(server) {
|
|
|
69
29
|
throw new Error('No driver found');
|
|
70
30
|
}
|
|
71
31
|
try {
|
|
32
|
+
if (args.action === 'get') {
|
|
33
|
+
const currentOrientation = await _getOrientation(driver);
|
|
34
|
+
return {
|
|
35
|
+
content: [
|
|
36
|
+
{
|
|
37
|
+
type: 'text',
|
|
38
|
+
text: `Successfully got orientation: ${currentOrientation}`,
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
if (!args.orientation) {
|
|
44
|
+
throw new Error('orientation is required when action is set');
|
|
45
|
+
}
|
|
72
46
|
await _setOrientation(driver, args.orientation);
|
|
73
47
|
return {
|
|
74
48
|
content: [
|
|
@@ -84,7 +58,7 @@ export function setOrientation(server) {
|
|
|
84
58
|
content: [
|
|
85
59
|
{
|
|
86
60
|
type: 'text',
|
|
87
|
-
text: `Failed to
|
|
61
|
+
text: `Failed to ${args.action} orientation. err: ${err.toString()}`,
|
|
88
62
|
},
|
|
89
63
|
],
|
|
90
64
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orientation.js","sourceRoot":"","sources":["../../../src/tools/interactions/orientation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACL,cAAc,IAAI,eAAe,EACjC,cAAc,IAAI,eAAe,GAClC,MAAM,kBAAkB,CAAC;AAE1B,MAAM,
|
|
1
|
+
{"version":3,"file":"orientation.js","sourceRoot":"","sources":["../../../src/tools/interactions/orientation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACL,cAAc,IAAI,eAAe,EACjC,cAAc,IAAI,eAAe,GAClC,MAAM,kBAAkB,CAAC;AAE1B,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACpB,QAAQ,CACP,iEAAiE,CAClE;IACH,WAAW,EAAE,CAAC;SACX,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;SAC/B,QAAQ,EAAE;SACV,QAAQ,CAAC,8BAA8B,CAAC;IAC3C,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4DAA4D,CAAC;CAC1E,CAAC,CAAC;AAEH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,MAAe;IACjD,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,uGAAuG;QACzG,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAK;SACrB;QACD,OAAO,EAAE,KAAK,EACZ,IAAuC,EACvC,QAA6C,EACrB,EAAE;YAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,CAAC;YAED,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;oBAC1B,MAAM,kBAAkB,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;oBACzD,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,iCAAiC,kBAAkB,EAAE;6BAC5D;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACtB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBAChE,CAAC;gBAED,MAAM,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAChD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,mCAAmC,IAAI,CAAC,WAAW,EAAE;yBAC5D;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,aAAa,IAAI,CAAC,MAAM,sBAAsB,GAAG,CAAC,QAAQ,EAAE,EAAE;yBACrE;qBACF;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -39,6 +39,5 @@ export interface AndroidRecordingOptions {
|
|
|
39
39
|
/** If true, discard any active recording and start fresh. Default: false. */
|
|
40
40
|
forceRestart?: boolean;
|
|
41
41
|
}
|
|
42
|
-
export
|
|
43
|
-
export declare function stopRecordingScreen(server: FastMCP): void;
|
|
42
|
+
export default function screenRecording(server: FastMCP): void;
|
|
44
43
|
//# sourceMappingURL=screen-recording.d.ts.map
|