appium-mcp 1.8.10 → 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 +13 -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,159 +0,0 @@
1
- /**
2
- * Tools Registration Module
3
- *
4
- * This file registers all available MCP tools with the server.
5
- *
6
- * ADDING A NEW TOOL:
7
- * 1. Create your tool file in src/tools/
8
- * 2. Import it at the top of this file
9
- * 3. Call it in the registerTools function below
10
- *
11
- * See docs/CONTRIBUTING.md for detailed instructions.
12
- * See src/tools/README.md for tool organization.
13
- * See src/tools/metadata/README.md for YAML metadata approach.
14
- */
15
- import { FastMCP } from 'fastmcp';
16
- import log from '../logger.js';
17
- import answerAppium from './documentation/answer-appium.js';
18
- import createSession from './session/create-session.js';
19
- import deleteSession from './session/delete-session.js';
20
- import generateLocators from './test-generation/locators.js';
21
- import selectPlatform from './session/select-platform.js';
22
- import selectDevice from './session/select-device.js';
23
- import bootSimulator from './ios/boot-simulator.js';
24
- import setupWDA from './ios/setup-wda.js';
25
- import installWDA from './ios/install-wda.js';
26
- import generateTest from './test-generation/generate-tests.js';
27
- import scroll from './navigations/scroll.js';
28
- import scrollToElement from './navigations/scroll-to-element.js';
29
- import swipe from './navigations/swipe.js';
30
- import findElement from './interactions/find.js';
31
- import clickElement from './interactions/click.js';
32
- import doubleTap from './interactions/double-tap.js';
33
- import longPress from './interactions/long-press.js';
34
- import dragAndDrop from './interactions/drag-and-drop.js';
35
- import setValue from './interactions/set-value.js';
36
- import getText from './interactions/get-text.js';
37
- import getPageSource from './interactions/get-page-source.js';
38
- import screenshot from './interactions/screenshot.js';
39
- import activateApp from './app-management/activate-app.js';
40
- import installApp from './app-management/install-app.js';
41
- import uninstallApp from './app-management/uninstall-app.js';
42
- import terminateApp from './app-management/terminate-app.js';
43
- import listApps from './app-management/list-apps.js';
44
- import getContexts from './context/get-contexts.js';
45
- import switchContext from './context/switch-context.js';
46
-
47
- export default function registerTools(server: FastMCP): void {
48
- // Wrap addTool to inject logging around tool execution
49
- const originalAddTool = (server as any).addTool.bind(server);
50
- (server as any).addTool = (toolDef: any) => {
51
- const toolName = toolDef?.name ?? 'unknown_tool';
52
- const originalExecute = toolDef?.execute;
53
- if (typeof originalExecute !== 'function') {
54
- return originalAddTool(toolDef);
55
- }
56
- const SENSITIVE_KEYS = [
57
- 'password',
58
- 'token',
59
- 'accessToken',
60
- 'authorization',
61
- 'apiKey',
62
- 'apikey',
63
- 'secret',
64
- 'clientSecret',
65
- ];
66
- const redactArgs = (obj: any) => {
67
- try {
68
- return JSON.parse(
69
- JSON.stringify(obj, (key, value) => {
70
- if (
71
- key &&
72
- SENSITIVE_KEYS.some((k) => key.toLowerCase().includes(k))
73
- ) {
74
- return '[REDACTED]';
75
- }
76
- // Avoid logging extremely large buffers/strings
77
- if (value && typeof value === 'string' && value.length > 2000) {
78
- return `[string:${value.length}]`;
79
- }
80
- if (
81
- value &&
82
- typeof Buffer !== 'undefined' &&
83
- Buffer.isBuffer(value)
84
- ) {
85
- return `[buffer:${(value as Buffer).length}]`;
86
- }
87
- return value;
88
- })
89
- );
90
- } catch {
91
- return '[Unserializable args]';
92
- }
93
- };
94
- return originalAddTool({
95
- ...toolDef,
96
- execute: async (args: any, context: any) => {
97
- const start = Date.now();
98
- log.info(`[TOOL START] ${toolName}`, redactArgs(args));
99
- try {
100
- const result = await originalExecute(args, context);
101
- const duration = Date.now() - start;
102
- log.info(`[TOOL END] ${toolName} (${duration}ms)`);
103
- return result;
104
- } catch (err: any) {
105
- const duration = Date.now() - start;
106
- const msg = err?.stack || err?.message || String(err);
107
- log.error(`[TOOL ERROR] ${toolName} (${duration}ms): ${msg}`);
108
- throw err;
109
- }
110
- },
111
- });
112
- };
113
-
114
- // Session Management
115
- selectPlatform(server);
116
- selectDevice(server);
117
- createSession(server);
118
- deleteSession(server);
119
-
120
- // iOS Setup
121
- bootSimulator(server);
122
- setupWDA(server);
123
- installWDA(server);
124
-
125
- // Navigation
126
- scroll(server);
127
- scrollToElement(server);
128
- swipe(server);
129
-
130
- // Element Interactions
131
- findElement(server);
132
- clickElement(server);
133
- doubleTap(server);
134
- longPress(server);
135
- dragAndDrop(server);
136
- setValue(server);
137
- getText(server);
138
- getPageSource(server);
139
- screenshot(server);
140
-
141
- // App Management
142
- activateApp(server);
143
- installApp(server);
144
- uninstallApp(server);
145
- terminateApp(server);
146
- listApps(server);
147
-
148
- // Context Management
149
- getContexts(server);
150
- switchContext(server);
151
-
152
- // Test Generation
153
- generateLocators(server);
154
- generateTest(server);
155
-
156
- // Documentation
157
- answerAppium(server);
158
- log.info('All tools registered');
159
- }
@@ -1,50 +0,0 @@
1
- import { FastMCP } from 'fastmcp';
2
- import { z } from 'zod';
3
- import { getDriver, isRemoteDriverSession } from '../../session-store.js';
4
- import { elementUUIDScheme } from '../../schema.js';
5
- import type { Client } from 'webdriver';
6
-
7
- export default function generateTest(server: FastMCP): void {
8
- const clickActionSchema = z.object({
9
- elementUUID: elementUUIDScheme,
10
- });
11
-
12
- server.addTool({
13
- name: 'appium_click',
14
- description: 'Click on an element',
15
- parameters: clickActionSchema,
16
- annotations: {
17
- readOnlyHint: false,
18
- openWorldHint: false,
19
- },
20
- execute: async (args: any, context: any): Promise<any> => {
21
- const driver = getDriver();
22
- if (!driver) {
23
- throw new Error('No driver found');
24
- }
25
-
26
- try {
27
- const _ok = isRemoteDriverSession(driver)
28
- ? await (driver as Client).elementClick(args.elementUUID)
29
- : await (driver as any).click(args.elementUUID);
30
- return {
31
- content: [
32
- {
33
- type: 'text',
34
- text: `Successfully clicked on element ${args.elementUUID}`,
35
- },
36
- ],
37
- };
38
- } catch (err: any) {
39
- return {
40
- content: [
41
- {
42
- type: 'text',
43
- text: `Failed to click on element ${args.elementUUID}. err: ${err.toString()}`,
44
- },
45
- ],
46
- };
47
- }
48
- },
49
- });
50
- }
@@ -1,99 +0,0 @@
1
- import { FastMCP } from 'fastmcp';
2
- import { z } from 'zod';
3
- import {
4
- getDriver,
5
- getPlatformName,
6
- isRemoteDriverSession,
7
- } from '../../session-store.js';
8
- import { elementUUIDScheme } from '../../schema.js';
9
- import type { Client } from 'webdriver';
10
-
11
- export default function doubleTap(server: FastMCP): void {
12
- const doubleTapActionSchema = z.object({
13
- elementUUID: elementUUIDScheme,
14
- });
15
-
16
- server.addTool({
17
- name: 'appium_double_tap',
18
- description: 'Perform double tap on an element',
19
- parameters: doubleTapActionSchema,
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('No driver found');
28
- }
29
-
30
- try {
31
- const platform = getPlatformName(driver);
32
-
33
- if (platform === 'Android') {
34
- // Get element location for Android double tap
35
- const element = await (driver as any).findElement(
36
- 'id',
37
- args.elementUUID
38
- );
39
- const location = await element.getLocation();
40
- const size = await element.getSize();
41
-
42
- // Calculate center coordinates
43
- const x = location.x + size.width / 2;
44
- const y = location.y + size.height / 2;
45
-
46
- // Perform double tap using performActions
47
- await (driver as any).performActions([
48
- {
49
- type: 'pointer',
50
- id: 'finger1',
51
- parameters: { pointerType: 'touch' },
52
- actions: [
53
- { type: 'pointerMove', duration: 0, x, y },
54
- { type: 'pointerDown', button: 0 },
55
- { type: 'pause', duration: 50 },
56
- { type: 'pointerUp', button: 0 },
57
- { type: 'pause', duration: 100 },
58
- { type: 'pointerDown', button: 0 },
59
- { type: 'pause', duration: 50 },
60
- { type: 'pointerUp', button: 0 },
61
- ],
62
- },
63
- ]);
64
- } else if (platform === 'iOS') {
65
- // Use iOS mobile: doubleTap execute method
66
- const _ok = isRemoteDriverSession(driver)
67
- ? await (driver as Client).executeScript('mobile: doubleTap', [
68
- { elementId: args.elementUUID },
69
- ])
70
- : await (driver as any).execute('mobile: doubleTap', [
71
- { elementId: args.elementUUID },
72
- ]);
73
- } else {
74
- throw new Error(
75
- `Unsupported platform: ${platform}. Only Android and iOS are supported.`
76
- );
77
- }
78
-
79
- return {
80
- content: [
81
- {
82
- type: 'text',
83
- text: `Successfully performed double tap on element ${args.elementUUID}`,
84
- },
85
- ],
86
- };
87
- } catch (err: any) {
88
- return {
89
- content: [
90
- {
91
- type: 'text',
92
- text: `Failed to perform double tap on element ${args.elementUUID}. Error: ${err.toString()}`,
93
- },
94
- ],
95
- };
96
- }
97
- },
98
- });
99
- }
@@ -1,238 +0,0 @@
1
- import { FastMCP } from 'fastmcp';
2
- import { z } from 'zod';
3
- import {
4
- getDriver,
5
- getPlatformName,
6
- isRemoteDriverSession,
7
- } from '../../session-store.js';
8
- import { elementUUIDScheme } from '../../schema.js';
9
- import type { Client } from 'webdriver';
10
-
11
- const DROP_PAUSE_DURATION_MS = 150;
12
-
13
- async function performDragAndDrop(
14
- driver: any,
15
- startX: number,
16
- startY: number,
17
- endX: number,
18
- endY: number,
19
- duration: number,
20
- longPressDuration: number
21
- ): Promise<void> {
22
- await driver.performActions([
23
- {
24
- type: 'pointer',
25
- id: 'finger1',
26
- parameters: { pointerType: 'touch' },
27
- actions: [
28
- { type: 'pointerMove', duration: 0, x: startX, y: startY },
29
- { type: 'pointerDown', button: 0 },
30
- { type: 'pause', duration: longPressDuration },
31
- { type: 'pointerMove', duration, x: endX, y: endY },
32
- { type: 'pause', duration: DROP_PAUSE_DURATION_MS },
33
- { type: 'pointerUp', button: 0 },
34
- ],
35
- },
36
- ]);
37
- }
38
-
39
- export default function dragAndDrop(server: FastMCP): void {
40
- const dragAndDropSchema = z.object({
41
- sourceElementUUID: elementUUIDScheme
42
- .trim()
43
- .min(1)
44
- .optional()
45
- .describe(
46
- 'UUID of the source element to drag from. Either sourceElementUUID or sourceX/sourceY must be provided.'
47
- ),
48
- sourceX: z
49
- .number()
50
- .int()
51
- .min(0)
52
- .optional()
53
- .describe(
54
- 'Starting X coordinate. Required if sourceElementUUID is not provided.'
55
- ),
56
- sourceY: z
57
- .number()
58
- .int()
59
- .min(0)
60
- .optional()
61
- .describe(
62
- 'Starting Y coordinate. Required if sourceElementUUID is not provided.'
63
- ),
64
- targetElementUUID: elementUUIDScheme
65
- .trim()
66
- .min(1)
67
- .optional()
68
- .describe(
69
- 'UUID of the target element to drop on. Either targetElementUUID or targetX/targetY must be provided.'
70
- ),
71
- targetX: z
72
- .number()
73
- .int()
74
- .min(0)
75
- .optional()
76
- .describe(
77
- 'Ending X coordinate. Required if targetElementUUID is not provided.'
78
- ),
79
- targetY: z
80
- .number()
81
- .int()
82
- .min(0)
83
- .optional()
84
- .describe(
85
- 'Ending Y coordinate. Required if targetElementUUID is not provided.'
86
- ),
87
- duration: z
88
- .number()
89
- .int()
90
- .min(100)
91
- .max(5000)
92
- .default(1200)
93
- .optional()
94
- .describe(
95
- 'Duration of the drag movement in milliseconds. Default is 1200ms.'
96
- ),
97
- longPressDuration: z
98
- .number()
99
- .int()
100
- .min(400)
101
- .max(2000)
102
- .default(600)
103
- .optional()
104
- .describe(
105
- 'Duration of the long press before dragging in milliseconds. Default is 600ms.'
106
- ),
107
- });
108
-
109
- server.addTool({
110
- name: 'appium_drag_and_drop',
111
- description: `Perform a drag and drop gesture from a source location to a target location.
112
- The gesture includes:
113
- 1. Long press (default 600ms, configurable) on the source to initiate drag mode
114
- 2. While holding, drag to the target location
115
- 3. Release at the target to complete the drop
116
-
117
- Supports four modes:
118
- 1. Element to Element: Drag from one element to another element
119
- 2. Element to Coordinates: Drag from an element to specific coordinates
120
- 3. Coordinates to Element: Drag from coordinates to an element
121
- 4. Coordinates to Coordinates: Drag from coordinates to coordinates
122
-
123
- This is useful for reordering lists, moving items, drag-to-delete, and other drag interactions.`,
124
- parameters: dragAndDropSchema,
125
- annotations: {
126
- readOnlyHint: false,
127
- openWorldHint: false,
128
- },
129
- execute: async (args: any, context: any): Promise<any> => {
130
- const driver = getDriver();
131
- if (!driver) {
132
- throw new Error('No driver found');
133
- }
134
-
135
- try {
136
- const platform = getPlatformName(driver);
137
- const duration = args.duration || 1200;
138
- const longPressDuration = args.longPressDuration || 600;
139
-
140
- if (
141
- !args.sourceElementUUID &&
142
- (args.sourceX === undefined || args.sourceY === undefined)
143
- ) {
144
- throw new Error(
145
- 'Either sourceElementUUID or both sourceX and sourceY must be provided.'
146
- );
147
- }
148
-
149
- if (
150
- !args.targetElementUUID &&
151
- (args.targetX === undefined || args.targetY === undefined)
152
- ) {
153
- throw new Error(
154
- 'Either targetElementUUID or both targetX and targetY must be provided.'
155
- );
156
- }
157
-
158
- let startX: number, startY: number;
159
- let endX: number, endY: number;
160
-
161
- if (args.sourceElementUUID) {
162
- const rect = await (driver as any).getElementRect(
163
- args.sourceElementUUID
164
- );
165
- startX = Math.floor(rect.x + rect.width / 2);
166
- startY = Math.floor(rect.y + rect.height / 2);
167
- } else {
168
- startX = args.sourceX;
169
- startY = args.sourceY;
170
- }
171
-
172
- if (args.targetElementUUID) {
173
- const rect = await (driver as any).getElementRect(
174
- args.targetElementUUID
175
- );
176
- endX = Math.floor(rect.x + rect.width / 2);
177
- endY = Math.floor(rect.y + rect.height / 2);
178
- } else {
179
- endX = args.targetX;
180
- endY = args.targetY;
181
- }
182
-
183
- const { width, height } = await (driver as any).getWindowRect();
184
- if (startX < 0 || startX >= width || startY < 0 || startY >= height) {
185
- throw new Error(
186
- `Source coordinates (${startX}, ${startY}) are out of screen bounds (${width}x${height})`
187
- );
188
- }
189
- if (endX < 0 || endX >= width || endY < 0 || endY >= height) {
190
- throw new Error(
191
- `Target coordinates (${endX}, ${endY}) are out of screen bounds (${width}x${height})`
192
- );
193
- }
194
-
195
- if (platform === 'Android' || platform === 'iOS') {
196
- await performDragAndDrop(
197
- driver,
198
- startX,
199
- startY,
200
- endX,
201
- endY,
202
- duration,
203
- longPressDuration
204
- );
205
- } else {
206
- throw new Error(
207
- `Unsupported platform: ${platform}. Only Android and iOS are supported.`
208
- );
209
- }
210
-
211
- const sourceDesc = args.sourceElementUUID
212
- ? `element ${args.sourceElementUUID}`
213
- : `coordinates (${startX}, ${startY})`;
214
- const targetDesc = args.targetElementUUID
215
- ? `element ${args.targetElementUUID}`
216
- : `coordinates (${endX}, ${endY})`;
217
-
218
- return {
219
- content: [
220
- {
221
- type: 'text',
222
- text: `Successfully performed drag and drop from ${sourceDesc} to ${targetDesc}.`,
223
- },
224
- ],
225
- };
226
- } catch (err: any) {
227
- return {
228
- content: [
229
- {
230
- type: 'text',
231
- text: `Failed to perform drag and drop. Error: ${err.toString()}`,
232
- },
233
- ],
234
- };
235
- }
236
- },
237
- });
238
- }
@@ -1,61 +0,0 @@
1
- import { FastMCP } from 'fastmcp';
2
- import { z } from 'zod';
3
- import { getDriver } from '../../session-store.js';
4
-
5
- export const findElementSchema = z.object({
6
- strategy: z.enum([
7
- 'xpath',
8
- 'id',
9
- 'name',
10
- 'class name',
11
- 'accessibility id',
12
- 'css selector',
13
- '-android uiautomator',
14
- '-ios predicate string',
15
- '-ios class chain',
16
- ]),
17
- selector: z.string().describe('The selector to find the element'),
18
- });
19
-
20
- export default function findElement(server: FastMCP): void {
21
- server.addTool({
22
- name: 'appium_find_element',
23
- description:
24
- 'Find an element with the given strategy and selector which will return a uuid that can be used while interaction',
25
- parameters: findElementSchema,
26
- annotations: {
27
- readOnlyHint: false,
28
- openWorldHint: false,
29
- },
30
- execute: async (args: any, context: any): Promise<any> => {
31
- const driver = getDriver();
32
- if (!driver) {
33
- throw new Error('No driver found');
34
- }
35
-
36
- try {
37
- const element = await (driver as any).findElement(
38
- args.strategy,
39
- args.selector
40
- );
41
- return {
42
- content: [
43
- {
44
- type: 'text',
45
- text: `Successfully found element ${args.selector} with strategy ${args.strategy}. Element id ${element.ELEMENT}`,
46
- },
47
- ],
48
- };
49
- } catch (err: any) {
50
- return {
51
- content: [
52
- {
53
- type: 'text',
54
- text: `Failed to find element ${args.selector} with strategy ${args.strategy}. err: ${err.toString()}`,
55
- },
56
- ],
57
- };
58
- }
59
- },
60
- });
61
- }
@@ -1,65 +0,0 @@
1
- import { FastMCP } from 'fastmcp';
2
- import { z } from 'zod';
3
- import { getDriver } from '../../session-store.js';
4
- import {
5
- createUIResource,
6
- createPageSourceInspectorUI,
7
- addUIResourceToResponse,
8
- } from '../../ui/mcp-ui-utils.js';
9
-
10
- export default function getPageSource(server: FastMCP): void {
11
- server.addTool({
12
- name: 'appium_get_page_source',
13
- description: 'Get the page source (XML) from the current screen',
14
- parameters: z.object({}),
15
- annotations: {
16
- readOnlyHint: true,
17
- openWorldHint: false,
18
- },
19
- execute: async (args: any, context: any): Promise<any> => {
20
- const driver = getDriver();
21
- if (!driver) {
22
- throw new Error('No driver found. Please create a session first.');
23
- }
24
-
25
- try {
26
- const pageSource = await (driver as any).getPageSource();
27
-
28
- if (!pageSource) {
29
- throw new Error('Page source is empty or null');
30
- }
31
-
32
- const textResponse = {
33
- content: [
34
- {
35
- type: 'text',
36
- text:
37
- 'Page source retrieved successfully: \n' +
38
- '```xml ' +
39
- pageSource +
40
- '```',
41
- },
42
- ],
43
- };
44
-
45
- // Add interactive page source inspector UI
46
- const uiResource = createUIResource(
47
- `ui://appium-mcp/page-source-inspector/${Date.now()}`,
48
- createPageSourceInspectorUI(pageSource)
49
- );
50
-
51
- return addUIResourceToResponse(textResponse, uiResource);
52
- } catch (err: any) {
53
- return {
54
- content: [
55
- {
56
- type: 'text',
57
- text: `Failed to get page source. Error: ${err.toString()}`,
58
- },
59
- ],
60
- isError: true,
61
- };
62
- }
63
- },
64
- });
65
- }