appium-mcp 1.72.11 → 1.72.13

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 (71) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/ai-finder/vision-finder.d.ts.map +1 -1
  3. package/dist/ai-finder/vision-finder.js +6 -2
  4. package/dist/ai-finder/vision-finder.js.map +1 -1
  5. package/dist/command.d.ts +4 -4
  6. package/dist/command.d.ts.map +1 -1
  7. package/dist/command.js.map +1 -1
  8. package/dist/devicemanager/adb-manager.js +1 -1
  9. package/dist/devicemanager/adb-manager.js.map +1 -1
  10. package/dist/locators/element-filter.d.ts +1 -1
  11. package/dist/locators/element-filter.d.ts.map +1 -1
  12. package/dist/locators/generate-all-locators.d.ts +1 -1
  13. package/dist/locators/generate-all-locators.d.ts.map +1 -1
  14. package/dist/locators/generate-all-locators.js.map +1 -1
  15. package/dist/locators/locator-generation.d.ts +2 -2
  16. package/dist/locators/locator-generation.d.ts.map +1 -1
  17. package/dist/locators/locator-generation.js +1 -1
  18. package/dist/locators/locator-generation.js.map +1 -1
  19. package/dist/locators/source-parsing.d.ts +1 -1
  20. package/dist/locators/source-parsing.d.ts.map +1 -1
  21. package/dist/locators/source-parsing.js +1 -1
  22. package/dist/locators/source-parsing.js.map +1 -1
  23. package/dist/scripts/simple-query-documentation.js +1 -1
  24. package/dist/scripts/simple-query-documentation.js.map +1 -1
  25. package/dist/tests/benchmark_model/benchmark_model.js +1 -1
  26. package/dist/tests/benchmark_model/benchmark_model.js.map +1 -1
  27. package/dist/tools/documentation/reasoning-rag.d.ts +1 -1
  28. package/dist/tools/documentation/reasoning-rag.d.ts.map +1 -1
  29. package/dist/tools/documentation/reasoning-rag.js +3 -3
  30. package/dist/tools/documentation/reasoning-rag.js.map +1 -1
  31. package/dist/tools/documentation/sentence-transformers-embeddings.d.ts.map +1 -1
  32. package/dist/tools/documentation/sentence-transformers-embeddings.js +4 -4
  33. package/dist/tools/documentation/sentence-transformers-embeddings.js.map +1 -1
  34. package/dist/tools/documentation/simple-pdf-indexer.d.ts.map +1 -1
  35. package/dist/tools/documentation/simple-pdf-indexer.js +2 -2
  36. package/dist/tools/documentation/simple-pdf-indexer.js.map +1 -1
  37. package/dist/tools/gestures/schema.d.ts +1 -1
  38. package/dist/tools/interactions/handle-alert.d.ts.map +1 -1
  39. package/dist/tools/interactions/handle-alert.js +1 -1
  40. package/dist/tools/interactions/handle-alert.js.map +1 -1
  41. package/dist/tools/interactions/screenshot.d.ts +1 -1
  42. package/dist/tools/interactions/screenshot.d.ts.map +1 -1
  43. package/dist/tools/ios/prepare-ios-real-device.d.ts +3 -3
  44. package/dist/tools/ios/prepare-ios-real-device.js +1 -1
  45. package/dist/tools/ios/prepare-ios-real-device.js.map +1 -1
  46. package/dist/tools/session/create-session.d.ts +11 -19
  47. package/dist/tools/session/create-session.d.ts.map +1 -1
  48. package/dist/tools/session/create-session.js +14 -20
  49. package/dist/tools/session/create-session.js.map +1 -1
  50. package/dist/tools/session/select-device.d.ts.map +1 -1
  51. package/dist/tools/session/select-device.js +7 -5
  52. package/dist/tools/session/select-device.js.map +1 -1
  53. package/package.json +1 -1
  54. package/server.json +2 -2
  55. package/src/ai-finder/vision-finder.ts +6 -2
  56. package/src/command.ts +10 -9
  57. package/src/devicemanager/adb-manager.ts +1 -1
  58. package/src/locators/element-filter.ts +1 -1
  59. package/src/locators/generate-all-locators.ts +4 -2
  60. package/src/locators/locator-generation.ts +3 -4
  61. package/src/locators/source-parsing.ts +2 -4
  62. package/src/resources/submodules.zip +0 -0
  63. package/src/scripts/simple-query-documentation.ts +1 -1
  64. package/src/tools/documentation/reasoning-rag.ts +7 -4
  65. package/src/tools/documentation/sentence-transformers-embeddings.ts +8 -4
  66. package/src/tools/documentation/simple-pdf-indexer.ts +4 -2
  67. package/src/tools/interactions/handle-alert.ts +2 -5
  68. package/src/tools/interactions/screenshot.ts +1 -1
  69. package/src/tools/ios/prepare-ios-real-device.ts +4 -4
  70. package/src/tools/session/create-session.ts +14 -20
  71. package/src/tools/session/select-device.ts +7 -5
