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.
- package/CHANGELOG.md +12 -0
- package/dist/ai-finder/vision-finder.d.ts.map +1 -1
- package/dist/ai-finder/vision-finder.js +6 -2
- package/dist/ai-finder/vision-finder.js.map +1 -1
- package/dist/command.d.ts +4 -4
- package/dist/command.d.ts.map +1 -1
- package/dist/command.js.map +1 -1
- package/dist/devicemanager/adb-manager.js +1 -1
- package/dist/devicemanager/adb-manager.js.map +1 -1
- package/dist/locators/element-filter.d.ts +1 -1
- package/dist/locators/element-filter.d.ts.map +1 -1
- package/dist/locators/generate-all-locators.d.ts +1 -1
- package/dist/locators/generate-all-locators.d.ts.map +1 -1
- package/dist/locators/generate-all-locators.js.map +1 -1
- package/dist/locators/locator-generation.d.ts +2 -2
- package/dist/locators/locator-generation.d.ts.map +1 -1
- package/dist/locators/locator-generation.js +1 -1
- package/dist/locators/locator-generation.js.map +1 -1
- package/dist/locators/source-parsing.d.ts +1 -1
- package/dist/locators/source-parsing.d.ts.map +1 -1
- package/dist/locators/source-parsing.js +1 -1
- package/dist/locators/source-parsing.js.map +1 -1
- package/dist/scripts/simple-query-documentation.js +1 -1
- package/dist/scripts/simple-query-documentation.js.map +1 -1
- package/dist/tests/benchmark_model/benchmark_model.js +1 -1
- package/dist/tests/benchmark_model/benchmark_model.js.map +1 -1
- package/dist/tools/documentation/reasoning-rag.d.ts +1 -1
- package/dist/tools/documentation/reasoning-rag.d.ts.map +1 -1
- package/dist/tools/documentation/reasoning-rag.js +3 -3
- package/dist/tools/documentation/reasoning-rag.js.map +1 -1
- package/dist/tools/documentation/sentence-transformers-embeddings.d.ts.map +1 -1
- package/dist/tools/documentation/sentence-transformers-embeddings.js +4 -4
- package/dist/tools/documentation/sentence-transformers-embeddings.js.map +1 -1
- package/dist/tools/documentation/simple-pdf-indexer.d.ts.map +1 -1
- package/dist/tools/documentation/simple-pdf-indexer.js +2 -2
- package/dist/tools/documentation/simple-pdf-indexer.js.map +1 -1
- package/dist/tools/gestures/schema.d.ts +1 -1
- package/dist/tools/interactions/handle-alert.d.ts.map +1 -1
- package/dist/tools/interactions/handle-alert.js +1 -1
- package/dist/tools/interactions/handle-alert.js.map +1 -1
- package/dist/tools/interactions/screenshot.d.ts +1 -1
- package/dist/tools/interactions/screenshot.d.ts.map +1 -1
- package/dist/tools/ios/prepare-ios-real-device.d.ts +3 -3
- package/dist/tools/ios/prepare-ios-real-device.js +1 -1
- package/dist/tools/ios/prepare-ios-real-device.js.map +1 -1
- package/dist/tools/session/create-session.d.ts +11 -19
- package/dist/tools/session/create-session.d.ts.map +1 -1
- package/dist/tools/session/create-session.js +14 -20
- package/dist/tools/session/create-session.js.map +1 -1
- package/dist/tools/session/select-device.d.ts.map +1 -1
- package/dist/tools/session/select-device.js +7 -5
- package/dist/tools/session/select-device.js.map +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/src/ai-finder/vision-finder.ts +6 -2
- package/src/command.ts +10 -9
- package/src/devicemanager/adb-manager.ts +1 -1
- package/src/locators/element-filter.ts +1 -1
- package/src/locators/generate-all-locators.ts +4 -2
- package/src/locators/locator-generation.ts +3 -4
- package/src/locators/source-parsing.ts +2 -4
- package/src/resources/submodules.zip +0 -0
- package/src/scripts/simple-query-documentation.ts +1 -1
- package/src/tools/documentation/reasoning-rag.ts +7 -4
- package/src/tools/documentation/sentence-transformers-embeddings.ts +8 -4
- package/src/tools/documentation/simple-pdf-indexer.ts +4 -2
- package/src/tools/interactions/handle-alert.ts +2 -5
- package/src/tools/interactions/screenshot.ts +1 -1
- package/src/tools/ios/prepare-ios-real-device.ts +4 -4
- package/src/tools/session/create-session.ts +14 -20
- 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":"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;AAClC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,iCAAiC;AACjC,IAAI,kBAAkB,GAAkB,IAAI,CAAC;AAC7C,IAAI,kBAAkB,GAAgC,IAAI,CAAC;AAC3D,IAAI,kBAAkB,GAAQ,IAAI,CAAC;AAEnC,MAAM,UAAU,iBAAiB;IAC/B,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,kBAAkB,GAAG,IAAI,CAAC;IAC1B,kBAAkB,GAAG,IAAI,CAAC;IAC1B,kBAAkB,GAAG,IAAI,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,MAAW;IAC9C,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;;;;;;;;;;;;OAYV;QACH,UAAU,EAAE,CAAC;aACV,MAAM,CAAC;YACN,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;iBACxB,QAAQ,CACP,4EAA4E,CAC7E;YACH,aAAa,EAAE,CAAC;iBACb,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;iBAC3B,QAAQ,EAAE;iBACV,QAAQ,CACP,qGAAqG,CACtG;YACH,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,kIAAkI,CACnI;SACJ,CAAC;aACD,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EACrE;YACE,OAAO,EACL,0EAA0E;YAC5E,IAAI,EAAE,CAAC,eAAe,CAAC;SACxB,CACF;QACH,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAK;SACrB;QACD,OAAO,EAAE,KAAK,EAAE,IAAS,EAAE,QAAa,EAAgB,EAAE;YACxD,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;gBAErD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,OAAO,MAAM,4BAA4B,CAAC,UAAU,CAAC,CAAC;gBACxD,CAAC;qBAAM,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;oBAC9B,OAAO,MAAM,wBAAwB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;gBACnE,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,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;
|
|
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
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.
|
|
6
|
+
"version": "1.72.13",
|
|
7
7
|
"packages": [
|
|
8
8
|
{
|
|
9
9
|
"registryType": "npm",
|
|
10
10
|
"identifier": "appium-mcp",
|
|
11
|
-
"version": "1.72.
|
|
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 {
|
|
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<
|
|
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>[] |
|
|
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
|
}
|
|
@@ -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
|
|
6
|
-
import {
|
|
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 {
|
|
Binary file
|
|
@@ -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
|
-
|
|
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,
|
|
@@ -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,
|
|
13
|
-
* `capabilitiesHint` so Appium installs and launches
|
|
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
|
|
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
|
-
*
|
|
204
|
+
* Create a new mobile session with Android or iOS device.
|
|
205
205
|
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
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
|
|
210
|
-
*
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
*
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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,
|