appium-mcp 1.8.11 → 1.8.12

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 (452) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/package.json +12 -3
  3. package/server.json +2 -2
  4. package/.github/dependabot.yml +0 -17
  5. package/.github/workflows/ci.yml +0 -44
  6. package/.github/workflows/pr-title.yml +0 -10
  7. package/.github/workflows/publish.yml +0 -66
  8. package/.gitmodules +0 -9
  9. package/.prettierignore +0 -29
  10. package/.prettierrc +0 -9
  11. package/.releaserc +0 -37
  12. package/docs/CONTRIBUTING.md +0 -424
  13. package/eslint.config.js +0 -23
  14. package/examples/android-gmail.md +0 -7
  15. package/examples/android-todo-app.md +0 -9
  16. package/jest.config.js +0 -23
  17. package/src/devicemanager/adb-manager.ts +0 -164
  18. package/src/devicemanager/ios-manager.ts +0 -145
  19. package/src/index.ts +0 -45
  20. package/src/locators/element-filter.ts +0 -136
  21. package/src/locators/generate-all-locators.ts +0 -150
  22. package/src/locators/locator-generation.ts +0 -657
  23. package/src/locators/source-parsing.ts +0 -149
  24. package/src/logger.ts +0 -11
  25. package/src/resources/caps.json +0 -697
  26. package/src/resources/index.ts +0 -8
  27. package/src/resources/java/template.ts +0 -83
  28. package/src/resources/submodules/appium/.github/PULL_REQUEST_TEMPLATE.md +0 -28
  29. package/src/resources/submodules/appium/CHANGELOG.md +0 -45
  30. package/src/resources/submodules/appium/CONDUCT.md +0 -48
  31. package/src/resources/submodules/appium/GOVERNANCE.md +0 -185
  32. package/src/resources/submodules/appium/IDEAS.md +0 -16
  33. package/src/resources/submodules/appium/README.md +0 -221
  34. package/src/resources/submodules/appium/ROADMAP.md +0 -30
  35. package/src/resources/submodules/appium/SPONSORS.md +0 -3
  36. package/src/resources/submodules/appium/docs/README.md +0 -6
  37. package/src/resources/submodules/appium/docs/payout.md +0 -35
  38. package/src/resources/submodules/appium/packages/appium/CHANGELOG.md +0 -1437
  39. package/src/resources/submodules/appium/packages/appium/README.md +0 -221
  40. package/src/resources/submodules/appium/packages/appium/docs/en/blog/index.md +0 -2
  41. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-appiumconf2024.md +0 -45
  42. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-browserstack-as-strategic-partner.md +0 -46
  43. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-headspin-as-development-partner.md +0 -47
  44. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-lambdatest-as-strategic-partner.md +0 -42
  45. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-sauce-labs-as-strategic-partner.md +0 -36
  46. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-sponsorship-program.md +0 -48
  47. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/appium3.md +0 -40
  48. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/hello-world.md +0 -15
  49. package/src/resources/submodules/appium/packages/appium/docs/en/contributing/index.md +0 -150
  50. package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-docs.md +0 -86
  51. package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-doctor-checks.md +0 -141
  52. package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-drivers.md +0 -860
  53. package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-plugins.md +0 -514
  54. package/src/resources/submodules/appium/packages/appium/docs/en/developing/config-system.md +0 -451
  55. package/src/resources/submodules/appium/packages/appium/docs/en/developing/index.md +0 -18
  56. package/src/resources/submodules/appium/packages/appium/docs/en/developing/sensitive.md +0 -49
  57. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/clients.md +0 -132
  58. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/drivers.md +0 -207
  59. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/index.md +0 -45
  60. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/plugins.md +0 -138
  61. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/tools.md +0 -83
  62. package/src/resources/submodules/appium/packages/appium/docs/en/guides/branch-testing.md +0 -57
  63. package/src/resources/submodules/appium/packages/appium/docs/en/guides/caching.md +0 -76
  64. package/src/resources/submodules/appium/packages/appium/docs/en/guides/caps.md +0 -275
  65. package/src/resources/submodules/appium/packages/appium/docs/en/guides/config.md +0 -98
  66. package/src/resources/submodules/appium/packages/appium/docs/en/guides/context.md +0 -44
  67. package/src/resources/submodules/appium/packages/appium/docs/en/guides/event-timing.md +0 -73
  68. package/src/resources/submodules/appium/packages/appium/docs/en/guides/execute-methods.md +0 -122
  69. package/src/resources/submodules/appium/packages/appium/docs/en/guides/grid.md +0 -166
  70. package/src/resources/submodules/appium/packages/appium/docs/en/guides/headers.md +0 -17
  71. package/src/resources/submodules/appium/packages/appium/docs/en/guides/log-filters.md +0 -86
  72. package/src/resources/submodules/appium/packages/appium/docs/en/guides/managing-exts.md +0 -87
  73. package/src/resources/submodules/appium/packages/appium/docs/en/guides/migrating-1-to-2.md +0 -368
  74. package/src/resources/submodules/appium/packages/appium/docs/en/guides/migrating-2-to-3.md +0 -464
  75. package/src/resources/submodules/appium/packages/appium/docs/en/guides/security.md +0 -89
  76. package/src/resources/submodules/appium/packages/appium/docs/en/guides/settings.md +0 -68
  77. package/src/resources/submodules/appium/packages/appium/docs/en/guides/tls.md +0 -42
  78. package/src/resources/submodules/appium/packages/appium/docs/en/index.md +0 -59
  79. package/src/resources/submodules/appium/packages/appium/docs/en/intro/appium.md +0 -202
  80. package/src/resources/submodules/appium/packages/appium/docs/en/intro/clients.md +0 -127
  81. package/src/resources/submodules/appium/packages/appium/docs/en/intro/drivers.md +0 -188
  82. package/src/resources/submodules/appium/packages/appium/docs/en/intro/history.md +0 -196
  83. package/src/resources/submodules/appium/packages/appium/docs/en/intro/index.md +0 -39
  84. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/index.md +0 -29
  85. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/install.md +0 -50
  86. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/next-steps.md +0 -23
  87. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/requirements.md +0 -29
  88. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-dotnet.md +0 -105
  89. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-java.md +0 -23
  90. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-js.md +0 -75
  91. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-py.md +0 -60
  92. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-rb.md +0 -83
  93. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/uiauto2-driver.md +0 -144
  94. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/appium.md +0 -394
  95. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/bidi.md +0 -70
  96. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/index.md +0 -30
  97. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/jsonwp.md +0 -214
  98. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/mjsonwp.md +0 -151
  99. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/others.md +0 -671
  100. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/plugins.md +0 -289
  101. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/webdriver.md +0 -1114
  102. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/env-vars.md +0 -31
  103. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/extensions.md +0 -239
  104. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/index.md +0 -35
  105. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/server.md +0 -76
  106. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/setup.md +0 -76
  107. package/src/resources/submodules/appium/packages/appium/docs/en/reference/index.md +0 -25
  108. package/src/resources/submodules/appium/packages/appium/docs/en/resources/index.md +0 -28
  109. package/src/resources/submodules/appium/packages/appium/docs/en/sponsors/index.md +0 -64
  110. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/index.md +0 -2
  111. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-appiumconf2024.md +0 -45
  112. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-browserstack-as-strategic-partner.md +0 -46
  113. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-headspin-as-development-partner.md +0 -47
  114. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-lambdatest-as-strategic-partner.md +0 -41
  115. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-sauce-labs-as-strategic-partner.md +0 -36
  116. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-sponsorship-program.md +0 -48
  117. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/appium3.md +0 -40
  118. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/hello-world.md +0 -15
  119. package/src/resources/submodules/appium/packages/appium/docs/ja/contributing/index.md +0 -158
  120. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-docs.md +0 -86
  121. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-doctor-checks.md +0 -141
  122. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-drivers.md +0 -866
  123. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-plugins.md +0 -520
  124. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/config-system.md +0 -468
  125. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/index.md +0 -18
  126. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/sensitive.md +0 -49
  127. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/clients.md +0 -143
  128. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/drivers.md +0 -219
  129. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/index.md +0 -45
  130. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/plugins.md +0 -140
  131. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/tools.md +0 -87
  132. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/branch-testing.md +0 -57
  133. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/caching.md +0 -78
  134. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/caps.md +0 -259
  135. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/config.md +0 -102
  136. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/context.md +0 -44
  137. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/event-timing.md +0 -75
  138. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/execute-methods.md +0 -142
  139. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/grid.md +0 -166
  140. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/headers.md +0 -17
  141. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/log-filters.md +0 -86
  142. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/managing-exts.md +0 -89
  143. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/migrating-1-to-2.md +0 -402
  144. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/migrating-2-to-3.md +0 -458
  145. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/security.md +0 -89
  146. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/settings.md +0 -70
  147. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/tls.md +0 -43
  148. package/src/resources/submodules/appium/packages/appium/docs/ja/index.md +0 -55
  149. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/appium.md +0 -191
  150. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/clients.md +0 -139
  151. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/drivers.md +0 -188
  152. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/history.md +0 -196
  153. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/index.md +0 -39
  154. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/index.md +0 -23
  155. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/install.md +0 -47
  156. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/next-steps.md +0 -19
  157. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/requirements.md +0 -29
  158. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-dotnet.md +0 -107
  159. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-java.md +0 -23
  160. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-js.md +0 -77
  161. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-py.md +0 -63
  162. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-rb.md +0 -85
  163. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/uiauto2-driver.md +0 -148
  164. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/appium.md +0 -395
  165. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/bidi.md +0 -71
  166. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/index.md +0 -30
  167. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/jsonwp.md +0 -215
  168. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/mjsonwp.md +0 -152
  169. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/others.md +0 -672
  170. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/plugins.md +0 -291
  171. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/webdriver.md +0 -1114
  172. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/env-vars.md +0 -31
  173. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/extensions.md +0 -240
  174. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/index.md +0 -35
  175. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/server.md +0 -76
  176. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/setup.md +0 -78
  177. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/index.md +0 -25
  178. package/src/resources/submodules/appium/packages/appium/docs/ja/resources/index.md +0 -28
  179. package/src/resources/submodules/appium/packages/appium/docs/ja/sponsors/index.md +0 -61
  180. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo-horiz-white.png +0 -0
  181. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo-horiz.png +0 -0
  182. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo-white.png +0 -0
  183. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo.png +0 -0
  184. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-browserstack-dark.png +0 -0
  185. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-browserstack-light.png +0 -0
  186. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-lambdatest-dark.png +0 -0
  187. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-lambdatest-light.png +0 -0
  188. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-sauce.png +0 -0
  189. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/index.md +0 -2
  190. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-appiumconf2024.md +0 -45
  191. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-browserstack-as-strategic-partner.md +0 -46
  192. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-headspin-as-development-partner.md +0 -47
  193. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-lambdatest-as-strategic-partner.md +0 -41
  194. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-sauce-labs-as-strategic-partner.md +0 -36
  195. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-sponsorship-program.md +0 -48
  196. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/appium3.md +0 -40
  197. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/hello-world.md +0 -15
  198. package/src/resources/submodules/appium/packages/appium/docs/zh/contributing/index.md +0 -132
  199. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-docs.md +0 -86
  200. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-doctor-checks.md +0 -141
  201. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-drivers.md +0 -866
  202. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-plugins.md +0 -520
  203. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/config-system.md +0 -468
  204. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/index.md +0 -18
  205. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/sensitive.md +0 -49
  206. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/clients.md +0 -143
  207. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/drivers.md +0 -219
  208. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/index.md +0 -45
  209. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/plugins.md +0 -140
  210. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/tools.md +0 -87
  211. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/branch-testing.md +0 -57
  212. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/caching.md +0 -78
  213. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/caps.md +0 -284
  214. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/config.md +0 -102
  215. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/context.md +0 -44
  216. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/event-timing.md +0 -75
  217. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/execute-methods.md +0 -142
  218. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/grid.md +0 -166
  219. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/headers.md +0 -17
  220. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/log-filters.md +0 -86
  221. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/managing-exts.md +0 -89
  222. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/migrating-1-to-2.md +0 -410
  223. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/migrating-2-to-3.md +0 -459
  224. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/security.md +0 -89
  225. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/settings.md +0 -70
  226. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/tls.md +0 -43
  227. package/src/resources/submodules/appium/packages/appium/docs/zh/index.md +0 -54
  228. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/appium.md +0 -200
  229. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/clients.md +0 -139
  230. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/drivers.md +0 -188
  231. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/history.md +0 -196
  232. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/index.md +0 -39
  233. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/index.md +0 -23
  234. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/install.md +0 -47
  235. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/next-steps.md +0 -19
  236. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/requirements.md +0 -21
  237. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-dotnet.md +0 -99
  238. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-java.md +0 -20
  239. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-js.md +0 -62
  240. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-py.md +0 -57
  241. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-rb.md +0 -80
  242. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/uiauto2-driver.md +0 -148
  243. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/appium.md +0 -395
  244. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/bidi.md +0 -71
  245. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/index.md +0 -30
  246. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/jsonwp.md +0 -215
  247. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/mjsonwp.md +0 -152
  248. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/others.md +0 -672
  249. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/plugins.md +0 -291
  250. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/webdriver.md +0 -1114
  251. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/env-vars.md +0 -31
  252. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/extensions.md +0 -240
  253. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/index.md +0 -35
  254. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/server.md +0 -76
  255. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/setup.md +0 -78
  256. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/index.md +0 -25
  257. package/src/resources/submodules/appium/packages/appium/docs/zh/resources/index.md +0 -28
  258. package/src/resources/submodules/appium/packages/appium/docs/zh/sponsors/index.md +0 -61
  259. package/src/resources/submodules/appium/packages/appium/types/manifest/README.md +0 -30
  260. package/src/resources/submodules/appium/packages/base-driver/CHANGELOG.md +0 -1131
  261. package/src/resources/submodules/appium/packages/base-driver/README.md +0 -15
  262. package/src/resources/submodules/appium/packages/base-driver/docs/mjsonwp/errors.md +0 -82
  263. package/src/resources/submodules/appium/packages/base-driver/docs/mjsonwp/protocol-methods.md +0 -182
  264. package/src/resources/submodules/appium/packages/base-driver/static/appium.png +0 -0
  265. package/src/resources/submodules/appium/packages/base-plugin/CHANGELOG.md +0 -672
  266. package/src/resources/submodules/appium/packages/base-plugin/README.md +0 -15
  267. package/src/resources/submodules/appium/packages/docutils/CHANGELOG.md +0 -948
  268. package/src/resources/submodules/appium/packages/docutils/README.md +0 -27
  269. package/src/resources/submodules/appium/packages/driver-test-support/CHANGELOG.md +0 -717
  270. package/src/resources/submodules/appium/packages/driver-test-support/README.md +0 -112
  271. package/src/resources/submodules/appium/packages/eslint-config-appium-ts/CHANGELOG.md +0 -168
  272. package/src/resources/submodules/appium/packages/eslint-config-appium-ts/README.md +0 -33
  273. package/src/resources/submodules/appium/packages/execute-driver-plugin/CHANGELOG.md +0 -603
  274. package/src/resources/submodules/appium/packages/execute-driver-plugin/README.md +0 -42
  275. package/src/resources/submodules/appium/packages/fake-driver/CHANGELOG.md +0 -545
  276. package/src/resources/submodules/appium/packages/fake-driver/README.md +0 -7
  277. package/src/resources/submodules/appium/packages/fake-driver/lib/screen.png +0 -0
  278. package/src/resources/submodules/appium/packages/fake-plugin/CHANGELOG.md +0 -683
  279. package/src/resources/submodules/appium/packages/fake-plugin/README.md +0 -7
  280. package/src/resources/submodules/appium/packages/images-plugin/CHANGELOG.md +0 -602
  281. package/src/resources/submodules/appium/packages/images-plugin/README.md +0 -27
  282. package/src/resources/submodules/appium/packages/images-plugin/docs/find-by-image.md +0 -65
  283. package/src/resources/submodules/appium/packages/images-plugin/docs/image-comparison.md +0 -203
  284. package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/appstore.png +0 -0
  285. package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/img1.png +0 -0
  286. package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/img2.png +0 -0
  287. package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/img2_part.png +0 -0
  288. package/src/resources/submodules/appium/packages/logger/CHANGELOG.md +0 -162
  289. package/src/resources/submodules/appium/packages/logger/README.md +0 -31
  290. package/src/resources/submodules/appium/packages/opencv/CHANGELOG.md +0 -384
  291. package/src/resources/submodules/appium/packages/opencv/README.md +0 -68
  292. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/appium-diagram.jpg +0 -0
  293. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/cc1.png +0 -0
  294. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/cc2.png +0 -0
  295. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/cc_rotated.png +0 -0
  296. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/findwaldo.jpg +0 -0
  297. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/number5.png +0 -0
  298. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/waldo.jpg +0 -0
  299. package/src/resources/submodules/appium/packages/plugin-test-support/CHANGELOG.md +0 -539
  300. package/src/resources/submodules/appium/packages/plugin-test-support/README.md +0 -49
  301. package/src/resources/submodules/appium/packages/relaxed-caps-plugin/CHANGELOG.md +0 -154
  302. package/src/resources/submodules/appium/packages/relaxed-caps-plugin/README.md +0 -35
  303. package/src/resources/submodules/appium/packages/schema/CHANGELOG.md +0 -271
  304. package/src/resources/submodules/appium/packages/schema/README.md +0 -50
  305. package/src/resources/submodules/appium/packages/storage-plugin/CHANGELOG.md +0 -73
  306. package/src/resources/submodules/appium/packages/storage-plugin/README.md +0 -83
  307. package/src/resources/submodules/appium/packages/strongbox/CHANGELOG.md +0 -94
  308. package/src/resources/submodules/appium/packages/strongbox/README.md +0 -96
  309. package/src/resources/submodules/appium/packages/support/CHANGELOG.md +0 -1054
  310. package/src/resources/submodules/appium/packages/support/README.md +0 -161
  311. package/src/resources/submodules/appium/packages/test-support/CHANGELOG.md +0 -712
  312. package/src/resources/submodules/appium/packages/test-support/README.md +0 -61
  313. package/src/resources/submodules/appium/packages/tsconfig/CHANGELOG.md +0 -131
  314. package/src/resources/submodules/appium/packages/tsconfig/README.md +0 -19
  315. package/src/resources/submodules/appium/packages/types/CHANGELOG.md +0 -793
  316. package/src/resources/submodules/appium/packages/types/README.md +0 -21
  317. package/src/resources/submodules/appium/packages/universal-xml-plugin/CHANGELOG.md +0 -435
  318. package/src/resources/submodules/appium/packages/universal-xml-plugin/README.md +0 -53
  319. package/src/resources/submodules/appium/renovate/README.md +0 -63
  320. package/src/resources/submodules/appium-uiautomator2-driver/CHANGELOG.md +0 -1204
  321. package/src/resources/submodules/appium-uiautomator2-driver/README.md +0 -2077
  322. package/src/resources/submodules/appium-uiautomator2-driver/docs/actions.md +0 -72
  323. package/src/resources/submodules/appium-uiautomator2-driver/docs/activity-startup.md +0 -47
  324. package/src/resources/submodules/appium-uiautomator2-driver/docs/android-appbundle.md +0 -69
  325. package/src/resources/submodules/appium-uiautomator2-driver/docs/android-mobile-gestures.md +0 -352
  326. package/src/resources/submodules/appium-uiautomator2-driver/docs/bidi.md +0 -50
  327. package/src/resources/submodules/appium-uiautomator2-driver/docs/capability-sets.md +0 -136
  328. package/src/resources/submodules/appium-uiautomator2-driver/docs/scheduled-actions.md +0 -155
  329. package/src/resources/submodules/appium-uiautomator2-driver/docs/uiautomator-uiselector.md +0 -51
  330. package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/main.md +0 -95
  331. package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/screen1.png +0 -0
  332. package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/screen2.png +0 -0
  333. package/src/resources/submodules/appium-uiautomator2-driver/test/functional/assets/checkered-squares.png +0 -0
  334. package/src/resources/submodules/appium-uiautomator2-driver/test/functional/assets/start-button.png +0 -0
  335. package/src/resources/submodules/appium-uiautomator2-driver/test/functional/assets/stop-button.png +0 -0
  336. package/src/resources/submodules/appium-xcuitest-driver/.github/ISSUE_TEMPLATE.md +0 -4
  337. package/src/resources/submodules/appium-xcuitest-driver/CHANGELOG.md +0 -2594
  338. package/src/resources/submodules/appium-xcuitest-driver/README.md +0 -55
  339. package/src/resources/submodules/appium-xcuitest-driver/docs/assets/images/appium-logo-white.png +0 -0
  340. package/src/resources/submodules/appium-xcuitest-driver/docs/assets/images/appium-logo.png +0 -0
  341. package/src/resources/submodules/appium-xcuitest-driver/docs/assets/images/appium-plus-xctest.png +0 -0
  342. package/src/resources/submodules/appium-xcuitest-driver/docs/contributing.md +0 -45
  343. package/src/resources/submodules/appium-xcuitest-driver/docs/endpoints-wda.md +0 -61
  344. package/src/resources/submodules/appium-xcuitest-driver/docs/endpoints.md +0 -98
  345. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/assets/images/ios-xctest-file-movement/keynote.png +0 -0
  346. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/assets/images/ios-xctest-file-movement/on_my_iphone.png +0 -0
  347. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/assets/images/ios-xctest-file-movement/top_files.png +0 -0
  348. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/attach-to-running-wda.md +0 -43
  349. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/audio-capture.md +0 -78
  350. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/capability-sets.md +0 -169
  351. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/ci-setup.md +0 -47
  352. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/clipboard.md +0 -47
  353. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/elements-lookup-troubleshooting.md +0 -158
  354. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/file-transfer.md +0 -147
  355. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/gestures.md +0 -52
  356. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/hybrid.md +0 -137
  357. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/input-events.md +0 -67
  358. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/install-certificate.md +0 -19
  359. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/multiple-xcode-versions.md +0 -37
  360. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/parallel-tests.md +0 -39
  361. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/run-prebuilt-wda.md +0 -135
  362. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/run-preinstalled-wda.md +0 -178
  363. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/touch-id.md +0 -33
  364. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/troubleshooting.md +0 -191
  365. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/tvos.md +0 -114
  366. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/wda-custom-server.md +0 -283
  367. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/wda-slowness.md +0 -231
  368. package/src/resources/submodules/appium-xcuitest-driver/docs/index.md +0 -36
  369. package/src/resources/submodules/appium-xcuitest-driver/docs/installation/index.md +0 -137
  370. package/src/resources/submodules/appium-xcuitest-driver/docs/overview.md +0 -19
  371. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/check-prov-prof.png +0 -0
  372. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/create-new-project.png +0 -0
  373. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/create-single-page.png +0 -0
  374. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/no-prov-prof.png +0 -0
  375. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/project-prov-prof.png +0 -0
  376. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/set-up-bundle.png +0 -0
  377. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/untrusted-dev.png +0 -0
  378. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-bundle-id.png +0 -0
  379. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-config.png +0 -0
  380. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-facebook-fail.png +0 -0
  381. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-facebook-succeed.png +0 -0
  382. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/index.md +0 -51
  383. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-basic-auto.md +0 -49
  384. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-basic-manual.md +0 -40
  385. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-full-manual.md +0 -50
  386. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-generic-manual.md +0 -49
  387. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/real-device-config.md +0 -100
  388. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/assets/images/useXctestrunFile.png +0 -0
  389. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/bidi.md +0 -75
  390. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/capabilities.md +0 -165
  391. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/commands.md +0 -490
  392. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/element-attributes.md +0 -27
  393. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/execute-methods.md +0 -2206
  394. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/ios-predicate.md +0 -196
  395. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/locator-strategies.md +0 -19
  396. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/scripts.md +0 -29
  397. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/security-flags.md +0 -22
  398. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/server-args.md +0 -16
  399. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/settings.md +0 -49
  400. package/src/resources/submodules/appium-xcuitest-driver/test/assets/TestApp-iphonesimulator.app/Default-568h@2x.png +0 -0
  401. package/src/resources/submodules/appium-xcuitest-driver/test/assets/test.png +0 -0
  402. package/src/schema.ts +0 -5
  403. package/src/scripts/simple-index-documentation.ts +0 -93
  404. package/src/scripts/simple-query-documentation.ts +0 -61
  405. package/src/server.ts +0 -40
  406. package/src/session-store.ts +0 -117
  407. package/src/tests/README.md +0 -83
  408. package/src/tests/__mocks__/@appium/support.ts +0 -30
  409. package/src/tests/generate-all-locators.test.ts +0 -178
  410. package/src/tests/screenshot.test.ts +0 -279
  411. package/src/tests/test-setup-wda.ts +0 -255
  412. package/src/tools/README.md +0 -179
  413. package/src/tools/app-management/activate-app.ts +0 -46
  414. package/src/tools/app-management/install-app.ts +0 -54
  415. package/src/tools/app-management/list-apps.ts +0 -87
  416. package/src/tools/app-management/terminate-app.ts +0 -56
  417. package/src/tools/app-management/uninstall-app.ts +0 -56
  418. package/src/tools/context/get-contexts.ts +0 -78
  419. package/src/tools/context/switch-context.ts +0 -106
  420. package/src/tools/documentation/answer-appium.ts +0 -73
  421. package/src/tools/documentation/index.ts +0 -98
  422. package/src/tools/documentation/reasoning-rag.ts +0 -435
  423. package/src/tools/documentation/sentence-transformers-embeddings.ts +0 -144
  424. package/src/tools/documentation/simple-pdf-indexer.ts +0 -508
  425. package/src/tools/documentation/uploads/documents.json +0 -1
  426. package/src/tools/index.ts +0 -159
  427. package/src/tools/interactions/click.ts +0 -50
  428. package/src/tools/interactions/double-tap.ts +0 -99
  429. package/src/tools/interactions/drag-and-drop.ts +0 -238
  430. package/src/tools/interactions/find.ts +0 -61
  431. package/src/tools/interactions/get-page-source.ts +0 -65
  432. package/src/tools/interactions/get-text.ts +0 -50
  433. package/src/tools/interactions/long-press.ts +0 -120
  434. package/src/tools/interactions/screenshot.ts +0 -119
  435. package/src/tools/interactions/set-value.ts +0 -54
  436. package/src/tools/ios/boot-simulator.ts +0 -88
  437. package/src/tools/ios/install-wda.ts +0 -277
  438. package/src/tools/ios/setup-wda.ts +0 -217
  439. package/src/tools/navigations/scroll-to-element.ts +0 -198
  440. package/src/tools/navigations/scroll.ts +0 -113
  441. package/src/tools/navigations/swipe.ts +0 -368
  442. package/src/tools/session/create-session.ts +0 -379
  443. package/src/tools/session/delete-session.ts +0 -56
  444. package/src/tools/session/select-device.ts +0 -326
  445. package/src/tools/session/select-platform.ts +0 -250
  446. package/src/tools/test-generation/generate-tests.ts +0 -48
  447. package/src/tools/test-generation/locators.ts +0 -101
  448. package/src/types/appium-ios-device.d.ts +0 -8
  449. package/src/types/appium-xcuitest-driver.d.ts +0 -5
  450. package/src/ui/mcp-ui-utils.ts +0 -1630
  451. package/tsconfig.json +0 -15
  452. package/tsconfig.tsbuildinfo +0 -1
