appium-mcp 1.7.5 → 1.8.1

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.
Files changed (201) hide show
  1. package/.github/workflows/ci.yml +3 -0
  2. package/CHANGELOG.md +22 -0
  3. package/dist/devicemanager/adb-manager.d.ts +1 -0
  4. package/dist/devicemanager/adb-manager.d.ts.map +1 -0
  5. package/dist/devicemanager/adb-manager.js +5 -5
  6. package/dist/devicemanager/adb-manager.js.map +1 -1
  7. package/dist/devicemanager/ios-manager.d.ts +1 -0
  8. package/dist/devicemanager/ios-manager.d.ts.map +1 -0
  9. package/dist/devicemanager/ios-manager.js +2 -0
  10. package/dist/devicemanager/ios-manager.js.map +1 -1
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/locators/element-filter.d.ts +1 -0
  14. package/dist/locators/element-filter.d.ts.map +1 -0
  15. package/dist/locators/generate-all-locators.d.ts +1 -0
  16. package/dist/locators/generate-all-locators.d.ts.map +1 -0
  17. package/dist/locators/locator-generation.d.ts +1 -0
  18. package/dist/locators/locator-generation.d.ts.map +1 -0
  19. package/dist/locators/source-parsing.d.ts +1 -0
  20. package/dist/locators/source-parsing.d.ts.map +1 -0
  21. package/dist/logger.d.ts +2 -1
  22. package/dist/logger.d.ts.map +1 -0
  23. package/dist/resources/index.d.ts +1 -0
  24. package/dist/resources/index.d.ts.map +1 -0
  25. package/dist/resources/java/template.d.ts +1 -0
  26. package/dist/resources/java/template.d.ts.map +1 -0
  27. package/dist/schema.d.ts +1 -0
  28. package/dist/schema.d.ts.map +1 -0
  29. package/dist/scripts/simple-index-documentation.d.ts +1 -0
  30. package/dist/scripts/simple-index-documentation.d.ts.map +1 -0
  31. package/dist/scripts/simple-query-documentation.d.ts +1 -0
  32. package/dist/scripts/simple-query-documentation.d.ts.map +1 -0
  33. package/dist/server.d.ts +1 -0
  34. package/dist/server.d.ts.map +1 -0
  35. package/dist/session-store.d.ts +16 -2
  36. package/dist/session-store.d.ts.map +1 -0
  37. package/dist/session-store.js +21 -0
  38. package/dist/session-store.js.map +1 -1
  39. package/dist/tests/__mocks__/@appium/support.d.ts +1 -0
  40. package/dist/tests/__mocks__/@appium/support.d.ts.map +1 -0
  41. package/dist/tests/generate-all-locators.test.d.ts +1 -0
  42. package/dist/tests/generate-all-locators.test.d.ts.map +1 -0
  43. package/dist/tests/screenshot.test.d.ts +1 -0
  44. package/dist/tests/screenshot.test.d.ts.map +1 -0
  45. package/dist/tests/screenshot.test.js +6 -5
  46. package/dist/tests/screenshot.test.js.map +1 -1
  47. package/dist/tests/test-setup-wda.d.ts +1 -0
  48. package/dist/tests/test-setup-wda.d.ts.map +1 -0
  49. package/dist/tests/test-setup-wda.js +1 -3
  50. package/dist/tests/test-setup-wda.js.map +1 -1
  51. package/dist/tools/app-management/activate-app.d.ts +2 -1
  52. package/dist/tools/app-management/activate-app.d.ts.map +1 -0
  53. package/dist/tools/app-management/activate-app.js.map +1 -1
  54. package/dist/tools/app-management/install-app.d.ts +2 -1
  55. package/dist/tools/app-management/install-app.d.ts.map +1 -0
  56. package/dist/tools/app-management/install-app.js +6 -2
  57. package/dist/tools/app-management/install-app.js.map +1 -1
  58. package/dist/tools/app-management/list-apps.d.ts +2 -1
  59. package/dist/tools/app-management/list-apps.d.ts.map +1 -0
  60. package/dist/tools/app-management/list-apps.js +4 -1
  61. package/dist/tools/app-management/list-apps.js.map +1 -1
  62. package/dist/tools/app-management/terminate-app.d.ts +2 -1
  63. package/dist/tools/app-management/terminate-app.d.ts.map +1 -0
  64. package/dist/tools/app-management/terminate-app.js +6 -2
  65. package/dist/tools/app-management/terminate-app.js.map +1 -1
  66. package/dist/tools/app-management/uninstall-app.d.ts +2 -1
  67. package/dist/tools/app-management/uninstall-app.d.ts.map +1 -0
  68. package/dist/tools/app-management/uninstall-app.js +6 -2
  69. package/dist/tools/app-management/uninstall-app.js.map +1 -1
  70. package/dist/tools/context/get-contexts.d.ts +2 -1
  71. package/dist/tools/context/get-contexts.d.ts.map +1 -0
  72. package/dist/tools/context/get-contexts.js +4 -1
  73. package/dist/tools/context/get-contexts.js.map +1 -1
  74. package/dist/tools/context/switch-context.d.ts +2 -1
  75. package/dist/tools/context/switch-context.d.ts.map +1 -0
  76. package/dist/tools/context/switch-context.js +4 -1
  77. package/dist/tools/context/switch-context.js.map +1 -1
  78. package/dist/tools/documentation/answer-appium.d.ts +1 -0
  79. package/dist/tools/documentation/answer-appium.d.ts.map +1 -0
  80. package/dist/tools/documentation/index.d.ts +1 -0
  81. package/dist/tools/documentation/index.d.ts.map +1 -0
  82. package/dist/tools/documentation/reasoning-rag.d.ts +1 -0
  83. package/dist/tools/documentation/reasoning-rag.d.ts.map +1 -0
  84. package/dist/tools/documentation/reasoning-rag.js +3 -3
  85. package/dist/tools/documentation/reasoning-rag.js.map +1 -1
  86. package/dist/tools/documentation/sentence-transformers-embeddings.d.ts +1 -0
  87. package/dist/tools/documentation/sentence-transformers-embeddings.d.ts.map +1 -0
  88. package/dist/tools/documentation/sentence-transformers-embeddings.js +4 -3
  89. package/dist/tools/documentation/sentence-transformers-embeddings.js.map +1 -1
  90. package/dist/tools/documentation/simple-pdf-indexer.d.ts +1 -0
  91. package/dist/tools/documentation/simple-pdf-indexer.d.ts.map +1 -0
  92. package/dist/tools/index.d.ts +2 -1
  93. package/dist/tools/index.d.ts.map +1 -0
  94. package/dist/tools/interactions/click.d.ts +2 -1
  95. package/dist/tools/interactions/click.d.ts.map +1 -0
  96. package/dist/tools/interactions/click.js +4 -2
  97. package/dist/tools/interactions/click.js.map +1 -1
  98. package/dist/tools/interactions/double-tap.d.ts +2 -1
  99. package/dist/tools/interactions/double-tap.d.ts.map +1 -0
  100. package/dist/tools/interactions/double-tap.js +8 -4
  101. package/dist/tools/interactions/double-tap.js.map +1 -1
  102. package/dist/tools/interactions/drag-and-drop.d.ts +2 -1
  103. package/dist/tools/interactions/drag-and-drop.d.ts.map +1 -0
  104. package/dist/tools/interactions/drag-and-drop.js +4 -4
  105. package/dist/tools/interactions/drag-and-drop.js.map +1 -1
  106. package/dist/tools/interactions/find.d.ts +2 -1
  107. package/dist/tools/interactions/find.d.ts.map +1 -0
  108. package/dist/tools/interactions/find.js.map +1 -1
  109. package/dist/tools/interactions/get-page-source.d.ts +2 -1
  110. package/dist/tools/interactions/get-page-source.d.ts.map +1 -0
  111. package/dist/tools/interactions/get-page-source.js.map +1 -1
  112. package/dist/tools/interactions/get-text.d.ts +2 -1
  113. package/dist/tools/interactions/get-text.d.ts.map +1 -0
  114. package/dist/tools/interactions/get-text.js +4 -2
  115. package/dist/tools/interactions/get-text.js.map +1 -1
  116. package/dist/tools/interactions/long-press.d.ts +2 -1
  117. package/dist/tools/interactions/long-press.d.ts.map +1 -0
  118. package/dist/tools/interactions/long-press.js +12 -5
  119. package/dist/tools/interactions/long-press.js.map +1 -1
  120. package/dist/tools/interactions/screenshot.d.ts +6 -4
  121. package/dist/tools/interactions/screenshot.d.ts.map +1 -0
  122. package/dist/tools/interactions/screenshot.js +6 -3
  123. package/dist/tools/interactions/screenshot.js.map +1 -1
  124. package/dist/tools/interactions/set-value.d.ts +2 -1
  125. package/dist/tools/interactions/set-value.d.ts.map +1 -0
  126. package/dist/tools/interactions/set-value.js +4 -2
  127. package/dist/tools/interactions/set-value.js.map +1 -1
  128. package/dist/tools/ios/boot-simulator.d.ts +1 -0
  129. package/dist/tools/ios/boot-simulator.d.ts.map +1 -0
  130. package/dist/tools/ios/install-wda.d.ts +1 -0
  131. package/dist/tools/ios/install-wda.d.ts.map +1 -0
  132. package/dist/tools/ios/setup-wda.d.ts +1 -0
  133. package/dist/tools/ios/setup-wda.d.ts.map +1 -0
  134. package/dist/tools/navigations/scroll-to-element.d.ts +1 -0
  135. package/dist/tools/navigations/scroll-to-element.d.ts.map +1 -0
  136. package/dist/tools/navigations/scroll-to-element.js +2 -2
  137. package/dist/tools/navigations/scroll-to-element.js.map +1 -1
  138. package/dist/tools/navigations/scroll.d.ts +1 -0
  139. package/dist/tools/navigations/scroll.d.ts.map +1 -0
  140. package/dist/tools/navigations/scroll.js +19 -9
  141. package/dist/tools/navigations/scroll.js.map +1 -1
  142. package/dist/tools/navigations/swipe.d.ts +1 -0
  143. package/dist/tools/navigations/swipe.d.ts.map +1 -0
  144. package/dist/tools/navigations/swipe.js +11 -5
  145. package/dist/tools/navigations/swipe.js.map +1 -1
  146. package/dist/tools/session/create-session.d.ts +31 -0
  147. package/dist/tools/session/create-session.d.ts.map +1 -0
  148. package/dist/tools/session/create-session.js +88 -21
  149. package/dist/tools/session/create-session.js.map +1 -1
  150. package/dist/tools/session/delete-session.d.ts +1 -0
  151. package/dist/tools/session/delete-session.d.ts.map +1 -0
  152. package/dist/tools/session/delete-session.js +10 -1
  153. package/dist/tools/session/delete-session.js.map +1 -1
  154. package/dist/tools/session/select-device.d.ts +1 -0
  155. package/dist/tools/session/select-device.d.ts.map +1 -0
  156. package/dist/tools/session/select-device.js +11 -4
  157. package/dist/tools/session/select-device.js.map +1 -1
  158. package/dist/tools/session/select-platform.d.ts +1 -0
  159. package/dist/tools/session/select-platform.d.ts.map +1 -0
  160. package/dist/tools/session/select-platform.js +12 -5
  161. package/dist/tools/session/select-platform.js.map +1 -1
  162. package/dist/tools/test-generation/generate-tests.d.ts +2 -1
  163. package/dist/tools/test-generation/generate-tests.d.ts.map +1 -0
  164. package/dist/tools/test-generation/locators.d.ts +1 -0
  165. package/dist/tools/test-generation/locators.d.ts.map +1 -0
  166. package/dist/tools/test-generation/locators.js +4 -2
  167. package/dist/tools/test-generation/locators.js.map +1 -1
  168. package/dist/ui/mcp-ui-utils.d.ts +1 -0
  169. package/dist/ui/mcp-ui-utils.d.ts.map +1 -0
  170. package/package.json +6 -6
  171. package/server.json +2 -2
  172. package/src/session-store.ts +34 -2
  173. package/src/tests/screenshot.test.ts +6 -5
  174. package/src/tools/app-management/activate-app.ts +2 -2
  175. package/src/tools/app-management/install-app.ts +12 -3
  176. package/src/tools/app-management/list-apps.ts +12 -3
  177. package/src/tools/app-management/terminate-app.ts +12 -3
  178. package/src/tools/app-management/uninstall-app.ts +12 -3
  179. package/src/tools/context/get-contexts.ts +10 -4
  180. package/src/tools/context/switch-context.ts +17 -6
  181. package/src/tools/index.ts +1 -1
  182. package/src/tools/interactions/click.ts +6 -3
  183. package/src/tools/interactions/double-tap.ts +19 -7
  184. package/src/tools/interactions/drag-and-drop.ts +16 -7
  185. package/src/tools/interactions/find.ts +5 -2
  186. package/src/tools/interactions/get-page-source.ts +2 -2
  187. package/src/tools/interactions/get-text.ts +6 -3
  188. package/src/tools/interactions/long-press.ts +22 -10
  189. package/src/tools/interactions/screenshot.ts +11 -5
  190. package/src/tools/interactions/set-value.ts +9 -3
  191. package/src/tools/navigations/scroll-to-element.ts +4 -4
  192. package/src/tools/navigations/scroll.ts +25 -10
  193. package/src/tools/navigations/swipe.ts +17 -6
  194. package/src/tools/session/create-session.ts +108 -27
  195. package/src/tools/session/delete-session.ts +10 -1
  196. package/src/tools/session/select-device.ts +11 -4
  197. package/src/tools/session/select-platform.ts +12 -5
  198. package/src/tools/test-generation/generate-tests.ts +1 -1
  199. package/src/tools/test-generation/locators.ts +8 -3
  200. package/tsconfig.json +7 -15
  201. package/tsconfig.tsbuildinfo +1 -0
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { getDriver, getPlatformName } from '../../session-store.js';
2
+ import { getDriver, getPlatformName, isRemoteDriverSession, } from '../../session-store.js';
3
3
  import { elementUUIDScheme } from '../../schema.js';
