appium-mcp 1.67.1 → 1.69.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 +16 -0
- package/README.md +3 -3
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/tests/__mocks__/@appium/support.d.ts +22 -0
- package/dist/tests/__mocks__/@appium/support.d.ts.map +1 -1
- package/dist/tests/__mocks__/@appium/support.js +22 -0
- package/dist/tests/__mocks__/@appium/support.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/interactions/clipboard.d.ts +0 -10
- package/dist/tools/interactions/clipboard.d.ts.map +1 -1
- package/dist/tools/interactions/clipboard.js +49 -68
- package/dist/tools/interactions/clipboard.js.map +1 -1
- package/dist/tools/ios/prepare-ios-real-device.d.ts +18 -0
- package/dist/tools/ios/prepare-ios-real-device.d.ts.map +1 -0
- package/dist/tools/ios/prepare-ios-real-device.js +377 -0
- package/dist/tools/ios/prepare-ios-real-device.js.map +1 -0
- package/dist/tools/ios/prepare-ios-simulator.d.ts.map +1 -1
- package/dist/tools/ios/prepare-ios-simulator.js +14 -38
- package/dist/tools/ios/prepare-ios-simulator.js.map +1 -1
- package/dist/tools/session/session.d.ts.map +1 -1
- package/dist/tools/session/session.js +5 -3
- package/dist/tools/session/session.js.map +1 -1
- package/dist/utils/paths.d.ts +1 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +3 -0
- package/dist/utils/paths.js.map +1 -1
- package/package.json +4 -1
- package/server.json +2 -2
- package/src/index.ts +2 -2
- package/src/resources/submodules.zip +0 -0
- package/src/tools/README.md +1 -0
- package/src/tools/index.ts +2 -0
- package/src/tools/interactions/clipboard.ts +60 -78
- package/src/tools/ios/prepare-ios-real-device.ts +538 -0
- package/src/tools/ios/prepare-ios-simulator.ts +20 -48
- package/src/tools/session/session.ts +5 -3
- package/src/utils/paths.ts +4 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
## [1.69.0](https://github.com/appium/appium-mcp/compare/v1.68.0...v1.69.0) (2026-04-29)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* **ios:** add `appium_prepare_ios_real_device` tool ([#297](https://github.com/appium/appium-mcp/issues/297)) ([998c6a1](https://github.com/appium/appium-mcp/commit/998c6a16c988779f2b76ea92433ef59469ac9051))
|
|
6
|
+
|
|
7
|
+
## [1.68.0](https://github.com/appium/appium-mcp/compare/v1.67.1...v1.68.0) (2026-04-29)
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **tools:** single appium_mobile_clipboard tool ([#292](https://github.com/appium/appium-mcp/issues/292)) ([ce7c7dc](https://github.com/appium/appium-mcp/commit/ce7c7dc6e20f0dd43b0ebf3f56651065af55fa8c))
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* loading mcp server to start ([#298](https://github.com/appium/appium-mcp/issues/298)) ([82414d6](https://github.com/appium/appium-mcp/commit/82414d6dbec351887758aae9414ac9adfc4de22d))
|
|
16
|
+
|
|
1
17
|
## [1.67.1](https://github.com/appium/appium-mcp/compare/v1.67.0...v1.67.1) (2026-04-27)
|
|
2
18
|
|
|
3
19
|
### Bug Fixes
|
package/README.md
CHANGED
|
@@ -55,7 +55,7 @@ Before you begin, ensure you have the following installed:
|
|
|
55
55
|
1. Install Xcode from the App Store.
|
|
56
56
|
2. Install the Xcode Command Line Tools: `xcode-select --install`.
|
|
57
57
|
3. Install iOS simulators through Xcode.
|
|
58
|
-
4. For real device testing,
|
|
58
|
+
4. For real device testing, enable Developer Mode on the device and sign in to your Apple ID in Xcode (Settings → Accounts). Use `appium_prepare_ios_real_device` to download and sign WebDriverAgent in a single call - it will guide you through provisioning profile selection and return capabilities for session startup.
|
|
59
59
|
|
|
60
60
|
## 🛠️ Installation
|
|
61
61
|
|
|
@@ -311,6 +311,7 @@ MCP Appium provides a comprehensive set of tools organized into the following ca
|
|
|
311
311
|
| ----------------- | ------------------------------------------------------------------------ |
|
|
312
312
|
| `select_device` | **REQUIRED FIRST**: Discover available devices and select one. Auto-selects if only one device found |
|
|
313
313
|
| `prepare_ios_simulator` | Boot an iOS/tvOS simulator, download WDA (if not cached), and install/launch WDA in a single call. Each step is skipped if already satisfied (iOS/tvOS only). Set `APPIUM_MCP_WDA_APP_PATH` to skip all downloads and use a local `.app` bundle instead. |
|
|
314
|
+
| `appium_prepare_ios_real_device` | Prepare a real iOS device for Appium testing. **Two-step flow**: (1) call without `provisioningProfileUuid` to list available `.mobileprovision` profiles; (2) call again with the chosen UUID and `isFreeAccount` to download the matching WDA release, package it as an IPA, and resign with the profile. Results are cached per WDA version and profile, so repeat runs are fast. Pass the returned `capabilitiesHint` to `create_session` so Appium installs and launches WDA. macOS + Xcode 16+ required. |
|
|
314
315
|
|
|
315
316
|
### Session Management
|
|
316
317
|
|
|
@@ -343,8 +344,7 @@ The default regex pattern allows any URL that starts with `http://` or `https://
|
|
|
343
344
|
| `appium_mobile_hide_keyboard` | Dismiss the on-screen keyboard (`mobile: hideKeyboard`) |
|
|
344
345
|
| `appium_mobile_is_keyboard_shown` | Whether the on-screen keyboard is visible (`mobile: isKeyboardShown`) |
|
|
345
346
|
| `appium_get_text` | Get text content from an element |
|
|
346
|
-
| `
|
|
347
|
-
| `appium_set_clipboard` | Set the device clipboard to the provided plain text |
|
|
347
|
+
| `appium_mobile_clipboard` | Read or set device clipboard plain text. `action=get` \| `set` (`content` required for set). |
|
|
348
348
|
| `appium_alert` | Handle alerts with `action` = `accept`, `dismiss`, or `get_text` (optional `buttonLabel`) |
|
|
349
349
|
|
|
350
350
|
### Screen & Navigation
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,7 @@ async function startServer() {
|
|
|
9
9
|
log.info('Starting MCP Appium MCP Server...');
|
|
10
10
|
try {
|
|
11
11
|
if (useHttpStream) {
|
|
12
|
-
server.start({
|
|
12
|
+
await server.start({
|
|
13
13
|
transportType: 'httpStream',
|
|
14
14
|
httpStream: {
|
|
15
15
|
endpoint: '/sse',
|
|
@@ -21,7 +21,7 @@ async function startServer() {
|
|
|
21
21
|
}
|
|
22
22
|
else {
|
|
23
23
|
// Start with stdio transport
|
|
24
|
-
server.start({
|
|
24
|
+
await server.start({
|
|
25
25
|
transportType: 'stdio',
|
|
26
26
|
});
|
|
27
27
|
log.info('Server started with stdio transport');
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,GAAG,MAAM,aAAa,CAAC;AAE9B,+BAA+B;AAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AACpD,MAAM,IAAI,GACR,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;AAEzE,KAAK,UAAU,WAAW;IACxB,GAAG,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,GAAG,MAAM,aAAa,CAAC;AAE9B,+BAA+B;AAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AACpD,MAAM,IAAI,GACR,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;AAEzE,KAAK,UAAU,WAAW;IACxB,GAAG,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,MAAM,CAAC,KAAK,CAAC;gBACjB,aAAa,EAAE,YAAY;gBAC3B,UAAU,EAAE;oBACV,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;iBACzB;aACF,CAAC,CAAC;YAEH,GAAG,CAAC,IAAI,CACN,gEAAgE,IAAI,MAAM,CAC3E,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,MAAM,MAAM,CAAC,KAAK,CAAC;gBACjB,aAAa,EAAE,OAAO;aACvB,CAAC,CAAC;YAEH,GAAG,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YAChD,GAAG,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,mBAAmB;AACnB,WAAW,EAAE,CAAC"}
|
|
@@ -27,6 +27,17 @@ export declare const mockSharpInstance: MockSharpInstance;
|
|
|
27
27
|
export declare const imageUtil: {
|
|
28
28
|
requireSharp: () => (_input: Buffer) => MockSharpInstance;
|
|
29
29
|
};
|
|
30
|
+
export declare const net: {
|
|
31
|
+
downloadFile: (_remoteUrl: string, _dstPath: string, _opts?: unknown) => Promise<void>;
|
|
32
|
+
};
|
|
33
|
+
export declare const plist: {
|
|
34
|
+
parsePlistFile: (_plistPath: string) => Promise<{}>;
|
|
35
|
+
};
|
|
36
|
+
export declare const zip: {
|
|
37
|
+
extractAllTo: (_zipPath: string, _destDir: string, _opts?: unknown) => Promise<void>;
|
|
38
|
+
readEntries: (_zipPath: string, _handler: unknown) => Promise<void>;
|
|
39
|
+
toArchive: (_dstPath: string, _src?: unknown, _opts?: unknown) => Promise<void>;
|
|
40
|
+
};
|
|
30
41
|
declare const _default: {
|
|
31
42
|
logger: {
|
|
32
43
|
getLogger: (_name: string) => {
|
|
@@ -40,6 +51,17 @@ declare const _default: {
|
|
|
40
51
|
imageUtil: {
|
|
41
52
|
requireSharp: () => (_input: Buffer) => MockSharpInstance;
|
|
42
53
|
};
|
|
54
|
+
net: {
|
|
55
|
+
downloadFile: (_remoteUrl: string, _dstPath: string, _opts?: unknown) => Promise<void>;
|
|
56
|
+
};
|
|
57
|
+
plist: {
|
|
58
|
+
parsePlistFile: (_plistPath: string) => Promise<{}>;
|
|
59
|
+
};
|
|
60
|
+
zip: {
|
|
61
|
+
extractAllTo: (_zipPath: string, _destDir: string, _opts?: unknown) => Promise<void>;
|
|
62
|
+
readEntries: (_zipPath: string, _handler: unknown) => Promise<void>;
|
|
63
|
+
toArchive: (_dstPath: string, _src?: unknown, _opts?: unknown) => Promise<void>;
|
|
64
|
+
};
|
|
43
65
|
};
|
|
44
66
|
export default _default;
|
|
45
67
|
//# sourceMappingURL=support.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../../../../src/tests/__mocks__/@appium/support.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM;uBACE,MAAM;0BAIH,MAAM,YAAY,GAAG,EAAE;yBAGxB,MAAM,YAAY,GAAG,EAAE;yBAGvB,MAAM,YAAY,GAAG,EAAE;0BAGtB,MAAM,YAAY,GAAG,EAAE;0BAGvB,MAAM,YAAY,GAAG,EAAE;;CAI9C,CAAC;AAEF;;;;;;GAMG;AAEH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrC,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,iBAAiB,CAAC;IACpD,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,iBAAiB,CAAC;IAC7C,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,iBAAiB,EAAE,iBAkB/B,CAAC;AAEF,eAAO,MAAM,SAAS;yBACC,QAAQ,MAAM;CACpC,CAAC;;;
|
|
1
|
+
{"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../../../../src/tests/__mocks__/@appium/support.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM;uBACE,MAAM;0BAIH,MAAM,YAAY,GAAG,EAAE;yBAGxB,MAAM,YAAY,GAAG,EAAE;yBAGvB,MAAM,YAAY,GAAG,EAAE;0BAGtB,MAAM,YAAY,GAAG,EAAE;0BAGvB,MAAM,YAAY,GAAG,EAAE;;CAI9C,CAAC;AAEF;;;;;;GAMG;AAEH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrC,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,iBAAiB,CAAC;IACpD,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,iBAAiB,CAAC;IAC7C,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,iBAAiB,EAAE,iBAkB/B,CAAC;AAEF,eAAO,MAAM,SAAS;yBACC,QAAQ,MAAM;CACpC,CAAC;AAEF,eAAO,MAAM,GAAG;+BAEA,MAAM,YACR,MAAM,UACR,OAAO;CAIlB,CAAC;AAEF,eAAO,MAAM,KAAK;iCACmB,MAAM;CAC1C,CAAC;AAEF,eAAO,MAAM,GAAG;6BACiB,MAAM,YAAY,MAAM,UAAU,OAAO;4BAG1C,MAAM,YAAY,OAAO;0BAG3B,MAAM,SAAS,OAAO,UAAU,OAAO;CAGpE,CAAC;;;2BAxFmB,MAAM;8BAIH,MAAM,YAAY,GAAG,EAAE;6BAGxB,MAAM,YAAY,GAAG,EAAE;6BAGvB,MAAM,YAAY,GAAG,EAAE;8BAGtB,MAAM,YAAY,GAAG,EAAE;8BAGvB,MAAM,YAAY,GAAG,EAAE;;;;6BA6CxB,QAAQ,MAAM;;;mCAKrB,MAAM,YACR,MAAM,UACR,OAAO;;;qCAOkB,MAAM;;;iCAIV,MAAM,YAAY,MAAM,UAAU,OAAO;gCAG1C,MAAM,YAAY,OAAO;8BAG3B,MAAM,SAAS,OAAO,UAAU,OAAO;;;AAMrE,wBAME"}
|
|
@@ -44,9 +44,31 @@ export const mockSharpInstance = {
|
|
|
44
44
|
export const imageUtil = {
|
|
45
45
|
requireSharp: () => (_input) => mockSharpInstance,
|
|
46
46
|
};
|
|
47
|
+
export const net = {
|
|
48
|
+
downloadFile: async (_remoteUrl, _dstPath, _opts) => {
|
|
49
|
+
// Silent in tests by default
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
export const plist = {
|
|
53
|
+
parsePlistFile: async (_plistPath) => ({}),
|
|
54
|
+
};
|
|
55
|
+
export const zip = {
|
|
56
|
+
extractAllTo: async (_zipPath, _destDir, _opts) => {
|
|
57
|
+
// Silent in tests by default
|
|
58
|
+
},
|
|
59
|
+
readEntries: async (_zipPath, _handler) => {
|
|
60
|
+
// Silent in tests by default
|
|
61
|
+
},
|
|
62
|
+
toArchive: async (_dstPath, _src, _opts) => {
|
|
63
|
+
// Silent in tests by default
|
|
64
|
+
},
|
|
65
|
+
};
|
|
47
66
|
// Export other commonly used utilities from @appium/support if needed
|
|
48
67
|
export default {
|
|
49
68
|
logger,
|
|
50
69
|
imageUtil,
|
|
70
|
+
net,
|
|
71
|
+
plist,
|
|
72
|
+
zip,
|
|
51
73
|
};
|
|
52
74
|
//# sourceMappingURL=support.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"support.js","sourceRoot":"","sources":["../../../../src/tests/__mocks__/@appium/support.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,6DAA6D;AAE7D,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE;IAC3B,yCAAyC;IACzC,kDAAkD;IAClD,CAAC;QACC,KAAK,EAAE,CAAC,QAAgB,EAAE,GAAG,KAAY,EAAE,EAAE;YAC3C,6BAA6B;QAC/B,CAAC;QACD,IAAI,EAAE,CAAC,QAAgB,EAAE,GAAG,KAAY,EAAE,EAAE;YAC1C,6BAA6B;QAC/B,CAAC;QACD,IAAI,EAAE,CAAC,QAAgB,EAAE,GAAG,KAAY,EAAE,EAAE;YAC1C,6BAA6B;QAC/B,CAAC;QACD,KAAK,EAAE,CAAC,QAAgB,EAAE,GAAG,KAAY,EAAE,EAAE;YAC3C,6BAA6B;QAC/B,CAAC;QACD,KAAK,EAAE,CAAC,QAAgB,EAAE,GAAG,KAAY,EAAE,EAAE;YAC3C,6BAA6B;QAC/B,CAAC;KACF,CAAC;CACL,CAAC;AAmBF,6EAA6E;AAC7E,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACzE,MAAM,CAAC,CAAS,EAAE,CAAS;QACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,KAAe;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,QAAQ;QACN,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;IACD,KAAK;QACH,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,GAAG,EAAE,CACvB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC1D,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,iBAAiB;CAC1D,CAAC;AAEF,sEAAsE;AACtE,eAAe;IACb,MAAM;IACN,SAAS;
|
|
1
|
+
{"version":3,"file":"support.js","sourceRoot":"","sources":["../../../../src/tests/__mocks__/@appium/support.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,6DAA6D;AAE7D,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE;IAC3B,yCAAyC;IACzC,kDAAkD;IAClD,CAAC;QACC,KAAK,EAAE,CAAC,QAAgB,EAAE,GAAG,KAAY,EAAE,EAAE;YAC3C,6BAA6B;QAC/B,CAAC;QACD,IAAI,EAAE,CAAC,QAAgB,EAAE,GAAG,KAAY,EAAE,EAAE;YAC1C,6BAA6B;QAC/B,CAAC;QACD,IAAI,EAAE,CAAC,QAAgB,EAAE,GAAG,KAAY,EAAE,EAAE;YAC1C,6BAA6B;QAC/B,CAAC;QACD,KAAK,EAAE,CAAC,QAAgB,EAAE,GAAG,KAAY,EAAE,EAAE;YAC3C,6BAA6B;QAC/B,CAAC;QACD,KAAK,EAAE,CAAC,QAAgB,EAAE,GAAG,KAAY,EAAE,EAAE;YAC3C,6BAA6B;QAC/B,CAAC;KACF,CAAC;CACL,CAAC;AAmBF,6EAA6E;AAC7E,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACzE,MAAM,CAAC,CAAS,EAAE,CAAS;QACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,KAAe;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,QAAQ;QACN,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;IACD,KAAK;QACH,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,GAAG,EAAE,CACvB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC1D,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,iBAAiB;CAC1D,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,YAAY,EAAE,KAAK,EACjB,UAAkB,EAClB,QAAgB,EAChB,KAAe,EACf,EAAE;QACF,6BAA6B;IAC/B,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,cAAc,EAAE,KAAK,EAAE,UAAkB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;CACnD,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,YAAY,EAAE,KAAK,EAAE,QAAgB,EAAE,QAAgB,EAAE,KAAe,EAAE,EAAE;QAC1E,6BAA6B;IAC/B,CAAC;IACD,WAAW,EAAE,KAAK,EAAE,QAAgB,EAAE,QAAiB,EAAE,EAAE;QACzD,6BAA6B;IAC/B,CAAC;IACD,SAAS,EAAE,KAAK,EAAE,QAAgB,EAAE,IAAc,EAAE,KAAe,EAAE,EAAE;QACrE,6BAA6B;IAC/B,CAAC;CACF,CAAC;AAEF,sEAAsE;AACtE,eAAe;IACb,MAAM;IACN,SAAS;IACT,GAAG;IACH,KAAK;IACL,GAAG;CACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,SAAS,CAAC;AA8DtD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CA2I3D"}
|
package/dist/tools/index.js
CHANGED
|
@@ -10,6 +10,7 @@ import deviceInfo from './session/device-info.js';
|
|
|
10
10
|
import fileTransfer from './session/file-transfer.js';
|
|
11
11
|
import driverSettings from './session/driver-settings.js';
|
|
12
12
|
import prepareIosSimulator from './ios/prepare-ios-simulator.js';
|
|
13
|
+
import prepareIosRealDevice from './ios/prepare-ios-real-device.js';
|
|
13
14
|
import generateTest from './test-generation/generate-tests.js';
|
|
14
15
|
import gesture from './gestures/gesture.js';
|
|
15
16
|
import performActionsTool from './gestures/perform-actions.js';
|
|
@@ -135,6 +136,7 @@ export default function registerTools(server) {
|
|
|
135
136
|
driverSettings(server);
|
|
136
137
|
// iOS Setup
|
|
137
138
|
prepareIosSimulator(server);
|
|
139
|
+
prepareIosRealDevice(server);
|
|
138
140
|
// Gestures (touch input)
|
|
139
141
|
gesture(server);
|
|
140
142
|
dragAndDrop(server);
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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
|
|
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
|
-
* Register clipboard read/write tools.
|
|
4
|
-
*
|
|
5
|
-
* - appium_get_clipboard: reads the current clipboard content as plain text
|
|
6
|
-
* - appium_set_clipboard: writes plain text to the clipboard
|
|
7
|
-
*
|
|
8
|
-
* Both tools rely on the `mobile: getClipboard` / `mobile: setClipboard`
|
|
9
|
-
* Appium execute commands and work on Android, iOS, and remote WebDriver
|
|
10
|
-
* sessions.
|
|
11
|
-
*/
|
|
12
2
|
export default function clipboard(server: FastMCP): void;
|
|
13
3
|
//# sourceMappingURL=clipboard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../../src/tools/interactions/clipboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../../src/tools/interactions/clipboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,SAAS,CAAC;AA0DtD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAiCvD"}
|
|
@@ -1,84 +1,65 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { getClipboard, setClipboard } from '../../command.js';
|
|
3
3
|
import { resolveDriver, textResult, errorResult, toolErrorMessage, } from '../tool-response.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
4
|
+
const schema = z.object({
|
|
5
|
+
action: z
|
|
6
|
+
.enum(['get', 'set'])
|
|
7
|
+
.describe('get: read device clipboard as plain text. set: write plain text to the clipboard.'),
|
|
8
|
+
content: z
|
|
9
|
+
.string()
|
|
10
|
+
.optional()
|
|
11
|
+
.describe('Required when action is set. Plain text to put on the clipboard.'),
|
|
12
|
+
sessionId: z
|
|
13
|
+
.string()
|
|
14
|
+
.optional()
|
|
15
|
+
.describe('Session ID to target. If omitted, uses the active session.'),
|
|
16
|
+
});
|
|
17
|
+
async function handleGet(sessionId) {
|
|
18
|
+
const resolved = resolveDriver(sessionId);
|
|
19
|
+
if (!resolved.ok) {
|
|
20
|
+
return resolved.result;
|
|
21
|
+
}
|
|
22
|
+
const { driver } = resolved;
|
|
23
|
+
const text = await getClipboard(driver);
|
|
24
|
+
if (!text) {
|
|
25
|
+
return textResult('Clipboard is empty.');
|
|
26
|
+
}
|
|
27
|
+
return textResult(`Clipboard content: ${text}`);
|
|
28
|
+
}
|
|
29
|
+
async function handleSet(sessionId, content) {
|
|
30
|
+
const resolved = resolveDriver(sessionId);
|
|
31
|
+
if (!resolved.ok) {
|
|
32
|
+
return resolved.result;
|
|
33
|
+
}
|
|
34
|
+
const { driver } = resolved;
|
|
35
|
+
await setClipboard(driver, content);
|
|
36
|
+
return textResult(`Successfully set clipboard content to: ${content}`);
|
|
37
|
+
}
|
|
14
38
|
export default function clipboard(server) {
|
|
15
|
-
// ─── Get Clipboard ────────────────────────────────────────────────────────
|
|
16
|
-
server.addTool({
|
|
17
|
-
name: 'appium_mobile_get_clipboard',
|
|
18
|
-
description: 'Get the current clipboard content as plain text from the device. ' +
|
|
19
|
-
'Works on Android (UiAutomator2) and iOS (XCUITest). ' +
|
|
20
|
-
'Returns an empty string if the clipboard is empty.',
|
|
21
|
-
parameters: z.object({
|
|
22
|
-
sessionId: z
|
|
23
|
-
.string()
|
|
24
|
-
.optional()
|
|
25
|
-
.describe('Session ID to target. If omitted, uses the active session.'),
|
|
26
|
-
}),
|
|
27
|
-
annotations: {
|
|
28
|
-
readOnlyHint: true,
|
|
29
|
-
openWorldHint: false,
|
|
30
|
-
},
|
|
31
|
-
execute: async (args, _context) => {
|
|
32
|
-
const resolved = resolveDriver(args.sessionId);
|
|
33
|
-
if (!resolved.ok) {
|
|
34
|
-
return resolved.result;
|
|
35
|
-
}
|
|
36
|
-
const { driver } = resolved;
|
|
37
|
-
try {
|
|
38
|
-
const content = await getClipboard(driver);
|
|
39
|
-
if (!content) {
|
|
40
|
-
return textResult('Clipboard is empty.');
|
|
41
|
-
}
|
|
42
|
-
return textResult(`Clipboard content: ${content}`);
|
|
43
|
-
}
|
|
44
|
-
catch (err) {
|
|
45
|
-
return errorResult(`Failed to get clipboard content. err: ${toolErrorMessage(err)}`);
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
});
|
|
49
|
-
// ─── Set Clipboard ────────────────────────────────────────────────────────
|
|
50
|
-
const setClipboardSchema = z.object({
|
|
51
|
-
content: z
|
|
52
|
-
.string()
|
|
53
|
-
.describe('The plain text content to write to the device clipboard'),
|
|
54
|
-
sessionId: z
|
|
55
|
-
.string()
|
|
56
|
-
.optional()
|
|
57
|
-
.describe('Session ID to target. If omitted, uses the active session.'),
|
|
58
|
-
});
|
|
59
39
|
server.addTool({
|
|
60
|
-
name: '
|
|
61
|
-
description: '
|
|
62
|
-
'
|
|
63
|
-
|
|
64
|
-
'or for injecting long strings without typing them character by character.',
|
|
65
|
-
parameters: setClipboardSchema,
|
|
40
|
+
name: 'appium_mobile_clipboard',
|
|
41
|
+
description: 'Read or set the device clipboard as plain text (Android UiAutomator2 / iOS XCUITest). ' +
|
|
42
|
+
'action=get returns current text; action=set requires content.',
|
|
43
|
+
parameters: schema,
|
|
66
44
|
annotations: {
|
|
67
45
|
readOnlyHint: false,
|
|
68
46
|
openWorldHint: false,
|
|
69
47
|
},
|
|
70
48
|
execute: async (args, _context) => {
|
|
71
|
-
const resolved = resolveDriver(args.sessionId);
|
|
72
|
-
if (!resolved.ok) {
|
|
73
|
-
return resolved.result;
|
|
74
|
-
}
|
|
75
|
-
const { driver } = resolved;
|
|
76
49
|
try {
|
|
77
|
-
|
|
78
|
-
|
|
50
|
+
switch (args.action) {
|
|
51
|
+
case 'get':
|
|
52
|
+
return await handleGet(args.sessionId);
|
|
53
|
+
case 'set': {
|
|
54
|
+
if (args.content === undefined) {
|
|
55
|
+
return errorResult('content is required for set action');
|
|
56
|
+
}
|
|
57
|
+
return await handleSet(args.sessionId, args.content);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
79
60
|
}
|
|
80
61
|
catch (err) {
|
|
81
|
-
return errorResult(`Failed to
|
|
62
|
+
return errorResult(`Failed to ${args.action} clipboard. err: ${toolErrorMessage(err)}`);
|
|
82
63
|
}
|
|
83
64
|
},
|
|
84
65
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../../src/tools/interactions/clipboard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EACL,aAAa,EACb,UAAU,EACV,WAAW,EACX,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B
|
|
1
|
+
{"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../../src/tools/interactions/clipboard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EACL,aAAa,EACb,UAAU,EACV,WAAW,EACX,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACpB,QAAQ,CACP,mFAAmF,CACpF;IACH,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,kEAAkE,CACnE;IACH,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4DAA4D,CAAC;CAC1E,CAAC,CAAC;AAIH,KAAK,UAAU,SAAS,CAAC,SAAkB;IACzC,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAE5B,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,UAAU,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,SAA6B,EAC7B,OAAe;IAEf,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAE5B,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,UAAU,CAAC,0CAA0C,OAAO,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,MAAe;IAC/C,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EACT,wFAAwF;YACxF,+DAA+D;QACjE,UAAU,EAAE,MAAM;QAClB,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAK;SACrB;QACD,OAAO,EAAE,KAAK,EACZ,IAAmB,EACnB,QAA6C,EACrB,EAAE;YAC1B,IAAI,CAAC;gBACH,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;oBACpB,KAAK,KAAK;wBACR,OAAO,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACzC,KAAK,KAAK,CAAC,CAAC,CAAC;wBACX,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;4BAC/B,OAAO,WAAW,CAAC,oCAAoC,CAAC,CAAC;wBAC3D,CAAC;wBACD,OAAO,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,OAAO,WAAW,CAChB,aAAa,IAAI,CAAC,MAAM,oBAAoB,gBAAgB,CAAC,GAAG,CAAC,EAAE,CACpE,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single-call tool to prepare an iOS real device for Appium testing.
|
|
3
|
+
*
|
|
4
|
+
* Two-mode flow:
|
|
5
|
+
* - Discovery (no provisioningProfileUuid given): returns the list of available
|
|
6
|
+
* .mobileprovision profiles so the LLM can ask the user which to use plus
|
|
7
|
+
* whether the underlying account is free or enterprise.
|
|
8
|
+
* - Build (provisioningProfileUuid + isFreeAccount given): chains
|
|
9
|
+
* download matching WDA release → package IPA → applesign. Each step is
|
|
10
|
+
* cached so re-runs are fast.
|
|
11
|
+
*
|
|
12
|
+
* After a successful run, create_session calls should pass the returned
|
|
13
|
+
* `capabilitiesHint` so Appium installs and launches the signed prebuilt WDA
|
|
14
|
+
* bundle instead of rebuilding it.
|
|
15
|
+
*/
|
|
16
|
+
import type { FastMCP } from 'fastmcp';
|
|
17
|
+
export default function prepareIosRealDevice(server: FastMCP): void;
|
|
18
|
+
//# sourceMappingURL=prepare-ios-real-device.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-ios-real-device.d.ts","sourceRoot":"","sources":["../../../src/tools/ios/prepare-ios-real-device.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,SAAS,CAAC;AAoctD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAsElE"}
|