@@ -1,217 +0,0 @@
1
- /**
2
- * Tool to download and setup WebDriverAgent (WDA) for iOS simulators
3
- */
4
- import { z } from 'zod';
5
- import { exec } from 'child_process';
6
- import { promisify } from 'util';
7
- import path from 'path';
8
- import { access, mkdir, unlink } from 'fs/promises';
9
- import { constants, createWriteStream } from 'fs';
10
- import { pipeline } from 'stream/promises';
11
- import os from 'os';
12
- import axios from 'axios';
13
- import log from '../../logger.js';
14
-
15
- const execAsync = promisify(exec);
16
-
17
- function cachePath(folder: string): string {
18
- return path.join(os.homedir(), '.cache', 'appium-mcp', folder);
19
- }
20
-
21
- async function getLatestWDAVersion(): Promise<string> {
22
- try {
23
- const response = await axios.get(
24
- 'https://api.github.com/repos/appium/WebDriverAgent/releases/latest',
25
- {
26
- headers: {
27
- 'User-Agent': 'mcp-appium',
28
- Accept: 'application/vnd.github.v3+json',
29
- },
30
- }
31
- );
32
-
33
- const release = response.data;
34
- if (release.tag_name) {
35
- return release.tag_name.replace(/^v/, '');
36
- } else {
37
- throw new Error('No tag_name found in release data');
38
- }
39
- } catch (error: any) {
40
- if (error.response) {
41
- throw new Error(
42
- `Failed to fetch WDA version: ${error.response.status} ${error.response.statusText}`
43
- );
44
- }
45
- throw error;
46
- }
47
- }
48
-
49
- async function cleanupFile(path: string): Promise<void> {
50
- try {
51
- await access(path, constants.F_OK);
52
- await unlink(path);
53
- } catch {
54
- // File doesn't exist or already deleted
55
- }
56
- }
57
-
58
- async function downloadFile(url: string, destPath: string): Promise<void> {
59
- try {
60
- const response = await axios({
61
- url,
62
- method: 'GET',
63
- responseType: 'stream',
64
- maxRedirects: 5,
65
- });
66
-
67
- const writer = createWriteStream(destPath);
68
-
69
- try {
70
- await pipeline(response.data, writer);
71
- } catch (streamError: any) {
72
- writer.close();
73
- await cleanupFile(destPath);
74
- throw streamError;
75
- }
76
- } catch (error: any) {
77
- // Clean up partial file on error
78
- await cleanupFile(destPath);
79
-
80
- if (error.response) {
81
- throw new Error(
82
- `Failed to download: ${error.response.status} ${error.response.statusText}`
83
- );
84
- }
85
- throw error;
86
- }
87
- }
88
-
89
- async function unzipFile(zipPath: string, destDir: string): Promise<void> {
90
- await execAsync(`unzip -q "${zipPath}" -d "${destDir}"`);
91
- }
92
-
93
- export default function setupWDA(server: any): void {
94
- server.addTool({
95
- name: 'setup_wda',
96
- description: `Download and setup prebuilt WebDriverAgent (WDA) for iOS/tvOS simulators only (not for real devices).
97
- This significantly speeds up the first Appium session by avoiding the need to build WDA from source.
98
- Downloads the latest version from GitHub and caches it locally.
99
- `,
100
- parameters: z.object({
101
- platform: z
102
- .enum(['ios', 'tvos'])
103
- .optional()
104
- .default('ios')
105
- .describe(
106
- `The simulator platform to download WDA for.
107
- Default is "ios".
108
- Use "tvos" for Apple TV simulators.
109
- Note: This tool only works with simulators, not real devices.`
110
- ),
111
- }),
112
- annotations: {
113
- readOnlyHint: false,
114
- openWorldHint: false,
115
- },
116
- execute: async (args: any, context: any): Promise<any> => {
117
- try {
118
- const { platform = 'ios' } = args;
119
-
120
- // Verify it's a macOS system
121
- if (process.platform !== 'darwin') {
122
- throw new Error(
123
- 'WebDriverAgent setup is only supported on macOS systems'
124
- );
125
- }
126
-
127
- // Get the architecture
128
- const arch = os.arch();
129
- const archStr = arch === 'arm64' ? 'arm64' : 'x86_64';
130
-
131
- // Fetch latest WDA version from GitHub
132
- const wdaVersion = await getLatestWDAVersion();
133
-
134
- // Create cache directory structure
135
- const versionCacheDir = cachePath(`wda/${wdaVersion}`);
136
- const extractDir = path.join(versionCacheDir, 'extracted');
137
- const zipPath = path.join(
138
- versionCacheDir,
139
- `WebDriverAgentRunner-Build-Sim-${archStr}.zip`
140
- );
141
- const appPath = path.join(
142
- extractDir,
143
- 'WebDriverAgentRunner-Runner.app'
144
- );
145
-
146
- // Check if this version is already cached
147
- try {
148
- await access(appPath, constants.F_OK);
149
- return {
150
- content: [
151
- {
152
- type: 'text',
153
- text: `✅ WebDriverAgent is already set up!\n\nVersion: ${wdaVersion}\nPlatform: ${platform} (simulator only)\nArchitecture: ${archStr}\nLocation: ${appPath}\nCache: ~/.cache/appium-mcp/wda/${wdaVersion}\n\n🚀 You can now create an Appium session without needing to build WDA from source.`,
154
- },
155
- ],
156
- };
157
- } catch {
158
- // File doesn't exist, continue to download
159
- }
160
-
161
- // Version not cached, download it
162
- const startTime = Date.now();
163
-
164
- // Create cache directories
165
- await mkdir(versionCacheDir, { recursive: true });
166
- await mkdir(extractDir, { recursive: true });
167
-
168
- // Download URL - use architecture-specific filename
169
- const downloadUrl = `https://github.com/appium/WebDriverAgent/releases/download/v${wdaVersion}/WebDriverAgentRunner-Build-Sim-${archStr}.zip`;
170
-
171
- log.info(
172
- `Downloading prebuilt WDA v${wdaVersion} for ${platform} simulator...`
173
- );
174
-
175
- await downloadFile(downloadUrl, zipPath);
176
-
177
- log.info('Extracting WebDriverAgent...');
178
- await unzipFile(zipPath, extractDir);
179
-
180
- const duration = ((Date.now() - startTime) / 1000).toFixed(1);
181
-
182
- // Verify extraction
183
- try {
184
- await access(appPath, constants.F_OK);
185
- } catch {
186
- throw new Error(
187
- 'WebDriverAgent extraction failed - app bundle not found'
188
- );
189
- }
190
-
191
- return {
192
- content: [
193
- {
194
- type: 'text',
195
- text: `${JSON.stringify(
196
- {
197
- version: wdaVersion,
198
- platform,
199
- architecture: archStr,
200
- wdaAppPath: appPath,
201
- wdaCachePath: `~/.cache/appium-mcp/wda/${wdaVersion}`,
202
- simulatorOnly: true,
203
- ready: true,
204
- },
205
- null,
206
- 2
207
- )}`,
208
- },
209
- ],
210
- };
211
- } catch (error: any) {
212
- log.error('Error setting up WDA:', error);
213
- throw new Error(`Failed to setup WebDriverAgent: ${error.message}`);
214
- }
215
- },
216
- });
217
- }
@@ -1,198 +0,0 @@
1
- import { getDriver, getPlatformName } from '../../session-store.js';
2
- import { z } from 'zod';
3
-
4
- const scrollToElementSchema = z.object({
5
- strategy: z.enum([
6
- 'xpath',
7
- 'id',
8
- 'name',
9
- 'class name',
10
- 'accessibility id',
11
- 'css selector',
12
- '-android uiautomator',
13
- '-ios predicate string',
14
- '-ios class chain',
15
- ]),
16
- selector: z.string().describe('The selector to find the element'),
17
- direction: z
18
- .enum(['up', 'down'])
19
- .default('down')
20
- .describe('Direction to scroll when searching for the element'),
21
- });
22
-
23
- const getValue = (xpath: string, expression: string): string => {
24
- // Extracts the value from an XPath expression.
25
- let start = xpath.indexOf(expression) + expression.length;
26
- start = xpath.indexOf("'", start) + 1;
27
- const end = xpath.indexOf("'", start);
28
- return xpath.substring(start, end);
29
- };
30
-
31
- const transformXPath = (
32
- xpath: string
33
- ): { strategy: string; selector: string } => {
34
- // normalize xpath expression by replacing " by '
35
- xpath = xpath.replace(/"/g, "'");
36
- if (xpath.includes('@text=')) {
37
- return { strategy: 'text', selector: getValue(xpath, '@text=') };
38
- }
39
-
40
- if (xpath.includes('@content-desc=')) {
41
- return {
42
- strategy: 'description',
43
- selector: getValue(xpath, '@content-desc='),
44
- };
45
- }
46
-
47
- if (xpath.includes('contains(@text,')) {
48
- return {
49
- strategy: 'textContains',
50
- selector: getValue(xpath, 'contains(@text,'),
51
- };
52
- }
53
-
54
- if (xpath.includes('contains(@content-desc,')) {
55
- return {
56
- strategy: 'descriptionContains',
57
- selector: getValue(xpath, 'contains(@content-desc,'),
58
- };
59
- }
60
-
61
- throw new Error(
62
- `Unsupported XPath expression: ${xpath}. Supported expressions are: @text, @content-desc, contains(@text, ...), contains(@content-desc, ...)`
63
- );
64
- };
65
-
66
- const transformLocator = (
67
- strategy: string,
68
- selector: string
69
- ): { strategy: string; selector: string } => {
70
- if (strategy === 'id') {
71
- return { strategy: 'resourceId', selector };
72
- }
73
- if (strategy === 'xpath') {
74
- return transformXPath(selector);
75
- }
76
- if (strategy === 'class name') {
77
- return { strategy: 'className', selector };
78
- }
79
-
80
- return { strategy, selector };
81
- };
82
-
83
- async function performAndroidScroll(
84
- driver: any,
85
- args: any,
86
- direction: string
87
- ): Promise<void> {
88
- // Use UiAutomator scroll gestures for Android
89
- const scrollDirection =
90
- direction === 'up' ? 'scrollBackward' : 'scrollForward';
91
- const scrollCommand = `new UiScrollable(new UiSelector().scrollable(true)).${scrollDirection}()`;
92
-
93
- try {
94
- await driver.findElement('-android uiautomator', scrollCommand);
95
- } catch (error) {
96
- // If UiScrollable fails, try touch actions
97
- const { width, height } = await driver.getWindowRect();
98
- const startX = width / 2;
99
- const startY = direction === 'up' ? height * 0.3 : height * 0.7;
100
- const endY = direction === 'up' ? height * 0.7 : height * 0.3;
101
-
102
- await driver.touchAction([
103
- { action: 'press', x: startX, y: startY },
104
- { action: 'wait', ms: 500 },
105
- { action: 'moveTo', x: startX, y: endY },
106
- { action: 'release' },
107
- ]);
108
- }
109
- }
110
-
111
- async function performiOSScroll(driver: any, direction: string): Promise<void> {
112
- // Use iOS mobile commands for scrolling
113
- const { width, height } = await driver.getWindowRect();
114
-
115
- await driver.execute('mobile: scroll', {
116
- direction,
117
- startX: width / 2,
118
- startY: direction === 'up' ? height * 0.3 : height * 0.7,
119
- endX: width / 2,
120
- endY: direction === 'up' ? height * 0.7 : height * 0.3,
121
- });
122
- }
123
-
124
- export default function scrollToElement(server: any): void {
125
- server.addTool({
126
- name: 'appium_scroll_to_element',
127
- description: 'Scrolls the current screen till a certain element is visible',
128
- parameters: scrollToElementSchema,
129
- annotations: {
130
- readOnlyHint: false,
131
- openWorldHint: false,
132
- },
133
- execute: async (args: any, context: any): Promise<any> => {
134
- const driver = getDriver();
135
- if (!driver) {
136
- throw new Error(
137
- 'No active driver session. Please create a session first.'
138
- );
139
- }
140
-
141
- try {
142
- const platform = getPlatformName(driver);
143
-
144
- // First try to find the element directly (it might already be in viewport)
145
- try {
146
- const element = await (driver as any).findElement(
147
- args.strategy,
148
- args.selector
149
- );
150
- return {
151
- content: [
152
- {
153
- type: 'text',
154
- text: `Element ${args.selector} is already visible on screen.`,
155
- },
156
- ],
157
- };
158
- } catch (error) {
159
- const direction = args.direction || 'down';
160
- switch (platform) {
161
- case 'Android':
162
- await performAndroidScroll(driver, args, direction);
163
- break;
164
- case 'iOS':
165
- await performiOSScroll(driver, direction);
166
- break;
167
- default:
168
- throw new Error(
169
- 'Unsupported driver type. This tool only supports Android and iOS drivers.'
170
- );
171
- }
172
-
173
- const element = await (driver as any).findElement(
174
- args.strategy,
175
- args.selector
176
- );
177
- return {
178
- content: [
179
- {
180
- type: 'text',
181
- text: `Successfully scrolled found element ${args.selector} after initial scroll.`,
182
- },
183
- ],
184
- };
185
- }
186
- } catch (err: any) {
187
- return {
188
- content: [
189
- {
190
- type: 'text',
191
- text: `Failed to scroll and find element. Error: ${err.toString()}`,
192
- },
193
- ],
194
- };
195
- }
196
- },
197
- });
198
- }
@@ -1,113 +0,0 @@
1
- import { z } from 'zod';
2
- import {
3
- getDriver,
4
- getPlatformName,
5
- isRemoteDriverSession,
6
- } from '../../session-store.js';
7
- import log from '../../logger.js';
8
- import type { Client } from 'webdriver';
9
-
10
- export default function scroll(server: any): void {
11
- server.addTool({
12
- name: 'appium_scroll',
13
- description: 'Scrolls the current screen up or down',
14
- parameters: z.object({
15
- direction: z
16
- .enum(['up', 'down'])
17
- .default('down')
18
- .describe('Scroll direction'),
19
- }),
20
- annotations: {
21
- readOnlyHint: false,
22
- openWorldHint: false,
23
- },
24
- execute: async (args: any, context: any): Promise<any> => {
25
- const driver = getDriver();
26
- if (!driver) {
27
- throw new Error(
28
- 'No active driver session. Please create a session first.'
29
- );
30
- }
31
-
32
- try {
33
- const { width, height } = await (driver as any).getWindowRect();
34
- log.info('Device screen size:', { width, height });
35
- const startX = Math.floor(width / 2);
36
- // calculate start and end Y positions for scrolling depending on the direction
37
- // startY is at 80% of the height, endY is at 20% of the height for downward scroll
38
- // and vice versa for upward scroll
39
- // this ensures that the scroll starts from the bottom of the screen and goes to the top
40
- // or starts from the top and goes to the bottom
41
- // Adjust these percentages as needed for your specific use case
42
- const startY =
43
- args.direction === 'down'
44
- ? Math.floor(height * 0.8)
45
- : Math.floor(height * 0.2);
46
- const endY =
47
- args.direction === 'down'
48
- ? Math.floor(height * 0.2)
49
- : Math.floor(height * 0.8);
50
-
51
- log.info('Going to scroll from:', { startX, startY });
52
- log.info('Going to scroll to:', { startX, endY });
53
-
54
- if (getPlatformName(driver) === 'Android') {
55
- await (driver as any).performActions([
56
- {
57
- type: 'pointer',
58
- id: 'finger1',
59
- parameters: { pointerType: 'touch' },
60
- actions: [
61
- { type: 'pointerMove', duration: 0, x: startX, y: startY },
62
- { type: 'pointerDown', button: 0 },
63
- { type: 'pause', duration: 250 },
64
- { type: 'pointerMove', duration: 600, x: startX, y: endY },
65
- { type: 'pointerUp', button: 0 },
66
- ],
67
- },
68
- ]);
69
- log.info('Scroll action completed successfully.');
70
- } else if (getPlatformName(driver) === 'iOS') {
71
- const _ok = isRemoteDriverSession(driver)
72
- ? await (driver as Client).executeScript('mobile: scroll', [
73
- {
74
- direction: args.direction,
75
- startX,
76
- startY,
77
- endX: startX,
78
- endY,
79
- },
80
- ])
81
- : await (driver as any).execute('mobile: scroll', {
82
- direction: args.direction,
83
- startX,
84
- startY,
85
- endX: startX,
86
- endY,
87
- });
88
- } else {
89
- throw new Error(
90
- `Unsupported platform: ${getPlatformName(driver)}. Only Android and iOS are supported.`
91
- );
92
- }
93
- return {
94
- content: [
95
- {
96
- type: 'text',
97
- text: `Scrolled ${args.direction} successfully.`,
98
- },
99
- ],
100
- };
101
- } catch (err: any) {
102
- return {
103
- content: [
104
- {
105
- type: 'text',
106
- text: `Failed to scroll ${args.direction}. Error: ${err.toString()}`,
107
- },
108
- ],
109
- };
110
- }
111
- },
112
- });
113
- }