4
4
  export default function longPress(server) {
5
5
  const longPressSchema = z.object({
@@ -49,10 +49,17 @@ export default function longPress(server) {
49
49
  }
50
50
  else if (platform === 'iOS') {
51
51
  try {
52
- await driver.execute('mobile: touchAndHold', {
53
- elementId: args.elementUUID,
54
- duration: duration / 1000,
55
- });
52
+ const _ok = isRemoteDriverSession(driver)
53
+ ? await driver.executeScript('mobile: touchAndHold', [
54
+ {
55
+ elementId: args.elementUUID,
56
+ duration: duration / 1000,
57
+ },
58
+ ])
59
+ : await driver.execute('mobile: touchAndHold', {
60
+ elementId: args.elementUUID,
61
+ duration: duration / 1000,
62
+ });
56
63
  }
57
64
  catch (touchAndHoldError) {
58
65
  const rect = await driver.getElementRect(args.elementUUID);
@@ -1 +1 @@
1
- {"version":3,"file":"long-press.js","sourceRoot":"","sources":["../../../src/tools/interactions/long-press.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"long-press.js","sourceRoot":"","sources":["../../../src/tools/interactions/long-press.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
- import { FastMCP } from 'fastmcp/dist/FastMCP.js';
1
+ import { FastMCP } from 'fastmcp';
2
2
  import { writeFile, mkdir } from 'fs/promises';
3
+ import type { Client } from 'webdriver';
4
+ import type { XCUITestDriver } from 'appium-xcuitest-driver';
5
+ import type { AndroidUiautomator2Driver } from 'appium-uiautomator2-driver';
3
6
  /**
4
7
  * Resolves the screenshot directory path.
5
8
  * - If SCREENSHOTS_DIR is not set, returns process.cwd()
@@ -8,9 +11,7 @@ import { writeFile, mkdir } from 'fs/promises';
8
11
  */
9
12
  export declare function resolveScreenshotDir(): string;
10
13
  export interface ScreenshotDeps {
11
- getDriver: () => {
12
- getScreenshot: () => Promise<string>;
13
- } | null;
14
+ getDriver: () => Client | AndroidUiautomator2Driver | XCUITestDriver | null;
14
15
  writeFile: typeof writeFile;
15
16
  mkdir: typeof mkdir;
16
17
  resolveScreenshotDir: typeof resolveScreenshotDir;
@@ -18,3 +19,4 @@ export interface ScreenshotDeps {
18
19
  }
19
20
  export declare function executeScreenshot(deps?: ScreenshotDeps): Promise<any>;
20
21
  export default function screenshot(server: FastMCP): void;
22
+ //# sourceMappingURL=screenshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../../src/tools/interactions/screenshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAQ/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAE5E;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAY7C;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,MAAM,GAAG,yBAAyB,GAAG,cAAc,GAAG,IAAI,CAAC;IAC5E,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;IAClD,OAAO,EAAE,MAAM,MAAM,CAAC;CACvB;AAUD,wBAAsB,iBAAiB,CACrC,IAAI,GAAE,cAA4B,GACjC,OAAO,CAAC,GAAG,CAAC,CAqDd;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAWxD"}
@@ -1,6 +1,7 @@
1
- import { getDriver } from '../../session-store.js';
1
+ import { getDriver, isRemoteDriverSession } from '../../session-store.js';
2
2
  import { writeFile, mkdir } from 'fs/promises';
3
3
  import { join, isAbsolute } from 'path';
4
+ import * as os from 'node:os';
4
5
  import { createUIResource, createScreenshotViewerUI, addUIResourceToResponse, } from '../../ui/mcp-ui-utils.js';
5
6
  /**
6
7
  * Resolves the screenshot directory path.
@@ -11,7 +12,7 @@ import { createUIResource, createScreenshotViewerUI, addUIResourceToResponse, }
11
12
  export function resolveScreenshotDir() {
12
13
  const screenshotDir = process.env.SCREENSHOTS_DIR;
13
14
  if (!screenshotDir) {
14
- return process.cwd();
15
+ return os.tmpdir();
15
16
  }
16
17
  if (isAbsolute(screenshotDir)) {
17
18
  return screenshotDir;
@@ -31,7 +32,9 @@ export async function executeScreenshot(deps = defaultDeps) {
31
32
  throw new Error('No driver found');
32
33
  }
33
34
  try {
34
- const screenshotBase64 = await driver.getScreenshot();
35
+ const screenshotBase64 = isRemoteDriverSession(driver)
36
+ ? await driver.takeScreenshot()
37
+ : await driver.getScreenshot();
35
38
  // Convert base64 to buffer
36
39
  const screenshotBuffer = Buffer.from(screenshotBase64, 'base64');
37
40
  // Generate filename with timestamp
@@ -1 +1 @@
1
- {"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../../src/tools/interactions/screenshot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAElC;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAElD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;AAC5C,CAAC;AAUD,MAAM,WAAW,GAAmB;IAClC,SAAS;IACT,SAAS;IACT,KAAK;IACL,oBAAoB;IACpB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;CAC1B,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAuB,WAAW;IAElC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;QAEtD,2BAA2B;QAC3B,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAEjE,mCAAmC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,cAAc,SAAS,MAAM,CAAC;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAElD,yCAAyC;QACzC,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAErD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAE/C,0BAA0B;QAC1B,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAEjD,MAAM,YAAY,GAAG;YACnB,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,qCAAqC,QAAQ,EAAE;iBACtD;aACF;SACF,CAAC;QAEF,uCAAuC;QACvC,MAAM,UAAU,GAAG,gBAAgB,CACjC,qCAAqC,IAAI,CAAC,GAAG,EAAE,EAAE,EACjD,wBAAwB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CACrD,CAAC;QAEF,OAAO,uBAAuB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,mCAAmC,GAAG,CAAC,QAAQ,EAAE,EAAE;iBAC1D;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAe;IAChD,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,iEAAiE;QACnE,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAK;SACrB;QACD,OAAO,EAAE,KAAK,IAAkB,EAAE,CAAC,iBAAiB,EAAE;KACvD,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../../src/tools/interactions/screenshot.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- import { FastMCP } from 'fastmcp/dist/FastMCP.js';
1
+ import { FastMCP } from 'fastmcp';
2
2
  export default function setValue(server: FastMCP): void;
3
+ //# sourceMappingURL=set-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-value.d.ts","sourceRoot":"","sources":["../../../src/tools/interactions/set-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAMlC,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CA+CtD"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { getDriver } from '../../session-store.js';
2
+ import { getDriver, isRemoteDriverSession } from '../../session-store.js';
3
3
  import { elementUUIDScheme } from '../../schema.js';
4
4
  export default function setValue(server) {
5
5
  const setValueSchema = z.object({
@@ -20,7 +20,9 @@ export default function setValue(server) {
20
20
  throw new Error('No driver found');
21
21
  }
22
22
  try {
23
- await driver.setValue(args.text, args.elementUUID);
23
+ const _ok = isRemoteDriverSession(driver)
24
+ ? await driver.elementSendKeys(args.elementUUID, args.text)
25
+ : await driver.setValue(args.text, args.elementUUID);
24
26
  return {
25
27
  content: [
26
28
  {
@@ -1 +1 @@
1
- {"version":3,"file":"set-value.js","sourceRoot":"","sources":["../../../src/tools/interactions/set-value.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,MAAe;IAC9C,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;QAC9B,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;KAC/C,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,4BAA4B;QACzC,UAAU,EAAE,cAAc;QAC1B,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAK;SACrB;QACD,OAAO,EAAE,KAAK,EAAE,IAAS,EAAE,OAAY,EAAgB,EAAE;YACvD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACnD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,0BAA0B,IAAI,CAAC,IAAI,iBAAiB,IAAI,CAAC,WAAW,EAAE;yBAC7E;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,uBAAuB,IAAI,CAAC,IAAI,iBAAiB,IAAI,CAAC,WAAW,UAAU,GAAG,CAAC,QAAQ,EAAE,EAAE;yBAClG;qBACF;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"set-value.js","sourceRoot":"","sources":["../../../src/tools/interactions/set-value.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,MAAe;IAC9C,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;QAC9B,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;KAC/C,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,4BAA4B;QACzC,UAAU,EAAE,cAAc;QAC1B,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAK;SACrB;QACD,OAAO,EAAE,KAAK,EAAE,IAAS,EAAE,OAAY,EAAgB,EAAE;YACvD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC;oBACvC,CAAC,CAAC,MAAO,MAAiB,CAAC,eAAe,CACtC,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,IAAI,CACV;oBACH,CAAC,CAAC,MAAO,MAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAChE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,0BAA0B,IAAI,CAAC,IAAI,iBAAiB,IAAI,CAAC,WAAW,EAAE;yBAC7E;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,uBAAuB,IAAI,CAAC,IAAI,iBAAiB,IAAI,CAAC,WAAW,UAAU,GAAG,CAAC,QAAQ,EAAE,EAAE;yBAClG;qBACF;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1,2 @@
1
1
  export default function bootSimulator(server: any): void;
2
+ //# sourceMappingURL=boot-simulator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boot-simulator.d.ts","sourceRoot":"","sources":["../../../src/tools/ios/boot-simulator.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CA+EvD"}
@@ -1 +1,2 @@
1
1
  export default function installWDA(server: any): void;
2
+ //# sourceMappingURL=install-wda.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-wda.d.ts","sourceRoot":"","sources":["../../../src/tools/ios/install-wda.ts"],"names":[],"mappings":"AA6JA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAuHpD"}
@@ -1 +1,2 @@
1
1
  export default function setupWDA(server: any): void;
2
+ //# sourceMappingURL=setup-wda.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-wda.d.ts","sourceRoot":"","sources":["../../../src/tools/ios/setup-wda.ts"],"names":[],"mappings":"AA6FA,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CA4HlD"}
@@ -1 +1,2 @@
1
1
  export default function scrollToElement(server: any): void;
2
+ //# sourceMappingURL=scroll-to-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-to-element.d.ts","sourceRoot":"","sources":["../../../src/tools/navigations/scroll-to-element.ts"],"names":[],"mappings":"AAiHA,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CA0EzD"}
@@ -65,7 +65,7 @@ async function performAndroidScroll(driver, args, direction) {
65
65
  }
66
66
  catch (error) {
67
67
  // If UiScrollable fails, try touch actions
68
- const { width, height } = await driver.getWindowSize();
68
+ const { width, height } = await driver.getWindowRect();
69
69
  const startX = width / 2;
70
70
  const startY = direction === 'up' ? height * 0.3 : height * 0.7;
71
71
  const endY = direction === 'up' ? height * 0.7 : height * 0.3;
@@ -79,7 +79,7 @@ async function performAndroidScroll(driver, args, direction) {
79
79
  }
80
80
  async function performiOSScroll(driver, direction) {
81
81
  // Use iOS mobile commands for scrolling
82
- const { width, height } = await driver.getWindowSize();
82
+ const { width, height } = await driver.getWindowRect();
83
83
  await driver.execute('mobile: scroll', {
84
84
  direction: direction,
85
85
  startX: width / 2,
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-to-element.js","sourceRoot":"","sources":["../../../src/tools/navigations/scroll-to-element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scroll-to-element.js","sourceRoot":"","sources":["../../../src/tools/navigations/scroll-to-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC;QACf,OAAO;QACP,IAAI;QACJ,MAAM;QACN,YAAY;QACZ,kBAAkB;QAClB,cAAc;QACd,sBAAsB;QACtB,uBAAuB;QACvB,kBAAkB;KACnB,CAAC;IACF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACjE,SAAS,EAAE,CAAC;SACT,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SACpB,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,oDAAoD,CAAC;CAClE,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAU,EAAE;IAC7D,+CAA+C;IAC/C,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;IAC1D,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,KAAa,EAC2B,EAAE;IAC1C,iDAAiD;IACjD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;IAEnE,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAClC,OAAO;YACL,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;SAC5C,CAAC;IAEJ,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACnC,OAAO;YACL,QAAQ,EAAE,cAAc;YACxB,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;SAC7C,CAAC;IAEJ,IAAI,KAAK,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC3C,OAAO;YACL,QAAQ,EAAE,qBAAqB;YAC/B,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;SACrD,CAAC;IAEJ,MAAM,IAAI,KAAK,CACb,iCAAiC,KAAK,uGAAuG,CAC9I,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,QAAgB,EAChB,QAAgB,EACwB,EAAE;IAC1C,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;IACnE,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1D,IAAI,QAAQ,KAAK,YAAY;QAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;IAE1E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,KAAK,UAAU,oBAAoB,CACjC,MAAW,EACX,IAAS,EACT,SAAiB;IAEjB,8CAA8C;IAC9C,MAAM,eAAe,GACnB,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC;IAC1D,MAAM,aAAa,GAAG,uDAAuD,eAAe,IAAI,CAAC;IAEjG,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,WAAW,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC;IAClE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2CAA2C;QAC3C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;QAChE,MAAM,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;QAE9D,MAAM,MAAM,CAAC,WAAW,CAAC;YACvB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE;YACzC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE;YAC3B,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE;YACxC,EAAE,MAAM,EAAE,SAAS,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,MAAW,EAAE,SAAiB;IAC5D,wCAAwC;IACxC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;IAEvD,MAAM,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE;QACrC,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,KAAK,GAAG,CAAC;QACjB,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG;QACxD,IAAI,EAAE,KAAK,GAAG,CAAC;QACf,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG;KACvD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,MAAW;IACjD,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,8DAA8D;QAC3E,UAAU,EAAE,qBAAqB;QACjC,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAK;SACrB;QACD,OAAO,EAAE,KAAK,EAAE,IAAS,EAAE,OAAY,EAAgB,EAAE;YACvD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;gBAEzC,2EAA2E;gBAC3E,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAO,MAAc,CAAC,WAAW,CAC/C,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,QAAQ,CACd,CAAC;oBACF,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,WAAW,IAAI,CAAC,QAAQ,gCAAgC;6BAC/D;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;oBAC3C,QAAQ,QAAQ,EAAE,CAAC;wBACjB,KAAK,SAAS;4BACZ,MAAM,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;4BACpD,MAAM;wBACR,KAAK,KAAK;4BACR,MAAM,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;4BAC1C,MAAM;wBACR;4BACE,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;oBACN,CAAC;oBAED,MAAM,OAAO,GAAG,MAAO,MAAc,CAAC,WAAW,CAC/C,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,QAAQ,CACd,CAAC;oBACF,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,uCAAuC,IAAI,CAAC,QAAQ,wBAAwB;6BACnF;yBACF;qBACF,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,6CAA6C,GAAG,CAAC,QAAQ,EAAE,EAAE;yBACpE;qBACF;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1,2 @@
1
1
  export default function scroll(server: any): void;
2
+ //# sourceMappingURL=scroll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../../src/tools/navigations/scroll.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAuGhD"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { getDriver, getPlatformName } from '../../session-store.js';
2
+ import { getDriver, getPlatformName, isRemoteDriverSession, } from '../../session-store.js';
3
3
  import log from '../../logger.js';
4
4
  export default function scroll(server) {
5
5
  server.addTool({
@@ -21,7 +21,7 @@ export default function scroll(server) {
21
21
  throw new Error('No active driver session. Please create a session first.');
22
22
  }
23
23
  try {
24
- const { width, height } = await driver.getWindowSize();
24
+ const { width, height } = await driver.getWindowRect();
25
25
  log.info('Device screen size:', { width, height });
26
26
  const startX = Math.floor(width / 2);
27
27
  // calculate start and end Y positions for scrolling depending on the direction
@@ -56,13 +56,23 @@ export default function scroll(server) {
56
56
  log.info('Scroll action completed successfully.');
57
57
  }
58
58
  else if (getPlatformName(driver) === 'iOS') {
59
- await driver.execute('mobile: scroll', {
60
- direction: args.direction,
61
- startX: startX,
62
- startY: startY,
63
- endX: startX,
64
- endY: endY,
65
- });
59
+ const _ok = isRemoteDriverSession(driver)
60
+ ? await driver.executeScript('mobile: scroll', [
61
+ {
62
+ direction: args.direction,
63
+ startX: startX,
64
+ startY: startY,
65
+ endX: startX,
66
+ endY: endY,
67
+ },
68
+ ])
69
+ : await driver.execute('mobile: scroll', {
70
+ direction: args.direction,
71
+ startX: startX,
72
+ startY: startY,
73
+ endX: startX,
74
+ endY: endY,
75
+ });
66
76
  }
67
77
  else {
68
78
  throw new Error(`Unsupported platform: ${getPlatformName(driver)}. Only Android and iOS are supported.`);
@@ -1 +1 @@
1
- {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../src/tools/navigations/scroll.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../src/tools/navigations/scroll.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export default function swipe(server: any): void;
2
+ //# sourceMappingURL=swipe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swipe.d.ts","sourceRoot":"","sources":["../../../src/tools/navigations/swipe.ts"],"names":[],"mappings":"AAkHA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CA6P/C"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { getDriver, getPlatformName } from '../../session-store.js';
2
+ import { getDriver, getPlatformName, isRemoteDriverSession, } from '../../session-store.js';
3
3
  import log from '../../logger.js';
4
4
  import { elementUUIDScheme } from '../../schema.js';
5
5
  function calculateSwipeCoordinates(direction, width, height) {
@@ -187,7 +187,7 @@ export default function swipe(server) {
187
187
  });
188
188
  }
189
189
  else {
190
- const { width, height } = await driver.getWindowSize();
190
+ const { width, height } = await driver.getWindowRect();
191
191
  log.info('Device screen size:', { width, height });
192
192
  const coords = calculateSwipeCoordinates(args.direction, width, height);
193
193
  startX = coords.startX;
@@ -249,9 +249,15 @@ export default function swipe(server) {
249
249
  else if (platform === 'iOS') {
250
250
  if (args.direction) {
251
251
  try {
252
- await driver.execute('mobile: swipe', {
253
- direction: args.direction,
254
- });
252
+ const _ok = isRemoteDriverSession(driver)
253
+ ? await driver.executeScript('mobile: swipe', [
254
+ {
255
+ direction: args.direction,
256
+ },
257
+ ])
258
+ : await driver.execute('mobile: swipe', {
259
+ direction: args.direction,
260
+ });
255
261
  log.info(`iOS swipe completed using mobile: swipe (${args.direction})`);
256
262
  }
257
263
  catch (swipeError) {
@@ -1 +1 @@
1
- {"version":3,"file":"swipe.js","sourceRoot":"","sources":["../../../src/tools/navigations/swipe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swipe.js","sourceRoot":"","sources":["../../../src/tools/navigations/swipe.ts"],"names":[],"mappings":"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"}
@@ -1 +1,32 @@
1
+ /**
2
+ * Registers a tool for creating a new mobile session with Android or iOS devices.
3
+ *
4
+ * This function adds a 'create_session' tool to the provided server that handles
5
+ * mobile session creation with support for both local and remote Appium servers.
6
+ *
7
+ * @param server - The server instance to which the create_session tool will be added
8
+ *
9
+ * @tool create_session
10
+ * @description Creates a new mobile session with Android or iOS device. Requires prior
11
+ * platform selection via the select_platform tool. Supports both local and remote
12
+ * Appium server connections.
13
+ *
14
+ * @param {Object} args - Tool execution arguments
15
+ * @param {'ios' | 'android'} args.platform - REQUIRED. The target platform, must match
16
+ * the platform explicitly selected via select_platform tool
17
+ * @param {Object} [args.capabilities] - Optional custom W3C format capabilities
18
+ * @param {string} [args.remoteServerUrl] - Optional remote Appium server URL
19
+ * (e.g., http://localhost:4723). If not provided, uses local Appium server
20
+ *
21
+ * @returns {Promise<Object>} Response object containing:
22
+ * - text: Success message with session ID and device details
23
+ * - ui: Interactive session dashboard UI component
24
+ *
25
+ * @throws {Error} If session creation fails or platform capabilities cannot be loaded
26
+ *
27
+ * @example
28
+ * // Register the tool
29
+ * createSession(server);
30
+ */
1
31
  export default function createSession(server: any): void;
32
+ //# sourceMappingURL=create-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-session.d.ts","sourceRoot":"","sources":["../../../src/tools/session/create-session.ts"],"names":[],"mappings":"AAkNA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAyIvD"}
@@ -2,8 +2,9 @@
2
2
  * Tool to create a new mobile session (Android or iOS)
3
3
  */
4
4
  import { z } from 'zod';
5
- import { access, readFile } from 'fs/promises';
6
- import { constants } from 'fs';
5
+ import { access, readFile } from 'node:fs/promises';
6
+ import { constants } from 'node:fs';
7
+ import { URL } from 'node:url';
7
8
  import { AndroidUiautomator2Driver } from 'appium-uiautomator2-driver';
8
9
  import { XCUITestDriver } from 'appium-xcuitest-driver';
9
10
  import { setSession, hasActiveSession, safeDeleteSession, } from '../../session-store.js';
@@ -11,6 +12,7 @@ import { getSelectedDevice, getSelectedDeviceType, getSelectedDeviceInfo, clearS
11
12
  import { IOSManager } from '../../devicemanager/ios-manager.js';
12
13
  import log from '../../logger.js';
13
14
  import { createUIResource, createSessionDashboardUI, addUIResourceToResponse, } from '../../ui/mcp-ui-utils.js';
15
+ import WebDriver from 'webdriver';
14
16
  /**
15
17
  * Load capabilities configuration from file if specified in environment
16
18
  */
@@ -44,13 +46,13 @@ function filterEmptyCapabilities(capabilities) {
44
46
  /**
45
47
  * Build Android capabilities by merging defaults, config, device selection, and custom capabilities
46
48
  */
47
- function buildAndroidCapabilities(configCaps, customCaps) {
49
+ function buildAndroidCapabilities(configCaps, customCaps, isRemoteServer) {
48
50
  const defaultCaps = {
49
51
  platformName: 'Android',
50
52
  'appium:automationName': 'UiAutomator2',
51
53
  'appium:deviceName': 'Android Device',
52
54
  };
53
- const selectedDeviceUdid = getSelectedDevice();
55
+ const selectedDeviceUdid = isRemoteServer ? undefined : getSelectedDevice();
54
56
  const capabilities = {
55
57
  ...defaultCaps,
56
58
  ...configCaps,
@@ -81,16 +83,18 @@ async function validateIOSDeviceSelection(deviceType) {
81
83
  /**
82
84
  * Build iOS capabilities by merging defaults, config, device selection, and custom capabilities
83
85
  */
84
- async function buildIOSCapabilities(configCaps, customCaps) {
85
- const deviceType = getSelectedDeviceType();
86
+ async function buildIOSCapabilities(configCaps, customCaps, isRemoteServer) {
87
+ const deviceType = isRemoteServer ? null : getSelectedDeviceType();
86
88
  await validateIOSDeviceSelection(deviceType);
87
89
  const defaultCaps = {
88
90
  platformName: 'iOS',
89
91
  'appium:automationName': 'XCUITest',
90
92
  'appium:deviceName': 'iPhone Simulator',
91
93
  };
92
- const selectedDeviceUdid = getSelectedDevice();
93
- const selectedDeviceInfo = getSelectedDeviceInfo();
94
+ const selectedDeviceUdid = isRemoteServer ? undefined : getSelectedDevice();
95
+ const selectedDeviceInfo = isRemoteServer
96
+ ? undefined
97
+ : getSelectedDeviceInfo();
94
98
  log.debug('Selected device info:', selectedDeviceInfo);
95
99
  const platformVersion = selectedDeviceInfo?.platform && selectedDeviceInfo.platform.trim() !== ''
96
100
  ? selectedDeviceInfo.platform
@@ -137,20 +141,63 @@ async function createDriverSession(driver, capabilities) {
137
141
  });
138
142
  return sessionId;
139
143
  }
144
+ /**
145
+ * Registers a tool for creating a new mobile session with Android or iOS devices.
146
+ *
147
+ * This function adds a 'create_session' tool to the provided server that handles
148
+ * mobile session creation with support for both local and remote Appium servers.
149
+ *
150
+ * @param server - The server instance to which the create_session tool will be added
151
+ *
152
+ * @tool create_session
153
+ * @description Creates a new mobile session with Android or iOS device. Requires prior
154
+ * platform selection via the select_platform tool. Supports both local and remote
155
+ * Appium server connections.
156
+ *
157
+ * @param {Object} args - Tool execution arguments
158
+ * @param {'ios' | 'android'} args.platform - REQUIRED. The target platform, must match
159
+ * the platform explicitly selected via select_platform tool
160
+ * @param {Object} [args.capabilities] - Optional custom W3C format capabilities
161
+ * @param {string} [args.remoteServerUrl] - Optional remote Appium server URL
162
+ * (e.g., http://localhost:4723). If not provided, uses local Appium server
163
+ *
164
+ * @returns {Promise<Object>} Response object containing:
165
+ * - text: Success message with session ID and device details
166
+ * - ui: Interactive session dashboard UI component
167
+ *
168
+ * @throws {Error} If session creation fails or platform capabilities cannot be loaded
169
+ *
170
+ * @example
171
+ * // Register the tool
172
+ * createSession(server);
173
+ */
140
174
  export default function createSession(server) {
141
175
  server.addTool({
142
176
  name: 'create_session',
143
177
  description: `Create a new mobile session with Android or iOS device.
144
- MUST use select_platform tool first to ask the user which platform they want.
145
- DO NOT assume or default to any platform.
178
+ WORKFLOW FOR LOCAL SERVERS (no remoteServerUrl):
179
+ - Use select_platform tool FIRST to ask the user which platform they want
180
+ - Then optionally use select_device tool if multiple devices are available
181
+ - Finally call create_session with the selected platform and device
182
+ - DO NOT assume or default to any platform
183
+ WORKFLOW FOR REMOTE SERVERS (remoteServerUrl provided):
184
+ - SKIP select_platform tool entirely
185
+ - Infer the platform from the user's request (e.g., 'ios', 'android')
186
+ - Infer device type from context when possible (e.g., 'simulator', 'real device')
187
+ - Call create_session directly with platform, remoteServerUrl, and any other capabilities from the user's request
188
+ - Example: User says 'start session with http://localhost:4723 for ios with iphone 17' → infer platform='ios' and call create_session with remoteServerUrl and platform parameters
146
189
  `,
147
190
  parameters: z.object({
148
- platform: z.enum(['ios', 'android']).describe(`REQUIRED: Must match the platform the user explicitly selected via the select_platform tool.
149
- DO NOT default to Android or iOS without asking the user first.`),
191
+ platform: z.enum(['ios', 'android']).describe(`REQUIRED: Platform to use. For local servers, this must match the platform the user explicitly selected via the select_platform tool.
192
+ If remoteServerUrl is provided, the assistant should ask the user to confirm or infer the platform from the conversation; do not assume a default.`),
150
193
  capabilities: z
151
194
  .object({})
152
195
  .optional()
153
- .describe('Optional custom capabilities for the session (W3C format).'),
196
+ .describe('Optional custom W3C format capabilities for the session. Common options include appium:app (app path), appium:deviceName, appium:platformVersion, appium:bundleId, appium:autoGrantPermissions, etc. Custom capabilities override default and config file settings.'),
197
+ remoteServerUrl: z
198
+ .string()
199
+ .optional()
200
+ .describe('Remote Appium server URL (e.g., http://localhost:4723 or http://192.168.1.100:4723). If not provided, uses local Appium server.'),
154
201
  }),
155
202
  annotations: {
156
203
  readOnlyHint: false,
@@ -160,20 +207,40 @@ export default function createSession(server) {
160
207
  try {
161
208
  if (hasActiveSession()) {
162
209
  log.info('Existing session detected, cleaning up before creating new session...');
163
- await safeDeleteSession();
210
+ try {
211
+ await safeDeleteSession();
212
+ }
213
+ catch {
214
+ // ok to ignore
215
+ }
164
216
  }
165
- const { platform, capabilities: customCapabilities } = args;
217
+ const { platform, capabilities: customCapabilities, remoteServerUrl, } = args;
166
218
  const configCapabilities = await loadCapabilitiesConfig();
167
219
  const platformCaps = platform === 'android'
168
220
  ? configCapabilities.android
169
221
  : configCapabilities.ios;
170
222
  const finalCapabilities = platform === 'android'
171
- ? buildAndroidCapabilities(platformCaps, customCapabilities)
172
- : await buildIOSCapabilities(platformCaps, customCapabilities);
173
- const driver = createDriverForPlatform(platform);
174
- log.info(`Creating new ${platform.toUpperCase()} session with capabilities:`, JSON.stringify(finalCapabilities, null, 2));
175
- const sessionId = await createDriverSession(driver, finalCapabilities);
176
- setSession(driver, sessionId);
223
+ ? buildAndroidCapabilities(platformCaps, customCapabilities, !!remoteServerUrl)
224
+ : await buildIOSCapabilities(platformCaps, customCapabilities, !!remoteServerUrl);
225
+ let sessionId;
226
+ if (remoteServerUrl) {
227
+ const remoteUrl = new URL(remoteServerUrl);
228
+ const client = await WebDriver.newSession({
229
+ protocol: remoteUrl.protocol.replace(':', ''),
230
+ hostname: remoteUrl.hostname,
231
+ port: parseInt(remoteUrl.port, 10),
232
+ path: remoteUrl.pathname,
233
+ capabilities: finalCapabilities,
234
+ });
235
+ sessionId = client.sessionId;
236
+ setSession(client, client.sessionId);
237
+ }
238
+ else {
239
+ log.info(`Creating new ${platform.toUpperCase()} session with capabilities:`, JSON.stringify(finalCapabilities, null, 2));
240
+ const driver = createDriverForPlatform(platform);
241
+ sessionId = await createDriverSession(driver, finalCapabilities);
242
+ setSession(driver, sessionId);
243
+ }
177
244
  // Safely convert sessionId to string for display
178
245
  const sessionIdStr = typeof sessionId === 'string'
179
246
  ? sessionId