appium-mcp 1.1.10 → 1.1.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 (158) hide show
  1. package/.github/workflows/publish-mcp.yml +53 -0
  2. package/CHANGELOG.md +16 -0
  3. package/README.md +85 -36
  4. package/dist/devicemanager/adb-manager.js +1 -1
  5. package/dist/devicemanager/adb-manager.js.map +1 -1
  6. package/dist/devicemanager/ios-manager.js +1 -1
  7. package/dist/devicemanager/ios-manager.js.map +1 -1
  8. package/dist/index.js +1 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/locators/generate-all-locators.js +1 -1
  11. package/dist/locators/generate-all-locators.js.map +1 -1
  12. package/dist/locators/locator-generation.js +1 -1
  13. package/dist/locators/locator-generation.js.map +1 -1
  14. package/dist/logger.js.map +1 -0
  15. package/dist/resources/index.js +1 -1
  16. package/dist/resources/index.js.map +1 -1
  17. package/dist/server.js +2 -2
  18. package/dist/server.js.map +1 -1
  19. package/dist/{tools/session-store.js → session-store.js} +1 -1
  20. package/dist/session-store.js.map +1 -0
  21. package/dist/tools/{interactions → app-management}/activate-app.js +1 -1
  22. package/dist/tools/app-management/activate-app.js.map +1 -0
  23. package/dist/tools/{interactions → app-management}/install-app.js +1 -1
  24. package/dist/tools/app-management/install-app.js.map +1 -0
  25. package/dist/tools/{interactions → app-management}/list-apps.js +1 -1
  26. package/dist/tools/app-management/list-apps.js.map +1 -0
  27. package/dist/tools/{interactions → app-management}/terminate-app.js +1 -1
  28. package/dist/tools/app-management/terminate-app.js.map +1 -0
  29. package/dist/tools/{interactions → app-management}/uninstall-app.js +1 -1
  30. package/dist/tools/app-management/uninstall-app.js.map +1 -0
  31. package/dist/tools/{answer-appium.js → documentation/answer-appium.js} +2 -2
  32. package/dist/tools/documentation/answer-appium.js.map +1 -0
  33. package/dist/tools/documentation/index.js +1 -1
  34. package/dist/tools/documentation/index.js.map +1 -1
  35. package/dist/tools/documentation/reasoning-rag.js +1 -1
  36. package/dist/tools/documentation/reasoning-rag.js.map +1 -1
  37. package/dist/tools/documentation/sentence-transformers-embeddings.js +1 -1
  38. package/dist/tools/documentation/sentence-transformers-embeddings.js.map +1 -1
  39. package/dist/tools/documentation/simple-pdf-indexer.js +1 -1
  40. package/dist/tools/documentation/simple-pdf-indexer.js.map +1 -1
  41. package/dist/tools/index.js +34 -27
  42. package/dist/tools/index.js.map +1 -1
  43. package/dist/tools/interactions/click.js +1 -1
  44. package/dist/tools/interactions/click.js.map +1 -1
  45. package/dist/tools/interactions/double-tap.js +1 -1
  46. package/dist/tools/interactions/double-tap.js.map +1 -1
  47. package/dist/tools/interactions/find.js +1 -1
  48. package/dist/tools/interactions/find.js.map +1 -1
  49. package/dist/tools/interactions/get-page-source.js +1 -1
  50. package/dist/tools/interactions/get-page-source.js.map +1 -1
  51. package/dist/tools/interactions/get-text.js +1 -1
  52. package/dist/tools/interactions/get-text.js.map +1 -1
  53. package/dist/tools/interactions/screenshot.js +1 -1
  54. package/dist/tools/interactions/screenshot.js.map +1 -1
  55. package/dist/tools/interactions/set-value.js +1 -1
  56. package/dist/tools/interactions/set-value.js.map +1 -1
  57. package/dist/tools/{boot-simulator.js → ios/boot-simulator.js} +2 -2
  58. package/dist/tools/ios/boot-simulator.js.map +1 -0
  59. package/dist/tools/{install-wda.js → ios/install-wda.js} +1 -1
  60. package/dist/tools/ios/install-wda.js.map +1 -0
  61. package/dist/tools/{setup-wda.js → ios/setup-wda.js} +1 -1
  62. package/dist/tools/ios/setup-wda.js.map +1 -0
  63. package/dist/tools/{scroll-to-element.js → navigations/scroll-to-element.js} +1 -1
  64. package/dist/tools/navigations/scroll-to-element.js.map +1 -0
  65. package/dist/tools/{scroll.js → navigations/scroll.js} +2 -2
  66. package/dist/tools/navigations/scroll.js.map +1 -0
  67. package/dist/tools/{create-session.js → session/create-session.js} +5 -4
  68. package/dist/tools/session/create-session.js.map +1 -0
  69. package/dist/tools/{delete-session.js → session/delete-session.js} +2 -2
  70. package/dist/tools/session/delete-session.js.map +1 -0
  71. package/dist/tools/{select-device.js → session/select-device.js} +3 -3
  72. package/dist/tools/session/select-device.js.map +1 -0
  73. package/dist/tools/{select-platform.js → session/select-platform.js} +3 -3
  74. package/dist/tools/session/select-platform.js.map +1 -0
  75. package/dist/tools/test-generation/generate-tests.js.map +1 -0
  76. package/dist/tools/{locators.js → test-generation/locators.js} +2 -2
  77. package/dist/tools/test-generation/locators.js.map +1 -0
  78. package/package.json +2 -1
  79. package/server.json +17 -0
  80. package/src/devicemanager/adb-manager.ts +1 -1
  81. package/src/devicemanager/ios-manager.ts +1 -1
  82. package/src/index.ts +1 -1
  83. package/src/locators/generate-all-locators.ts +1 -1
  84. package/src/locators/locator-generation.ts +1 -1
  85. package/src/resources/index.ts +1 -1
  86. package/src/server.ts +2 -2
  87. package/src/{tools/session-store.ts → session-store.ts} +1 -1
  88. package/src/tools/README.md +34 -29
  89. package/src/tools/{interactions → app-management}/activate-app.ts +1 -1
  90. package/src/tools/{interactions → app-management}/install-app.ts +1 -1
  91. package/src/tools/{interactions → app-management}/list-apps.ts +1 -1
  92. package/src/tools/{interactions → app-management}/terminate-app.ts +1 -1
  93. package/src/tools/{interactions → app-management}/uninstall-app.ts +1 -1
  94. package/src/tools/{answer-appium.ts → documentation/answer-appium.ts} +2 -5
  95. package/src/tools/documentation/index.ts +1 -1
  96. package/src/tools/documentation/reasoning-rag.ts +1 -1
  97. package/src/tools/documentation/sentence-transformers-embeddings.ts +1 -1
  98. package/src/tools/documentation/simple-pdf-indexer.ts +1 -1
  99. package/src/tools/index.ts +39 -27
  100. package/src/tools/interactions/click.ts +1 -1
  101. package/src/tools/interactions/double-tap.ts +1 -1
  102. package/src/tools/interactions/find.ts +1 -1
  103. package/src/tools/interactions/get-page-source.ts +1 -1
  104. package/src/tools/interactions/get-text.ts +1 -1
  105. package/src/tools/interactions/screenshot.ts +1 -1
  106. package/src/tools/interactions/set-value.ts +1 -1
  107. package/src/tools/{boot-simulator.ts → ios/boot-simulator.ts} +2 -2
  108. package/src/tools/{install-wda.ts → ios/install-wda.ts} +1 -2
  109. package/src/tools/{setup-wda.ts → ios/setup-wda.ts} +1 -1
  110. package/src/tools/{scroll-to-element.ts → navigations/scroll-to-element.ts} +1 -1
  111. package/src/tools/{scroll.ts → navigations/scroll.ts} +2 -2
  112. package/src/tools/{create-session.ts → session/create-session.ts} +5 -4
  113. package/src/tools/{delete-session.ts → session/delete-session.ts} +2 -2
  114. package/src/tools/{select-device.ts → session/select-device.ts} +3 -3
  115. package/src/tools/{select-platform.ts → session/select-platform.ts} +3 -3
  116. package/src/tools/{locators.ts → test-generation/locators.ts} +3 -3
  117. package/dist/locators/logger.js.map +0 -1
  118. package/dist/tools/answer-appium.js.map +0 -1
  119. package/dist/tools/boot-simulator.js.map +0 -1
  120. package/dist/tools/create-session.js.map +0 -1
  121. package/dist/tools/delete-session.js.map +0 -1
  122. package/dist/tools/generate-tests.js.map +0 -1
  123. package/dist/tools/install-wda.js.map +0 -1
  124. package/dist/tools/interactions/activate-app.js.map +0 -1
  125. package/dist/tools/interactions/install-app.js.map +0 -1
  126. package/dist/tools/interactions/list-apps.js.map +0 -1
  127. package/dist/tools/interactions/terminate-app.js.map +0 -1
  128. package/dist/tools/interactions/uninstall-app.js.map +0 -1
  129. package/dist/tools/locators.js.map +0 -1
  130. package/dist/tools/scroll-to-element.js.map +0 -1
  131. package/dist/tools/scroll.js.map +0 -1
  132. package/dist/tools/select-device.js.map +0 -1
  133. package/dist/tools/select-platform.js.map +0 -1
  134. package/dist/tools/session-store.js.map +0 -1
  135. package/dist/tools/setup-wda.js.map +0 -1
  136. /package/dist/{locators/logger.d.ts → logger.d.ts} +0 -0
  137. /package/dist/{locators/logger.js → logger.js} +0 -0
  138. /package/dist/{tools/session-store.d.ts → session-store.d.ts} +0 -0
  139. /package/dist/tools/{interactions → app-management}/activate-app.d.ts +0 -0
  140. /package/dist/tools/{interactions → app-management}/install-app.d.ts +0 -0
  141. /package/dist/tools/{interactions → app-management}/list-apps.d.ts +0 -0
  142. /package/dist/tools/{interactions → app-management}/terminate-app.d.ts +0 -0
  143. /package/dist/tools/{interactions → app-management}/uninstall-app.d.ts +0 -0
  144. /package/dist/tools/{answer-appium.d.ts → documentation/answer-appium.d.ts} +0 -0
  145. /package/dist/tools/{boot-simulator.d.ts → ios/boot-simulator.d.ts} +0 -0
  146. /package/dist/tools/{install-wda.d.ts → ios/install-wda.d.ts} +0 -0
  147. /package/dist/tools/{setup-wda.d.ts → ios/setup-wda.d.ts} +0 -0
  148. /package/dist/tools/{scroll-to-element.d.ts → navigations/scroll-to-element.d.ts} +0 -0
  149. /package/dist/tools/{scroll.d.ts → navigations/scroll.d.ts} +0 -0
  150. /package/dist/tools/{create-session.d.ts → session/create-session.d.ts} +0 -0
  151. /package/dist/tools/{delete-session.d.ts → session/delete-session.d.ts} +0 -0
  152. /package/dist/tools/{select-device.d.ts → session/select-device.d.ts} +0 -0
  153. /package/dist/tools/{select-platform.d.ts → session/select-platform.d.ts} +0 -0
  154. /package/dist/tools/{generate-tests.d.ts → test-generation/generate-tests.d.ts} +0 -0
  155. /package/dist/tools/{generate-tests.js → test-generation/generate-tests.js} +0 -0
  156. /package/dist/tools/{locators.d.ts → test-generation/locators.d.ts} +0 -0
  157. /package/src/{locators/logger.ts → logger.ts} +0 -0
  158. /package/src/tools/{generate-tests.ts → test-generation/generate-tests.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-device.js","sourceRoot":"","sources":["../../../src/tools/session/select-device.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * Tool to select mobile platform before creating a session
3
3
  */
4
- import { ADBManager } from '../devicemanager/adb-manager.js';
5
- import { IOSManager } from '../devicemanager/ios-manager.js';
4
+ import { ADBManager } from '../../devicemanager/adb-manager.js';
5
+ import { IOSManager } from '../../devicemanager/ios-manager.js';
6
6
  import { z } from 'zod';
7
- import log from '../locators/logger.js';
7
+ import log from '../../logger.js';
8
8
  /**
9
9
  * Get and validate Android devices
10
10
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-platform.js","sourceRoot":"","sources":["../../../src/tools/session/select-platform.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAElC;;GAEG;AACH,KAAK,UAAU,iBAAiB;IAC9B,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,CAAC;IACxD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAEhD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,oCAAoC,CAAC,OAAc;IAC1D,MAAM,UAAU,GAAG,OAAO;SACvB,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;SACxD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,+EAA+E,OAAO,CAAC,MAAM,OAAO,UAAU,2NAA2N;aAChV;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,iCAAiC,CAAC,UAAkB;IAC3D,MAAM,YAAY,GAAG,4CAA4C,UAAU,GAAG,CAAC;IAC/E,MAAM,SAAS,GACb,2BAA2B,UAAU,MAAM;QAC3C,oHAAoH;QACpH,2BAA2B;QAC3B,kDAAkD;QAClD,4CAA4C,CAAC;IAE/C,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,KAAK,YAAY,uBAAuB,SAAS,uFAAuF;aAC/I;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB;IAC1B,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAC5C,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB;IAChC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,+UAA+U;aACtV;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,aAAmC;IAEnC,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAEjE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,cAAc,GAClB,aAAa,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;QAChE,MAAM,QAAQ,GACZ,aAAa,KAAK,WAAW;YAC3B,CAAC,CAAC,uFAAuF;YACzF,CAAC,CAAC,+DAA+D,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,UAAU,cAAc,WAAW,QAAQ,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,gCAAgC,CACvC,OAAc,EACd,aAAmC;IAEnC,MAAM,UAAU,GAAG,OAAO;SACvB,GAAG,CACF,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAChB,KAAK,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/F;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,cAAc,GAClB,aAAa,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3D,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,4BAA4B,aAAa,wBAAwB,cAAc,WAAW,OAAO,CAAC,MAAM,OAAO,UAAU,2NAA2N;aAC3V;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,6BAA6B,CACpC,MAAW,EACX,aAAmC;IAEnC,MAAM,YAAY,GAAG,OAAO,aAAa,4BAA4B,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,IAAI,GAAG,CAAC;IACrG,MAAM,SAAS,GACb,eAAe,aAAa,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,OAAO;QACnE,4GAA4G;QAC5G,kCAAkC;QAClC,CAAC,aAAa,KAAK,WAAW;YAC5B,CAAC,CAAC,2BAA2B;YAC7B,CAAC,CAAC,qGAAqG,CAAC,CAAC;IAE7G,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,KAAK,YAAY,uBAAuB,SAAS,mFAAmF;aAC3I;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,8BAA8B;IAC3C,MAAM,OAAO,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAE1C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,oCAAoC,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,iCAAiC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,0BAA0B,CACvC,aAAoC;IAEpC,mBAAmB,EAAE,CAAC;IAEtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,yBAAyB,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,CAAC;IAEnD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,gCAAgC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,6BAA6B,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,MAAW;IAChD,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE;;;;OAIV;QACH,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACnB,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;iBACxB,QAAQ,CACP,sMAAsM,CACvM;YACH,aAAa,EAAE,CAAC;iBACb,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;iBAC3B,QAAQ,EAAE;iBACV,QAAQ,CACP,qGAAqG,CACtG;SACJ,CAAC;QACF,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAK;SACrB;QACD,OAAO,EAAE,KAAK,EAAE,IAAS,EAAE,OAAY,EAAgB,EAAE;YACvD,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;gBAEzC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;oBACvC,OAAO,MAAM,8BAA8B,EAAE,CAAC;gBAChD,CAAC;qBAAM,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;oBAC9B,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;oBACnC,OAAO,MAAM,0BAA0B,CAAC,aAAa,CAAC,CAAC;gBACzD,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CACb,qBAAqB,QAAQ,qCAAqC,CACnE,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,GAAG,CAAC,KAAK,CACP,qBAAqB,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CACvE,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-tests.js","sourceRoot":"","sources":["../../../src/tools/test-generation/generate-tests.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,MAAe;IAClD,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;QAClC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KAC7D,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,MAA2B,EAAE,EAAE,CACnD;QACE,iBAAiB;QACjB,qCAAqC;QACrC,2EAA2E;QAC3E,6FAA6F;QAC7F,0HAA0H;QAC1H,wDAAwD;QACxD,2DAA2D;QAC3D,2GAA2G;QAC3G,wEAAwE;QACxE,oHAAoH;QACpH,mFAAmF;QACnF,mDAAmD;QACnD,+EAA+E;QAC/E,kGAAkG;QAClG,QAAQ;QACR,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;KAChE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEf,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,uCAAuC;QACpD,UAAU,EAAE,kBAAkB;QAC9B,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAK;SACrB;QACD,OAAO,EAAE,KAAK,EAAE,IAAS,EAAE,OAAY,EAAgB,EAAE;YACvD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,YAAY,CAAC;4BACjB,KAAK,EAAE,IAAI,CAAC,KAAK;yBAClB,CAAC;qBACH;iBACF;aACF,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -10,8 +10,8 @@
10
10
  * For detailed documentation on adding tools, see docs/CONTRIBUTING.md
11
11
  */
12
12
  import { z } from 'zod';
13
- import { getDriver } from './session-store.js';
14
- import { generateAllElementLocators } from '../locators/generate-all-locators.js';
13
+ import { getDriver } from '../../session-store.js';
14
+ import { generateAllElementLocators } from '../../locators/generate-all-locators.js';
15
15
  export default function generateLocators(server) {
16
16
  server.addTool({
17
17
  name: 'generate_locators',
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locators.js","sourceRoot":"","sources":["../../../src/tools/test-generation/locators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAGrF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,MAAW;IAClD,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,yCAAyC;QACtD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,KAAK;SACrB;QACD,OAAO,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE,GAAG,EAAO,EAAgB,EAAE;YACvD,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAChC,IAAI,CAAC;gBACH,kCAAkC;gBAElC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC;oBACH,sCAAsC;oBACtC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;oBAChD,MAAM,UAAU,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;oBACpE,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;oBAClD,CAAC;oBACD,MAAM,SAAS,GAAG,UAAU,CAAC;oBAC7B,MAAM,WAAW,GAAG,0BAA0B,CAC5C,SAAS,EACT,IAAI,EACJ,UAAU,CACX,CAAC;oBACF,MAAM,oBAAoB,GAAG,0BAA0B,CACrD,SAAS,EACT,IAAI,EACJ,UAAU,EACV;wBACE,aAAa,EAAE,IAAI;qBACpB,CACF,CAAC;oBACF,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oCACnB,oBAAoB;oCACpB,OAAO,EAAE,oCAAoC;oCAC7C,WAAW,EAAE;4FAC6D;iCAC3E,CAAC;6BACH;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,UAAe,EAAE,CAAC;oBACzB,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;oBAC5C,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "appium-mcp",
3
- "version": "1.1.10",
3
+ "mcpName": "io.github.appium/appium-mcp",
4
+ "version": "1.1.12",
4
5
  "type": "module",
5
6
  "repository": {
6
7
  "type": "git",
package/server.json ADDED
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json",
3
+ "name": "io.github.appium/appium-mcp",
4
+ "title": "MCP Appium - Mobile Development and Automation Server",
5
+ "description": "Intelligent MCP server providing AI assistants with powerful tools and resources for Appium mobile automation. Supports iOS, Android, Simulator, Emulator, and Real Devices with intelligent locator generation, automated test creation, and comprehensive mobile testing capabilities.",
6
+ "version": "1.1.11",
7
+ "packages": [
8
+ {
9
+ "registryType": "npm",
10
+ "identifier": "appium-mcp",
11
+ "version": "1.1.11",
12
+ "transport": {
13
+ "type": "stdio"
14
+ }
15
+ }
16
+ ]
17
+ }
@@ -1,5 +1,5 @@
1
1
  import { ADB } from 'appium-adb';
2
- import log from '../locators/logger.js';
2
+ import log from '../logger.js';
3
3
  /**
4
4
  * Singleton ADB Manager to prevent multiple ADB instances
5
5
  * This ensures only one ADB instance per host machine
@@ -1,6 +1,6 @@
1
1
  import { Simctl } from 'node-simctl';
2
2
  import { utilities } from 'appium-ios-device';
3
- import log from '../locators/logger.js';
3
+ import log from '../logger.js';
4
4
 
5
5
  export interface IOSDevice {
6
6
  name: string;
package/src/index.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import server from './server.js';
4
- import log from './locators/logger.js';
4
+ import log from './logger.js';
5
5
 
6
6
  // Parse command line arguments
7
7
  const args = process.argv.slice(2);
@@ -5,7 +5,7 @@ import { getSuggestedLocators } from './locator-generation.js';
5
5
  import { xmlToJSON, JSONElement } from './source-parsing.js';
6
6
  import { shouldIncludeElement, FilterOptions } from './element-filter.js';
7
7
  import * as fs from 'fs';
8
- import log from './logger.js';
8
+ import log from '../logger.js';
9
9
 
10
10
  export interface ElementWithLocators {
11
11
  tagName: string;
@@ -2,7 +2,7 @@ import _ from 'lodash';
2
2
  import * as XPath from 'xpath';
3
3
  const xpathSelect = XPath.select;
4
4
 
5
- import log from './logger.js';
5
+ import log from '../logger.js';
6
6
  import {
7
7
  childNodesOf,
8
8
  domToXML,
@@ -1,6 +1,6 @@
1
1
  // Export all resources
2
2
  import javaTemplatesResource from './java/template.js';
3
- import log from '../locators/logger.js';
3
+ import log from '../logger.js';
4
4
 
5
5
  export default function registerResources(server: any) {
6
6
  javaTemplatesResource(server);
package/src/server.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { FastMCP } from 'fastmcp';
2
2
  import registerTools from './tools/index.js';
3
3
  import registerResources from './resources/index.js';
4
- import { hasActiveSession, safeDeleteSession } from './tools/session-store.js';
5
- import log from './locators/logger.js';
4
+ import { hasActiveSession, safeDeleteSession } from './session-store.js';
5
+ import log from './logger.js';
6
6
 
7
7
  const server = new FastMCP({
8
8
  name: 'MCP Appium',
@@ -1,6 +1,6 @@
1
1
  import { AndroidUiautomator2Driver } from 'appium-uiautomator2-driver';
2
2
  import { XCUITestDriver } from 'appium-xcuitest-driver';
3
- import log from '../locators/logger.js';
3
+ import log from './logger.js';
4
4
 
5
5
  let driver: any = null;
6
6
  let sessionId: string | null = null;
@@ -4,45 +4,50 @@ This directory contains all MCP tools available in MCP Appium.
4
4
 
5
5
  ## Tool Categories
6
6
 
7
- ### Session Management
7
+ ### Session Management (`session/`)
8
8
 
9
9
  - `create-session.ts` - Create mobile automation sessions
10
10
  - `delete-session.ts` - Clean up sessions
11
11
  - `select-platform.ts` - Choose Android or iOS
12
12
  - `select-device.ts` - Choose specific device
13
13
 
14
- ### iOS Setup
14
+ ### iOS Setup (`ios/`)
15
15
 
16
16
  - `boot-simulator.ts` - Boot iOS simulators
17
17
  - `setup-wda.ts` - Setup WebDriverAgent
18
18
  - `install-wda.ts` - Install WebDriverAgent
19
19
 
20
- ### Element Interaction
21
-
22
- - `interactions/` - Direct appium interactions
23
- - `find.ts` - Find elements
24
- - `click.ts` - Click elements
25
- - `double-tap.ts` - Double tap elements
26
- - `set-value.ts` - Enter text
27
- - `get-text.ts` - Get element text
28
- - `get-page-source.ts` - Get page source (XML) from current screen
29
- - `screenshot.ts` - Capture screenshots
30
- - `activate-app.ts` - Activate apps
31
- - `terminate-app.ts` - Terminate apps
32
- - `install-app.ts` - Install apps
33
- - `uninstall-app.ts` - Uninstall apps
34
- - `list-apps.ts` - List installed apps
35
-
36
- ### Navigation
20
+ ### Navigation (`navigations/`)
37
21
 
38
22
  - `scroll.ts` - Scroll screens
39
23
  - `scroll-to-element.ts` - Scroll until element found
40
24
 
41
- ### AI & Test Generation
25
+ ### Element Interactions (`interactions/`)
26
+
27
+ - `find.ts` - Find elements
28
+ - `click.ts` - Click elements
29
+ - `double-tap.ts` - Double tap elements
30
+ - `set-value.ts` - Enter text
31
+ - `get-text.ts` - Get element text
32
+ - `get-page-source.ts` - Get page source (XML) from current screen
33
+ - `screenshot.ts` - Capture screenshots
34
+
35
+ ### App Management (`app-management/`)
42
36
 
43
- - `generate_locators.ts` - Generate page locators
37
+ - `activate-app.ts` - Activate apps
38
+ - `terminate-app.ts` - Terminate apps
39
+ - `install-app.ts` - Install apps
40
+ - `uninstall-app.ts` - Uninstall apps
41
+ - `list-apps.ts` - List installed apps
42
+
43
+ ### Test Generation (`test-generation/`)
44
+
45
+ - `locators.ts` - Generate page locators
44
46
  - `generate-tests.ts` - Generate test code from scenarios
45
- - `answer-appium.ts` - Answer Appium questions
47
+
48
+ ### Documentation (`documentation/`)
49
+
50
+ - `answer-appium.ts` - Answer Appium questions using RAG
46
51
 
47
52
  ## Adding a New Tool
48
53
 
@@ -50,9 +55,9 @@ See [docs/CONTRIBUTING.md](../../docs/CONTRIBUTING.md) for detailed instructions
50
55
 
51
56
  Quick steps:
52
57
 
53
- 1. Create a new file in this directory (e.g., `my-tool.ts`)
58
+ 1. Create a new file in the appropriate subdirectory (e.g., `interactions/my-tool.ts`)
54
59
  2. Define the tool following the template
55
- 3. Register it in `index.ts`
60
+ 3. Import and register it in `index.ts`
56
61
  4. Test with `npm run build && npm start`
57
62
 
58
63
  ### Tool Template
@@ -60,7 +65,7 @@ Quick steps:
60
65
  ```typescript
61
66
  import { FastMCP } from 'fastmcp/dist/FastMCP.js';
62
67
  import { z } from 'zod';
63
- import { getDriver } from './session-store.js';
68
+ import { getDriver } from '../../session-store.js';
64
69
 
65
70
  export default function myTool(server: FastMCP): void {
66
71
  server.addTool({
@@ -99,7 +104,7 @@ export default function myTool(server: FastMCP): void {
99
104
  Add to `src/tools/index.ts`:
100
105
 
101
106
  ```typescript
102
- import myTool from './my-tool.js';
107
+ import myTool from './interactions/my-tool.js';
103
108
 
104
109
  export default function registerTools(server: FastMCP): void {
105
110
  // ... existing tools ...
@@ -113,7 +118,7 @@ export default function registerTools(server: FastMCP): void {
113
118
  1. **Always check for active session**: Use `getDriver()` and check for null
114
119
  2. **Provide helpful errors**: Give clear error messages
115
120
  3. **Use proper types**: Leverage TypeScript and Zod for type safety
116
- 4. **Add logging**: Use the logger from `../locators/logger.js` for debugging. Import with: `import log from '../locators/logger.js'`. Use `log.info()`, `log.error()`, `log.warn()` instead of `console.log/error/warn` to maintain JSON-RPC compatibility
121
+ 4. **Add logging**: Use the logger from `logger.js` for debugging. Import with: `import log from 'logger.js'`. Use `log.info()`, `log.error()`, `log.warn()` instead of `console.log/error/warn` to maintain JSON-RPC compatibility
117
122
  5. **Handle errors**: Always wrap risky operations in try-catch
118
123
  6. **Return proper format**: Always return content in expected MCP format
119
124
 
@@ -126,7 +131,7 @@ import {
126
131
  getDriver,
127
132
  hasActiveSession,
128
133
  safeDeleteSession,
129
- } from './session-store.js';
134
+ } from '../../session-store.js';
130
135
 
131
136
  // Check if session exists
132
137
  if (!hasActiveSession()) {
@@ -145,7 +150,7 @@ await driver.someMethod();
145
150
  ### Platform-Specific Logic
146
151
 
147
152
  ```typescript
148
- import { getPlatformName } from './session-store.js';
153
+ import { getPlatformName } from '../../session-store.js';
149
154
 
150
155
  if (getPlatformName(driver) === 'Android') {
151
156
  // Android implementation
@@ -1,5 +1,5 @@
1
1
  import { FastMCP } from 'fastmcp/dist/FastMCP.js';
2
- import { getDriver } from '../session-store.js';
2
+ import { getDriver } from '../../session-store.js';
3
3
  import { z } from 'zod';
4
4
 
5
5
  export default function activateApp(server: FastMCP): void {
@@ -1,6 +1,6 @@
1
1
  import { FastMCP } from 'fastmcp/dist/FastMCP.js';
2
2
  import { z } from 'zod';
3
- import { getDriver, getPlatformName } from '../session-store.js';
3
+ import { getDriver, getPlatformName } from '../../session-store.js';
4
4
 
5
5
  export default function installApp(server: FastMCP): void {
6
6
  const schema = z.object({
@@ -1,6 +1,6 @@
1
1
  import { FastMCP } from 'fastmcp/dist/FastMCP.js';
2
2
  import { z } from 'zod';
3
- import { getDriver, getPlatformName } from '../session-store.js';
3
+ import { getDriver, getPlatformName } from '../../session-store.js';
4
4
 
5
5
  async function listAppsFromDevice(): Promise<any[]> {
6
6
  const driver = await getDriver();
@@ -1,6 +1,6 @@
1
1
  import { FastMCP } from 'fastmcp/dist/FastMCP.js';
2
2
  import { z } from 'zod';
3
- import { getDriver, getPlatformName } from '../session-store.js';
3
+ import { getDriver, getPlatformName } from '../../session-store.js';
4
4
 
5
5
  export default function terminateApp(server: FastMCP): void {
6
6
  const schema = z.object({
@@ -1,6 +1,6 @@
1
1
  import { FastMCP } from 'fastmcp/dist/FastMCP.js';
2
2
  import { z } from 'zod';
3
- import { getDriver, getPlatformName } from '../session-store.js';
3
+ import { getDriver, getPlatformName } from '../../session-store.js';
4
4
 
5
5
  export default function uninstallApp(server: FastMCP): void {
6
6
  const schema = z.object({
@@ -2,11 +2,8 @@
2
2
  * Tool to select mobile platform before creating a session
3
3
  */
4
4
  import { z } from 'zod';
5
- import {
6
- answerAppiumQuery,
7
- initializeAppiumDocumentation,
8
- } from './documentation/index.js';
9
- import log from '../locators/logger.js';
5
+ import { answerAppiumQuery, initializeAppiumDocumentation } from './index.js';
6
+ import log from '../../logger.js';
10
7
 
11
8
  export default function answerAppium(server: any): void {
12
9
  server.addTool({
@@ -10,7 +10,7 @@ import {
10
10
  indexAllMarkdownFiles,
11
11
  } from './simple-pdf-indexer.js';
12
12
  import * as path from 'path';
13
- import log from '../../locators/logger.js';
13
+ import log from '../../logger.js';
14
14
 
15
15
  /**
16
16
  * Interface for the query response
@@ -8,7 +8,7 @@
8
8
 
9
9
  import { Document } from 'langchain/document';
10
10
  import { queryVectorStore } from './simple-pdf-indexer.js';
11
- import log from '../../locators/logger.js';
11
+ import log from '../../logger.js';
12
12
 
13
13
  /**
14
14
  * Reasoning task types supported by the system
@@ -5,7 +5,7 @@
5
5
  * This is perfect for self-hosted MCP servers and eliminates external dependencies.
6
6
  */
7
7
 
8
- import log from '../../locators/logger.js';
8
+ import log from '../../logger.js';
9
9
 
10
10
  /**
11
11
  * LangChain-compatible embeddings class using sentence-transformers
@@ -16,7 +16,7 @@ import { fileURLToPath } from 'url';
16
16
 
17
17
  // Initialize embeddings using sentence-transformers (no API key required)
18
18
  import { SentenceTransformersEmbeddings } from './sentence-transformers-embeddings.js';
19
- import log from '../../locators/logger.js';
19
+ import log from '../../logger.js';
20
20
 
21
21
  let embeddings: SentenceTransformersEmbeddings | null = null;
22
22
 
@@ -13,19 +13,19 @@
13
13
  * See src/tools/metadata/README.md for YAML metadata approach.
14
14
  */
15
15
  import { FastMCP } from 'fastmcp/dist/FastMCP.js';
16
- import log from '../locators/logger.js';
17
- import answerAppium from './answer-appium.js';
18
- import createSession from './create-session.js';
19
- import deleteSession from './delete-session.js';
20
- import generateLocators from './locators.js';
21
- import selectPlatform from './select-platform.js';
22
- import selectDevice from './select-device.js';
23
- import bootSimulator from './boot-simulator.js';
24
- import setupWDA from './setup-wda.js';
25
- import installWDA from './install-wda.js';
26
- import generateTest from './generate-tests.js';
27
- import scroll from './scroll.js';
28
- import scrollToElement from './scroll-to-element.js';
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
29
  import findElement from './interactions/find.js';
30
30
  import clickElement from './interactions/click.js';
31
31
  import doubleTap from './interactions/double-tap.js';
@@ -33,11 +33,11 @@ import setValue from './interactions/set-value.js';
33
33
  import getText from './interactions/get-text.js';
34
34
  import getPageSource from './interactions/get-page-source.js';
35
35
  import screenshot from './interactions/screenshot.js';
36
- import activateApp from './interactions/activate-app.js';
37
- import installApp from './interactions/install-app.js';
38
- import uninstallApp from './interactions/uninstall-app.js';
39
- import terminateApp from './interactions/terminate-app.js';
40
- import listApps from './interactions/list-apps.js';
36
+ import activateApp from './app-management/activate-app.js';
37
+ import installApp from './app-management/install-app.js';
38
+ import uninstallApp from './app-management/uninstall-app.js';
39
+ import terminateApp from './app-management/terminate-app.js';
40
+ import listApps from './app-management/list-apps.js';
41
41
 
42
42
  export default function registerTools(server: FastMCP): void {
43
43
  // Wrap addTool to inject logging around tool execution
@@ -106,23 +106,22 @@ export default function registerTools(server: FastMCP): void {
106
106
  });
107
107
  };
108
108
 
109
+ // Session Management
109
110
  selectPlatform(server);
110
111
  selectDevice(server);
112
+ createSession(server);
113
+ deleteSession(server);
114
+
115
+ // iOS Setup
111
116
  bootSimulator(server);
112
117
  setupWDA(server);
113
118
  installWDA(server);
114
- createSession(server);
115
- deleteSession(server);
116
- generateLocators(server);
117
- answerAppium(server);
119
+
120
+ // Navigation
118
121
  scroll(server);
119
122
  scrollToElement(server);
120
123
 
121
- activateApp(server);
122
- installApp(server);
123
- uninstallApp(server);
124
- terminateApp(server);
125
- listApps(server);
124
+ // Element Interactions
126
125
  findElement(server);
127
126
  clickElement(server);
128
127
  doubleTap(server);
@@ -130,6 +129,19 @@ export default function registerTools(server: FastMCP): void {
130
129
  getText(server);
131
130
  getPageSource(server);
132
131
  screenshot(server);
132
+
133
+ // App Management
134
+ activateApp(server);
135
+ installApp(server);
136
+ uninstallApp(server);
137
+ terminateApp(server);
138
+ listApps(server);
139
+
140
+ // Test Generation
141
+ generateLocators(server);
133
142
  generateTest(server);
143
+
144
+ // Documentation
145
+ answerAppium(server);
134
146
  log.info('All tools registered');
135
147
  }
@@ -1,6 +1,6 @@
1
1
  import { FastMCP } from 'fastmcp/dist/FastMCP.js';
2
2
  import { z } from 'zod';
3
- import { getDriver } from '../session-store.js';
3
+ import { getDriver } from '../../session-store.js';
4
4
  import { elementUUIDScheme } from '../../schema.js';
5
5
 
6
6
  export default function generateTest(server: FastMCP): void {
@@ -1,6 +1,6 @@
1
1
  import { FastMCP } from 'fastmcp/dist/FastMCP.js';
2
2
  import { z } from 'zod';
3
- import { getDriver, getPlatformName } from '../session-store.js';
3
+ import { getDriver, getPlatformName } from '../../session-store.js';
4
4
  import { elementUUIDScheme } from '../../schema.js';
5
5
 
6
6
  export default function doubleTap(server: FastMCP): void {
@@ -1,6 +1,6 @@
1
1
  import { FastMCP } from 'fastmcp/dist/FastMCP.js';
2
2
  import { z } from 'zod';
3
- import { getDriver } from '../session-store.js';
3
+ import { getDriver } from '../../session-store.js';
4
4
 
5
5
  export const findElementSchema = z.object({
6
6
  strategy: z.enum([
@@ -1,6 +1,6 @@
1
1
  import { FastMCP } from 'fastmcp/dist/FastMCP.js';
2
2
  import { z } from 'zod';
3
- import { getDriver } from '../session-store.js';
3
+ import { getDriver } from '../../session-store.js';
4
4
 
5
5
  export default function getPageSource(server: FastMCP): void {
6
6
  server.addTool({
@@ -1,6 +1,6 @@
1
1
  import { FastMCP } from 'fastmcp/dist/FastMCP.js';
2
2
  import { z } from 'zod';
3
- import { getDriver } from '../session-store.js';
3
+ import { getDriver } from '../../session-store.js';
4
4
  import { elementUUIDScheme } from '../../schema.js';
5
5
 
6
6
  export default function getText(server: FastMCP): void {
@@ -1,6 +1,6 @@
1
1
  import { FastMCP } from 'fastmcp/dist/FastMCP.js';
2
2
  import { z } from 'zod';
3
- import { getDriver } from '../session-store.js';
3
+ import { getDriver } from '../../session-store.js';
4
4
  import { writeFile } from 'fs/promises';
5
5
  import { join } from 'path';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { FastMCP } from 'fastmcp/dist/FastMCP.js';
2
2
  import { z } from 'zod';
3
- import { getDriver } from '../session-store.js';
3
+ import { getDriver } from '../../session-store.js';
4
4
  import { elementUUIDScheme } from '../../schema.js';
5
5
 
6
6
  export default function setValue(server: FastMCP): void {
@@ -3,8 +3,8 @@
3
3
  */
4
4
  import { z } from 'zod';
5
5
  import { Simctl } from 'node-simctl';
6
- import { IOSManager } from '../devicemanager/ios-manager.js';
7
- import log from '../locators/logger.js';
6
+ import { IOSManager } from '../../devicemanager/ios-manager.js';
7
+ import log from '../../logger.js';
8
8
 
9
9
  export default function bootSimulator(server: any): void {
10
10
  server.addTool({
@@ -7,9 +7,8 @@ import { promisify } from 'util';
7
7
  import path from 'path';
8
8
  import { access, readdir, stat } from 'fs/promises';
9
9
  import { constants } from 'fs';
10
- import fs from 'fs'; // Keep for createWriteStream if used
11
10
  import os from 'os';
12
- import log from '../locators/logger.js';
11
+ import log from '../../logger.js';
13
12
 
14
13
  const execAsync = promisify(exec);
15
14
 
@@ -11,7 +11,7 @@ import { createWriteStream } from 'fs';
11
11
  import { pipeline } from 'stream/promises';
12
12
  import os from 'os';
13
13
  import axios from 'axios';
14
- import log from '../locators/logger.js';
14
+ import log from '../../logger.js';
15
15
 
16
16
  const execAsync = promisify(exec);
17
17
 
@@ -1,4 +1,4 @@
1
- import { getDriver, getPlatformName } from './session-store.js';
1
+ import { getDriver, getPlatformName } from '../../session-store.js';
2
2
  import { z } from 'zod';
3
3
 
4
4
  const scrollToElementSchema = z.object({
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { getDriver, getPlatformName } from './session-store.js';
3
- import log from '../locators/logger.js';
2
+ import { getDriver, getPlatformName } from '../../session-store.js';
3
+ import log from '../../logger.js';
4
4
 
5
5
  export default function scroll(server: any): void {
6
6
  server.addTool({