@@ -1 +1 @@
1
- {"version":3,"file":"select-device.js","sourceRoot":"","sources":["../../../src/tools/session/select-device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"select-device.js","sourceRoot":"","sources":["../../../src/tools/session/select-device.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "appium-mcp",
3
3
  "mcpName": "io.github.appium/appium-mcp",
4
- "version": "1.72.11",
4
+ "version": "1.72.13",
5
5
  "type": "module",
6
6
  "repository": {
7
7
  "type": "git",
package/server.json CHANGED
@@ -3,12 +3,12 @@
3
3
  "name": "io.github.appium/appium-mcp",
4
4
  "title": "MCP Appium - Mobile Development and Automation Server",
5
5
  "description": "MCP server for Appium mobile automation on iOS and Android devices with test creation tools.",
6
- "version": "1.72.11",
6
+ "version": "1.72.13",
7
7
  "packages": [
8
8
  {
9
9
  "registryType": "npm",
10
10
  "identifier": "appium-mcp",
11
- "version": "1.72.11",
11
+ "version": "1.72.13",
12
12
  "transport": {
13
13
  "type": "stdio"
14
14
  }
@@ -376,7 +376,9 @@ Parameters: {"target": "Search", "bbox_2d": [100, 200, 300, 280]}
376
376
  if (error instanceof Error && error.name === 'AbortError') {
377
377
  const errorMessage = `HTTP timeout after ${timeoutMs}ms`;
378
378
  log.error(`AI Vision: API call failed: ${errorMessage}`);
379
- throw new Error(`Vision API call failed: ${errorMessage}`);
379
+ throw new Error(`Vision API call failed: ${errorMessage}`, {
380
+ cause: error,
381
+ });
380
382
  }
381
383
  throw error;
382
384
  } finally {
@@ -425,7 +427,9 @@ Parameters: {"target": "Search", "bbox_2d": [100, 200, 300, 280]}
425
427
  } catch (error) {
426
428
  log.error('AI Vision: Failed to parse bbox:', error);
427
429
  log.error('AI Vision: Response was:', response);
428
- throw new Error('Failed to parse bbox from vision model response');
430
+ throw new Error('Failed to parse bbox from vision model response', {
431
+ cause: error,
432
+ });
429
433
  }
430
434
  }
431
435
 
package/src/command.ts CHANGED
@@ -9,7 +9,12 @@ import {
9
9
  getSessionInfo,
10
10
  } from './session-store.js';
11
11
  import type { DriverInstance } from './session-store.js';
12
- import type { StringRecord, Element as AppiumElement } from '@appium/types';
12
+ import type {
13
+ ActionSequence,
14
+ Element as AppiumElement,
15
+ Rect,
16
+ StringRecord,
17
+ } from '@appium/types';
13
18
  import { util } from '@appium/support';
14
19
  import type {
15
20
  IOSRecordingOptions,
@@ -283,7 +288,7 @@ export async function elementClick(
283
288
  export async function getElementRect(
284
289
  driver: DriverInstance,
285
290
  elementUUID: string
286
- ): Promise<import('@appium/types').Rect> {
291
+ ): Promise<Rect> {
287
292
  if (isAndroidUiautomator2DriverSession(driver)) {
288
293
  return await driver.getElementRect(elementUUID);
289
294
  } else if (isXCUITestDriverSession(driver)) {
@@ -298,9 +303,7 @@ export async function getElementRect(
298
303
  * @param driver - The driver instance to query.
299
304
  * @returns A `Rect` describing the window bounds.
300
305
  */
301
- export async function getWindowRect(
302
- driver: DriverInstance
303
- ): Promise<import('@appium/types').Rect> {
306
+ export async function getWindowRect(driver: DriverInstance): Promise<Rect> {
304
307
  if (isAndroidUiautomator2DriverSession(driver)) {
305
308
  return await driver.getWindowRect();
306
309
  } else if (isXCUITestDriverSession(driver)) {
@@ -317,14 +320,12 @@ export async function getWindowRect(
317
320
  */
318
321
  export async function performActions(
319
322
  driver: DriverInstance,
320
- operation: StringRecord<any>[] | import('@appium/types').ActionSequence[]
323
+ operation: StringRecord<any>[] | ActionSequence[]
321
324
  ): Promise<void> {
322
325
  if (isAndroidUiautomator2DriverSession(driver)) {
323
326
  return await driver.performActions(operation);
324
327
  } else if (isXCUITestDriverSession(driver)) {
325
- return await driver.performActions(
326
- operation as import('@appium/types').ActionSequence[]
327
- );
328
+ return await driver.performActions(operation as ActionSequence[]);
328
329
  }
329
330
  return await driver.performActions(operation);
330
331
  }
@@ -133,7 +133,7 @@ export class ADBManager {
133
133
  return adb;
134
134
  } catch (error) {
135
135
  log.error(`Failed to create ADB instance: ${error}`);
136
- throw new Error(`ADB initialization failed: ${error}`);
136
+ throw new Error(`ADB initialization failed: ${error}`, { cause: error });
137
137
  }
138
138
  }
139
139
  }
@@ -1,4 +1,4 @@
1
- import { JSONElement } from './source-parsing.js';
1
+ import type { JSONElement } from './source-parsing.js';
2
2
 
3
3
  export interface FilterOptions {
4
4
  includeTagNames?: string[];
@@ -2,8 +2,10 @@
2
2
  // Using existing functions from src/locators directory
3
3
 
4
4
  import { getSuggestedLocators } from './locator-generation.js';
5
- import { xmlToJSON, JSONElement } from './source-parsing.js';
6
- import { shouldIncludeElement, FilterOptions } from './element-filter.js';
5
+ import { xmlToJSON } from './source-parsing.js';
6
+ import type { JSONElement } from './source-parsing.js';
7
+ import { shouldIncludeElement } from './element-filter.js';
8
+ import type { FilterOptions } from './element-filter.js';
7
9
  import log from '../logger.js';
8
10
 
9
11
  export interface ElementWithLocators {
@@ -8,10 +8,9 @@ import {
8
8
  domToXML,
9
9
  findDOMNodeByPath,
10
10
  xmlToDOM,
11
- JSONElement,
12
- ElementAttributes,
13
11
  } from './source-parsing.js';
14
- import {
12
+ import type { JSONElement, ElementAttributes } from './source-parsing.js';
13
+ import type {
15
14
  Document as XMLDocument,
16
15
  Node as XMLNode,
17
16
  Element as XMLElement,
@@ -555,7 +554,7 @@ function determineXpathUniqueness(
555
554
  doc: XMLDocument,
556
555
  domNode: XMLNode
557
556
  ): [boolean, number?] {
558
- let othersWithAttr: XMLNode[] = [];
557
+ let othersWithAttr: XMLNode[];
559
558
 
560
559
  // If the XPath does not parse, move to the next unique attribute
561
560
  try {
@@ -1,7 +1,5 @@
1
- import {
2
- DOMParser,
3
- MIME_TYPE,
4
- XMLSerializer,
1
+ import { DOMParser, MIME_TYPE, XMLSerializer } from '@xmldom/xmldom';
2
+ import type {
5
3
  Document as XMLDocument,
6
4
  Node as XMLNode,
7
5
  Element as XMLElement,
Binary file
@@ -24,7 +24,7 @@ async function main(): Promise<void> {
24
24
  console.log('process.argv:', process.argv);
25
25
  const args = process.argv.slice(2);
26
26
  console.log('args:', args);
27
- let query = '';
27
+ let query: string;
28
28
 
29
29
  if (args.length > 0) {
30
30
  query = args.join(' ');
@@ -6,7 +6,7 @@
6
6
  * It can perform summarization, question-answering, and analysis on retrieved chunks.
7
7
  */
8
8
 
9
- import { Document } from '@langchain/core/documents';
9
+ import type { Document } from '@langchain/core/documents';
10
10
  import { queryVectorStore } from './simple-pdf-indexer.js';
11
11
  import log from '../../logger.js';
12
12
 
@@ -180,7 +180,8 @@ export class ReasoningRAG {
180
180
  } catch (error) {
181
181
  log.error('Error in reasoning-enhanced RAG:', error);
182
182
  throw new Error(
183
- `Reasoning-enhanced RAG failed: ${error instanceof Error ? error.message : String(error)}`
183
+ `Reasoning-enhanced RAG failed: ${error instanceof Error ? error.message : String(error)}`,
184
+ { cause: error }
184
185
  );
185
186
  }
186
187
  }
@@ -234,7 +235,8 @@ export class ReasoningRAG {
234
235
  } catch (error) {
235
236
  log.error('Error importing @xenova/transformers:', error);
236
237
  throw new Error(
237
- `Failed to import @xenova/transformers: ${error instanceof Error ? error.message : String(error)}`
238
+ `Failed to import @xenova/transformers: ${error instanceof Error ? error.message : String(error)}`,
239
+ { cause: error }
238
240
  );
239
241
  }
240
242
  }
@@ -264,7 +266,8 @@ export class ReasoningRAG {
264
266
  } catch (error) {
265
267
  log.error(`Error loading model ${config.modelName}:`, error);
266
268
  throw new Error(
267
- `Failed to load model: ${error instanceof Error ? error.message : String(error)}`
269
+ `Failed to load model: ${error instanceof Error ? error.message : String(error)}`,
270
+ { cause: error }
268
271
  );
269
272
  }
270
273
  }
@@ -43,7 +43,8 @@ export class SentenceTransformersEmbeddings {
43
43
  } catch (error) {
44
44
  log.error('Error generating embeddings:', error);
45
45
  throw new Error(
46
- `Failed to generate embeddings: ${error instanceof Error ? error.message : String(error)}`
46
+ `Failed to generate embeddings: ${error instanceof Error ? error.message : String(error)}`,
47
+ { cause: error }
47
48
  );
48
49
  }
49
50
  }
@@ -87,7 +88,8 @@ export class SentenceTransformersEmbeddings {
87
88
  } catch (error) {
88
89
  log.error('Error generating document embeddings:', error);
89
90
  throw new Error(
90
- `Failed to generate document embeddings: ${error instanceof Error ? error.message : String(error)}`
91
+ `Failed to generate document embeddings: ${error instanceof Error ? error.message : String(error)}`,
92
+ { cause: error }
91
93
  );
92
94
  }
93
95
  }
@@ -109,7 +111,8 @@ export class SentenceTransformersEmbeddings {
109
111
  } catch (error) {
110
112
  log.error('Error importing @xenova/transformers:', error);
111
113
  throw new Error(
112
- `Failed to import @xenova/transformers: ${error instanceof Error ? error.message : String(error)}`
114
+ `Failed to import @xenova/transformers: ${error instanceof Error ? error.message : String(error)}`,
115
+ { cause: error }
113
116
  );
114
117
  }
115
118
  }
@@ -137,7 +140,8 @@ export class SentenceTransformersEmbeddings {
137
140
  } catch (error) {
138
141
  log.error('Error initializing sentence-transformers model:', error);
139
142
  throw new Error(
140
- `Failed to initialize sentence-transformers model: ${error instanceof Error ? error.message : String(error)}`
143
+ `Failed to initialize sentence-transformers model: ${error instanceof Error ? error.message : String(error)}`,
144
+ { cause: error }
141
145
  );
142
146
  }
143
147
  }
@@ -40,7 +40,8 @@ function getEmbeddings(): SentenceTransformersEmbeddings {
40
40
  throw new Error(
41
41
  `Failed to initialize embeddings: ${
42
42
  error instanceof Error ? error.message : String(error)
43
- }`
43
+ }`,
44
+ { cause: error }
44
45
  );
45
46
  }
46
47
 
@@ -443,7 +444,8 @@ async function extractTextFromMarkdown(markdownPath: string): Promise<string> {
443
444
  throw new Error(
444
445
  `Failed to extract text from Markdown: ${
445
446
  error instanceof Error ? error.message : String(error)
446
- }`
447
+ }`,
448
+ { cause: error }
447
449
  );
448
450
  }
449
451
  }
@@ -1,11 +1,8 @@
1
1
  import type { ContentResult, FastMCP } from 'fastmcp';
2
2
  import { z } from 'zod';
3
3
  import { generateAllElementLocators } from '../../locators/generate-all-locators.js';
4
- import {
5
- DriverInstance,
6
- getPlatformName,
7
- PLATFORM,
8
- } from '../../session-store.js';
4
+ import { getPlatformName, PLATFORM } from '../../session-store.js';
5
+ import type { DriverInstance } from '../../session-store.js';
9
6
  import { elementClick, execute, getPageSource } from '../../command.js';
10
7
  import {
11
8
  resolveDriver,
@@ -1,4 +1,4 @@
1
- import { FastMCP } from 'fastmcp';
1
+ import type { FastMCP } from 'fastmcp';
2
2
  import { getDriver } from '../../session-store.js';
3
3
  import { elementUUIDScheme } from '../../schema.js';
4
4
  import type { NullableDriverInstance } from '../../session-store.js';
@@ -9,9 +9,9 @@
9
9
  * version; the signed IPA is rebuilt every call so profile/cert changes never
10
10
  * serve a stale signature.
11
11
  *
12
- * After a successful run, create_session calls should pass the returned
13
- * `capabilitiesHint` so Appium installs and launches the signed prebuilt WDA
14
- * bundle instead of rebuilding it.
12
+ * After a successful run, appium_session_management (action=create) calls
13
+ * should pass the returned `capabilitiesHint` so Appium installs and launches
14
+ * the signed prebuilt WDA bundle instead of rebuilding it.
15
15
  */
16
16
  import type { ContentResult, FastMCP } from 'fastmcp';
17
17
  import { z } from 'zod';
@@ -472,7 +472,7 @@ export default function prepareIosRealDevice(server: FastMCP): void {
472
472
  '(2) Call again with the chosen UUID to download the matching WebDriverAgent release, package it as an IPA, ' +
473
473
  'and resign it with the chosen profile (wildcard "*" profiles are supported — a concrete WDA bundle ID is substituted at sign time). ' +
474
474
  'WDA download and unsigned IPA are cached per WDA version; the signed IPA is rebuilt every call. ' +
475
- 'Pass the returned capabilitiesHint to create_session so Appium installs and launches the signed prebuilt WDA instead of rebuilding. ' +
475
+ 'Pass the returned capabilitiesHint to appium_session_management (action=create) so Appium installs and launches the signed prebuilt WDA instead of rebuilding. ' +
476
476
  'Requires macOS, Xcode 16+, and a paired developer-mode device.',
477
477
  parameters: prepareRealDeviceSchema,
478
478
  annotations: {
@@ -201,34 +201,26 @@ export function validateRemoteServerUrl(
201
201
  }
202
202
 
203
203
  /**
204
- * Registers a tool for creating a new mobile session with Android or iOS devices.
204
+ * Create a new mobile session with Android or iOS device.
205
205
  *
206
- * This function adds a 'create_session' tool to the provided server that handles
207
- * mobile session creation with support for both local and remote Appium servers.
206
+ * Backs the `appium_session_management` tool when called with `action=create`.
207
+ * Requires prior platform selection via the `select_device` tool for local
208
+ * servers. Supports both local and remote Appium server connections.
208
209
  *
209
- * @param server - The server instance to which the create_session tool will be added
210
- *
211
- * @tool create_session
212
- * @description Creates a new mobile session with Android or iOS device. Requires prior
213
- * platform selection via the select_device tool. Supports both local and remote
214
- * Appium server connections.
215
- *
216
- * @param {Object} args - Tool execution arguments
217
- * @param {'ios' | 'android'} args.platform - REQUIRED. The target platform, must match
218
- * the platform explicitly selected via select_device tool
219
- * @param {Object} [args.capabilities] - Optional custom W3C format capabilities
210
+ * @param {Object} args - Action arguments
211
+ * @param {'ios' | 'android' | 'general'} args.platform - REQUIRED. The target
212
+ * platform. For local servers, must match the platform explicitly selected via
213
+ * `select_device`. Use 'general' only with `remoteServerUrl` for non-Android/iOS
214
+ * drivers.
215
+ * @param {Object} [args.capabilities] - Optional custom W3C-format capabilities
220
216
  * @param {string} [args.remoteServerUrl] - Optional remote Appium server URL
221
- * (e.g., http://localhost:4723). If not provided, uses local Appium server
217
+ * (e.g., http://localhost:4723). If not provided, uses the local embedded driver.
222
218
  *
223
219
  * @returns {Promise<Object>} Response object containing:
224
220
  * - text: Success message with session ID and device details
225
221
  * - ui: Interactive session dashboard UI component
226
222
  *
227
223
  * @throws {Error} If session creation fails or platform capabilities cannot be loaded
228
- *
229
- * @example
230
- * // Register the tool
231
- * createSession(server);
232
224
  */
233
225
  export async function createSessionAction(args: {
234
226
  platform: 'ios' | 'android' | 'general';
@@ -338,7 +330,9 @@ export async function createSessionAction(args: {
338
330
  return addUIResourceToResponse(textResponse, uiResource);
339
331
  } catch (error: any) {
340
332
  log.error('Error creating session:', error);
341
- throw new Error(`Failed to create session: ${error.message}`);
333
+ throw new Error(`Failed to create session: ${error.message}`, {
334
+ cause: error,
335
+ });
342
336
  }
343
337
  }
344
338
 
@@ -43,12 +43,12 @@ export default function selectDevice(server: any): void {
43
43
  WORKFLOW FOR LOCAL SERVERS:
44
44
  1. ASK THE USER which platform they want (Android or iOS) - do not assume
45
45
  2. Call this tool with the chosen platform (and iosDeviceType for iOS)
46
- 3. If only one device is found, it is auto-selected - proceed to create_session (or prepare_ios_simulator for iOS simulators)
46
+ 3. If only one device is found, it is auto-selected - proceed to appium_session_management (action=create) (or prepare_ios_simulator for iOS simulators)
47
47
  4. If multiple devices are found, ask the user which one they want, then call this tool again with deviceUdid
48
- 5. After selection, proceed to create_session (or prepare_ios_simulator for iOS simulators, then create_session)
48
+ 5. After selection, proceed to appium_session_management (action=create) (or prepare_ios_simulator for iOS simulators, then appium_session_management with action=create)
49
49
  WORKFLOW FOR REMOTE SERVERS:
50
50
  - SKIP this tool entirely
51
- - Device selection should be handled via capabilities in create_session (e.g., appium:deviceName, appium:udid)
51
+ - Device selection should be handled via capabilities on appium_session_management (action=create) (e.g., appium:deviceName, appium:udid)
52
52
  - The remote Appium server is already configured for specific device(s)
53
53
  `,
54
54
  parameters: z
@@ -98,7 +98,9 @@ export default function selectDevice(server: any): void {
98
98
  }
99
99
  } catch (error: any) {
100
100
  log.error('Error selecting device:', error);
101
- throw new Error(`Failed to select device: ${error.message}`);
101
+ throw new Error(`Failed to select device: ${error.message}`, {
102
+ cause: error,
103
+ });
102
104
  }
103
105
  },
104
106
  });
@@ -142,7 +144,7 @@ function formatAndroidSelectionResponse(deviceUdid: string): any {
142
144
  {
143
145
  message: `✅ Device selected: ${deviceUdid}`,
144
146
  instructions:
145
- '🚀 You can now create a session using the create_session tool with:',
147
+ '🚀 You can now create a session by calling appium_session_management with action=create and:',
146
148
  platform: 'android',
147
149
  capabilities: {
148
150
  'appium:udid': deviceUdid,