appium-mcp 1.86.3 → 1.86.5
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/tools/app-management/list-apps.d.ts.map +1 -1
- package/dist/tools/app-management/list-apps.js +13 -4
- package/dist/tools/app-management/list-apps.js.map +1 -1
- package/dist/tools/ios/prepare-ios-simulator.d.ts.map +1 -1
- package/dist/tools/ios/prepare-ios-simulator.js +16 -7
- package/dist/tools/ios/prepare-ios-simulator.js.map +1 -1
- package/dist/ui/mcp-ui-utils.d.ts.map +1 -1
- package/dist/ui/mcp-ui-utils.js +53 -28
- package/dist/ui/mcp-ui-utils.js.map +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/src/tools/app-management/list-apps.ts +13 -7
- package/src/tools/ios/prepare-ios-simulator.ts +16 -12
- package/src/ui/mcp-ui-utils.ts +59 -30
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [1.86.5](https://github.com/appium/appium-mcp/compare/v1.86.4...v1.86.5) (2026-06-27)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* use teen_process ([#423](https://github.com/appium/appium-mcp/issues/423)) ([90716e4](https://github.com/appium/appium-mcp/commit/90716e4256098fd3a234e6973bbdd5d66bdb6071))
|
|
6
|
+
|
|
7
|
+
## [1.86.4](https://github.com/appium/appium-mcp/compare/v1.86.3...v1.86.4) (2026-06-22)
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* escape more ([#420](https://github.com/appium/appium-mcp/issues/420)) ([78acf26](https://github.com/appium/appium-mcp/commit/78acf260d62af82a83077d1d30a32e28a7714087))
|
|
12
|
+
|
|
1
13
|
## [1.86.3](https://github.com/appium/appium-mcp/compare/v1.86.2...v1.86.3) (2026-06-20)
|
|
2
14
|
|
|
3
15
|
### Miscellaneous Chores
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-apps.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/list-apps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"list-apps.d.ts","sourceRoot":"","sources":["../../../src/tools/app-management/list-apps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAuB7D,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,eAAe,GAAE,MAAM,GAAG,QAAiB,GAC1C,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CA4DrD;AAED,wBAAsB,IAAI,CACxB,eAAe,CAAC,EAAE,MAAM,GAAG,QAAQ,EACnC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CAqBxB"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { exec } from '
|
|
2
|
-
import { promisify } from 'node:util';
|
|
1
|
+
import { exec } from 'teen_process';
|
|
3
2
|
import { getPlatformName, isRemoteDriverSession, isAndroidUiautomator2DriverSession, isXCUITestDriverSession, PLATFORM, } from '../../session-store.js';
|
|
4
3
|
import { createUIResource, createAppListUI, addUIResourceToResponse, } from '../../ui/mcp-ui-utils.js';
|
|
5
4
|
import { execute } from '../../command.js';
|
|
6
5
|
import { resolveDriver, textResult, errorResult, toolErrorMessage, } from '../tool-response.js';
|
|
7
|
-
const execAsync = promisify(exec);
|
|
8
6
|
export async function listAppsFromDevice(driver, applicationType = 'User') {
|
|
9
7
|
const platform = getPlatformName(driver);
|
|
10
8
|
if (isRemoteDriverSession(driver)) {
|
|
@@ -28,7 +26,18 @@ export async function listAppsFromDevice(driver, applicationType = 'User') {
|
|
|
28
26
|
if (!udid) {
|
|
29
27
|
throw new Error('Could not determine simulator UDID from session capabilities');
|
|
30
28
|
}
|
|
31
|
-
const { stdout } = await
|
|
29
|
+
const { stdout } = await exec('xcrun', [
|
|
30
|
+
'simctl',
|
|
31
|
+
'listapps',
|
|
32
|
+
udid,
|
|
33
|
+
'|',
|
|
34
|
+
'plutil',
|
|
35
|
+
'-convert',
|
|
36
|
+
'json',
|
|
37
|
+
'-o',
|
|
38
|
+
'-',
|
|
39
|
+
'-',
|
|
40
|
+
]);
|
|
32
41
|
const result = JSON.parse(stdout);
|
|
33
42
|
return normalizeListAppsResult(result || {});
|
|
34
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-apps.js","sourceRoot":"","sources":["../../../src/tools/app-management/list-apps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"list-apps.js","sourceRoot":"","sources":["../../../src/tools/app-management/list-apps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-ios-simulator.d.ts","sourceRoot":"","sources":["../../../src/tools/ios/prepare-ios-simulator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"prepare-ios-simulator.d.ts","sourceRoot":"","sources":["../../../src/tools/ios/prepare-ios-simulator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,SAAS,CAAC;AA+btD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAsCjE"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { exec } from '
|
|
3
|
-
import { promisify } from 'node:util';
|
|
2
|
+
import { exec } from 'teen_process';
|
|
4
3
|
import path from 'node:path';
|
|
5
4
|
import os from 'node:os';
|
|
6
5
|
import { fs, net, plist, zip } from '@appium/support';
|
|
@@ -9,7 +8,6 @@ import { IOSManager } from '../../devicemanager/ios-manager.js';
|
|
|
9
8
|
import log from '../../logger.js';
|
|
10
9
|
import { textResult } from '../tool-response.js';
|
|
11
10
|
import { resolveAppiumMcpCachePath } from '../../utils/paths.js';
|
|
12
|
-
const execAsync = promisify(exec);
|
|
13
11
|
async function fileExists(filePath) {
|
|
14
12
|
return await fs.hasAccess(filePath);
|
|
15
13
|
}
|
|
@@ -65,10 +63,10 @@ async function getLatestWDAVersionFromCache() {
|
|
|
65
63
|
return filteredVersions.length > 0 ? filteredVersions[0] : null;
|
|
66
64
|
}
|
|
67
65
|
async function installAppOnSimulator(appPath, simulatorUdid) {
|
|
68
|
-
await
|
|
66
|
+
await exec('xcrun', ['simctl', 'install', simulatorUdid, appPath]);
|
|
69
67
|
}
|
|
70
68
|
async function launchAppOnSimulator(bundleId, simulatorUdid) {
|
|
71
|
-
await
|
|
69
|
+
await exec('xcrun', ['simctl', 'launch', simulatorUdid, bundleId]);
|
|
72
70
|
}
|
|
73
71
|
async function getAppBundleId(appPath) {
|
|
74
72
|
const manifest = (await plist.parsePlistFile(path.join(appPath, 'Info.plist')));
|
|
@@ -81,7 +79,12 @@ async function getWDAState(simulatorUdid) {
|
|
|
81
79
|
let installed = false;
|
|
82
80
|
// Check if installed via simctl listapps
|
|
83
81
|
try {
|
|
84
|
-
const { stdout } = await
|
|
82
|
+
const { stdout } = await exec('xcrun', [
|
|
83
|
+
'simctl',
|
|
84
|
+
'listapps',
|
|
85
|
+
simulatorUdid,
|
|
86
|
+
'--json',
|
|
87
|
+
]);
|
|
85
88
|
const data = JSON.parse(stdout);
|
|
86
89
|
for (const [bundleId, appInfo] of Object.entries(data)) {
|
|
87
90
|
if (bundleId.includes('WebDriverAgentRunner') ||
|
|
@@ -99,7 +102,13 @@ async function getWDAState(simulatorUdid) {
|
|
|
99
102
|
}
|
|
100
103
|
// Check if actually running via launchctl inside the simulator
|
|
101
104
|
try {
|
|
102
|
-
const { stdout } = await
|
|
105
|
+
const { stdout } = await exec('xcrun', [
|
|
106
|
+
'simctl',
|
|
107
|
+
'spawn',
|
|
108
|
+
simulatorUdid,
|
|
109
|
+
'launchctl',
|
|
110
|
+
'list',
|
|
111
|
+
]);
|
|
103
112
|
const running = stdout.includes('WebDriverAgentRunner');
|
|
104
113
|
return { installed: true, running };
|
|
105
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-ios-simulator.js","sourceRoot":"","sources":["../../../src/tools/ios/prepare-ios-simulator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prepare-ios-simulator.js","sourceRoot":"","sources":["../../../src/tools/ios/prepare-ios-simulator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-ui-utils.d.ts","sourceRoot":"","sources":["../../src/ui/mcp-ui-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,GAClB;IACD,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,WAAW,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CASA;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,EACF,QAAQ,EAAE,SAAS,GAAG,KAAK,EAC3B,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAChC,MAAM,
|
|
1
|
+
{"version":3,"file":"mcp-ui-utils.d.ts","sourceRoot":"","sources":["../../src/ui/mcp-ui-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,GAClB;IACD,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,WAAW,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CASA;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,EACF,QAAQ,EAAE,SAAS,GAAG,KAAK,EAC3B,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAChC,MAAM,CA+LR;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,GACf,MAAM,CAwMR;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE;IACpD,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,MAAM,CAiPT;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,KAAK,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,GACD,MAAM,CAmMR;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA0KtE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAAE,EAClB,cAAc,EAAE,MAAM,GAAG,IAAI,GAC5B,MAAM,CAsJR;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,KAAK,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACrD,MAAM,CAgNR;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,MAAe,GACxB,MAAM,CAsJR;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,EAC7D,UAAU,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,GAC9C;IAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;CAAE,CAQzB"}
|
package/dist/ui/mcp-ui-utils.js
CHANGED
|
@@ -36,21 +36,28 @@ export function createDevicePickerUI(devices, platform, deviceType) {
|
|
|
36
36
|
: 'iOS Devices'
|
|
37
37
|
: 'Android Devices';
|
|
38
38
|
const deviceCards = devices
|
|
39
|
-
.map((device, index) =>
|
|
40
|
-
|
|
39
|
+
.map((device, index) => {
|
|
40
|
+
const udid = String(device.udid);
|
|
41
|
+
const name = device.name || udid;
|
|
42
|
+
const state = device.state ? String(device.state) : undefined;
|
|
43
|
+
const type = device.type ? String(device.type) : undefined;
|
|
44
|
+
const stateClass = state ? sanitizeClassName(state) : '';
|
|
45
|
+
return `
|
|
46
|
+
<div class="device-card" data-udid="${escapeHtml(udid)}" data-index="${index}">
|
|
41
47
|
<div class="device-header">
|
|
42
|
-
<h3>${
|
|
43
|
-
${
|
|
48
|
+
<h3>${escapeHtml(name)}</h3>
|
|
49
|
+
${state ? `<span class="device-state ${stateClass}">${escapeHtml(state)}</span>` : ''}
|
|
44
50
|
</div>
|
|
45
51
|
<div class="device-details">
|
|
46
|
-
<p><strong>UDID:</strong> <code>${
|
|
47
|
-
${
|
|
52
|
+
<p><strong>UDID:</strong> <code>${escapeHtml(udid)}</code></p>
|
|
53
|
+
${type ? `<p><strong>Type:</strong> ${escapeHtml(type)}</p>` : ''}
|
|
48
54
|
</div>
|
|
49
|
-
<button class="select-device-btn" onclick="selectDevice(
|
|
55
|
+
<button class="select-device-btn" data-udid="${escapeHtml(udid)}" onclick="selectDevice(this.dataset.udid)">
|
|
50
56
|
Select Device
|
|
51
57
|
</button>
|
|
52
58
|
</div>
|
|
53
|
-
|
|
59
|
+
`;
|
|
60
|
+
})
|
|
54
61
|
.join('');
|
|
55
62
|
return `
|
|
56
63
|
<!DOCTYPE html>
|
|
@@ -189,8 +196,8 @@ export function createDevicePickerUI(devices, platform, deviceType) {
|
|
|
189
196
|
payload: {
|
|
190
197
|
intent: 'select-device',
|
|
191
198
|
params: {
|
|
192
|
-
platform:
|
|
193
|
-
${deviceType ? `iosDeviceType:
|
|
199
|
+
platform: ${escapeScriptValue(platform)},
|
|
200
|
+
${deviceType ? `iosDeviceType: ${escapeScriptValue(deviceType)},` : ''}
|
|
194
201
|
deviceUdid: udid
|
|
195
202
|
}
|
|
196
203
|
}
|
|
@@ -217,6 +224,7 @@ export function createDevicePickerUI(devices, platform, deviceType) {
|
|
|
217
224
|
* @returns HTML string for screenshot viewer
|
|
218
225
|
*/
|
|
219
226
|
export function createScreenshotViewerUI(screenshotBase64, filepath) {
|
|
227
|
+
const downloadFilename = filepath.split('/').pop() || 'screenshot.png';
|
|
220
228
|
return `
|
|
221
229
|
<!DOCTYPE html>
|
|
222
230
|
<html lang="en">
|
|
@@ -340,7 +348,7 @@ export function createScreenshotViewerUI(screenshotBase64, filepath) {
|
|
|
340
348
|
<div class="toolbar">
|
|
341
349
|
<div class="toolbar-left">
|
|
342
350
|
<span style="font-size: 14px; font-weight: 500;">📸 Screenshot</span>
|
|
343
|
-
<span class="filepath">${filepath}</span>
|
|
351
|
+
<span class="filepath">${escapeHtml(filepath)}</span>
|
|
344
352
|
</div>
|
|
345
353
|
<div class="toolbar-right">
|
|
346
354
|
<button class="btn btn-secondary" onclick="downloadScreenshot()">Download</button>
|
|
@@ -348,7 +356,7 @@ export function createScreenshotViewerUI(screenshotBase64, filepath) {
|
|
|
348
356
|
</div>
|
|
349
357
|
</div>
|
|
350
358
|
<div class="image-container" id="imageContainer">
|
|
351
|
-
<img src="data:image/png;base64,${screenshotBase64}"
|
|
359
|
+
<img src="data:image/png;base64,${escapeHtml(screenshotBase64)}"
|
|
352
360
|
alt="Screenshot"
|
|
353
361
|
class="screenshot-img"
|
|
354
362
|
id="screenshotImg"
|
|
@@ -390,7 +398,7 @@ export function createScreenshotViewerUI(screenshotBase64, filepath) {
|
|
|
390
398
|
function downloadScreenshot() {
|
|
391
399
|
const link = document.createElement('a');
|
|
392
400
|
link.href = img.src;
|
|
393
|
-
link.download =
|
|
401
|
+
link.download = ${escapeScriptValue(downloadFilename)};
|
|
394
402
|
link.click();
|
|
395
403
|
}
|
|
396
404
|
|
|
@@ -429,6 +437,9 @@ export function createSessionDashboardUI(sessionInfo) {
|
|
|
429
437
|
const sessionIdDisplay = sessionIdStr.length > 8
|
|
430
438
|
? `${sessionIdStr.substring(0, 8)}...`
|
|
431
439
|
: sessionIdStr;
|
|
440
|
+
const deviceName = sessionInfo.deviceName;
|
|
441
|
+
const platformVersion = sessionInfo.platformVersion;
|
|
442
|
+
const udid = sessionInfo.udid;
|
|
432
443
|
return `
|
|
433
444
|
<!DOCTYPE html>
|
|
434
445
|
<html lang="en">
|
|
@@ -548,37 +559,37 @@ export function createSessionDashboardUI(sessionInfo) {
|
|
|
548
559
|
<div class="info-grid">
|
|
549
560
|
<div class="info-card">
|
|
550
561
|
<label>Session ID</label>
|
|
551
|
-
<value>${sessionIdDisplay}</value>
|
|
562
|
+
<value>${escapeHtml(sessionIdDisplay)}</value>
|
|
552
563
|
</div>
|
|
553
564
|
<div class="info-card">
|
|
554
565
|
<label>Platform</label>
|
|
555
|
-
<value>${sessionInfo.platform}</value>
|
|
566
|
+
<value>${escapeHtml(sessionInfo.platform)}</value>
|
|
556
567
|
</div>
|
|
557
568
|
<div class="info-card">
|
|
558
569
|
<label>Automation</label>
|
|
559
|
-
<value>${sessionInfo.automationName}</value>
|
|
570
|
+
<value>${escapeHtml(sessionInfo.automationName)}</value>
|
|
560
571
|
</div>
|
|
561
|
-
${
|
|
572
|
+
${deviceName
|
|
562
573
|
? `
|
|
563
574
|
<div class="info-card">
|
|
564
575
|
<label>Device</label>
|
|
565
|
-
<value>${
|
|
576
|
+
<value>${escapeHtml(deviceName)}</value>
|
|
566
577
|
</div>
|
|
567
578
|
`
|
|
568
579
|
: ''}
|
|
569
|
-
${
|
|
580
|
+
${platformVersion
|
|
570
581
|
? `
|
|
571
582
|
<div class="info-card">
|
|
572
583
|
<label>Platform Version</label>
|
|
573
|
-
<value>${
|
|
584
|
+
<value>${escapeHtml(platformVersion)}</value>
|
|
574
585
|
</div>
|
|
575
586
|
`
|
|
576
587
|
: ''}
|
|
577
|
-
${
|
|
588
|
+
${udid
|
|
578
589
|
? `
|
|
579
590
|
<div class="info-card">
|
|
580
591
|
<label>UDID</label>
|
|
581
|
-
<value><code style="font-size: 12px;">${
|
|
592
|
+
<value><code style="font-size: 12px;">${escapeHtml(udid)}</code></value>
|
|
582
593
|
</div>
|
|
583
594
|
`
|
|
584
595
|
: ''}
|
|
@@ -1182,17 +1193,17 @@ export function createContextSwitcherUI(contexts, currentContext) {
|
|
|
1182
1193
|
export function createAppListUI(apps) {
|
|
1183
1194
|
const appCards = apps
|
|
1184
1195
|
.map((app) => `
|
|
1185
|
-
<div class="app-card" data-package="${app.packageName}">
|
|
1196
|
+
<div class="app-card" data-package="${escapeHtml(app.packageName)}">
|
|
1186
1197
|
<div class="app-header">
|
|
1187
|
-
<h3>${app.appName || app.packageName}</h3>
|
|
1198
|
+
<h3>${escapeHtml(app.appName || app.packageName)}</h3>
|
|
1188
1199
|
</div>
|
|
1189
1200
|
<div class="app-details">
|
|
1190
|
-
<p><strong>Package:</strong> <code>${app.packageName}</code></p>
|
|
1201
|
+
<p><strong>Package:</strong> <code>${escapeHtml(app.packageName)}</code></p>
|
|
1191
1202
|
</div>
|
|
1192
1203
|
<div class="app-actions">
|
|
1193
|
-
<button class="btn btn-primary"
|
|
1194
|
-
<button class="btn btn-secondary"
|
|
1195
|
-
<button class="btn btn-danger"
|
|
1204
|
+
<button class="btn btn-primary" data-package="${escapeHtml(app.packageName)}" onclick="activateApp(this.dataset.package)">Activate</button>
|
|
1205
|
+
<button class="btn btn-secondary" data-package="${escapeHtml(app.packageName)}" onclick="terminateApp(this.dataset.package)">Terminate</button>
|
|
1206
|
+
<button class="btn btn-danger" data-package="${escapeHtml(app.packageName)}" onclick="uninstallApp(this.dataset.package)">Uninstall</button>
|
|
1196
1207
|
</div>
|
|
1197
1208
|
</div>
|
|
1198
1209
|
`)
|
|
@@ -1561,4 +1572,18 @@ function escapeHtml(value) {
|
|
|
1561
1572
|
.replace(/"/g, '"')
|
|
1562
1573
|
.replace(/'/g, ''');
|
|
1563
1574
|
}
|
|
1575
|
+
function escapeScriptValue(value) {
|
|
1576
|
+
return JSON.stringify(String(value))
|
|
1577
|
+
.replace(/</g, '\\u003C')
|
|
1578
|
+
.replace(/>/g, '\\u003E')
|
|
1579
|
+
.replace(/&/g, '\\u0026')
|
|
1580
|
+
.replace(/\u2028/g, '\\u2028')
|
|
1581
|
+
.replace(/\u2029/g, '\\u2029');
|
|
1582
|
+
}
|
|
1583
|
+
function sanitizeClassName(value) {
|
|
1584
|
+
return escapeHtml(String(value)
|
|
1585
|
+
.toLowerCase()
|
|
1586
|
+
.replace(/[^a-z0-9_-]+/g, '-')
|
|
1587
|
+
.replace(/^-+|-+$/g, ''));
|
|
1588
|
+
}
|
|
1564
1589
|
//# sourceMappingURL=mcp-ui-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-ui-utils.js","sourceRoot":"","sources":["../../src/ui/mcp-ui-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAW,EACX,WAAmB;IASnB,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,GAAG;YACH,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,WAAW;SAClB;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAKE,EACF,QAA2B,EAC3B,UAAiC;IAEjC,MAAM,eAAe,GACnB,QAAQ,KAAK,KAAK,IAAI,UAAU;QAC9B,CAAC,CAAC,UAAU,KAAK,WAAW;YAC1B,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,aAAa;QACjB,CAAC,CAAC,iBAAiB,CAAC;IAExB,MAAM,WAAW,GAAG,OAAO;SACxB,GAAG,
|
|
1
|
+
{"version":3,"file":"mcp-ui-utils.js","sourceRoot":"","sources":["../../src/ui/mcp-ui-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAW,EACX,WAAmB;IASnB,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,GAAG;YACH,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,WAAW;SAClB;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAKE,EACF,QAA2B,EAC3B,UAAiC;IAEjC,MAAM,eAAe,GACnB,QAAQ,KAAK,KAAK,IAAI,UAAU;QAC9B,CAAC,CAAC,UAAU,KAAK,WAAW;YAC1B,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,aAAa;QACjB,CAAC,CAAC,iBAAiB,CAAC;IAExB,MAAM,WAAW,GAAG,OAAO;SACxB,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3D,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEzD,OAAO;0CAC6B,UAAU,CAAC,IAAI,CAAC,iBAAiB,KAAK;;cAElE,UAAU,CAAC,IAAI,CAAC;UACpB,KAAK,CAAC,CAAC,CAAC,6BAA6B,UAAU,KAAK,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;;;0CAGnD,UAAU,CAAC,IAAI,CAAC;UAChD,IAAI,CAAC,CAAC,CAAC,6BAA6B,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;;qDAEpB,UAAU,CAAC,IAAI,CAAC;;;;GAIlE,CAAC;IACA,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,OAAO;;;;;;2BAMkB,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAoHpB,eAAe;iBACpB,OAAO,CAAC,MAAM,UAAU,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;;QAGhE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,iDAAiD;;;;;;;;;;;wBAWpE,iBAAiB,CAAC,QAAQ,CAAC;cACrC,UAAU,CAAC,CAAC,CAAC,kBAAkB,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;GAkB/E,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,gBAAwB,EACxB,QAAgB;IAEhB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,gBAAgB,CAAC;IAEvE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCA2HwB,UAAU,CAAC,QAAQ,CAAC;;;;;;;;wCAQb,UAAU,CAAC,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA0C5C,iBAAiB,CAAC,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;GAuBxD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,WAOxC;IACC,qCAAqC;IACrC,MAAM,YAAY,GAChB,OAAO,WAAW,CAAC,SAAS,KAAK,QAAQ;QACvC,CAAC,CAAC,WAAW,CAAC,SAAS;QACvB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC;IAEjD,gEAAgE;IAChE,MAAM,gBAAgB,GACpB,YAAY,CAAC,MAAM,GAAG,CAAC;QACrB,CAAC,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK;QACtC,CAAC,CAAC,YAAY,CAAC;IACnB,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;IAC1C,MAAM,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC;IACpD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAE9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAuHU,UAAU,CAAC,gBAAgB,CAAC;;;;mBAI5B,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC;;;;mBAIhC,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC;;UAG/C,UAAU;QACR,CAAC,CAAC;;;mBAGK,UAAU,CAAC,UAAU,CAAC;;SAEhC;QACG,CAAC,CAAC,EACN;UAEE,eAAe;QACb,CAAC,CAAC;;;mBAGK,UAAU,CAAC,eAAe,CAAC;;SAErC;QACG,CAAC,CAAC,EACN;UAEE,IAAI;QACF,CAAC,CAAC;;;kDAGoC,UAAU,CAAC,IAAI,CAAC;;SAEzD;QACG,CAAC,CAAC,EACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEL,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,QASE;IAEF,MAAM,YAAY,GAAG,QAAQ;SAC1B,GAAG,CACF,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;4CACkB,KAAK;;cAEnC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;;YAE7B,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC,EAAE;YAC/E,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,EAAE;YACzE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC,EAAE;;;QAGnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,kDAAkD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QACpG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,0DAA0D,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAC1H,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,+DAA+D,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;;UAElI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;SAC/B,GAAG,CACF,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC;;qCAED,UAAU,CAAC,QAAQ,CAAC;qCACpB,UAAU,CAAC,QAAQ,CAAC;sDACH,UAAU,CAAC,QAAQ,CAAC,oBAAoB,UAAU,CAAC,QAAQ,CAAC;;SAEzG,CACE;SACA,IAAI,CAAC,EAAE,CAAC;;;GAGhB,CACE;SACA,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgIQ,QAAQ,CAAC,MAAM,wBAAwB,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;;QAGhF,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BpE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,UAAkB;IAC5D,+BAA+B;IAC/B,MAAM,aAAa,GAAG,UAAU;SAC7B,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE3B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAoGkB,UAAU,CAAC,MAAM;;;;;;;;;;+CAUG,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAsC5B,aAAa;;;;;;;;;;;;GAY1C,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAkB,EAClB,cAA6B;IAE7B,MAAM,YAAY,GAAG,QAAQ;SAC1B,GAAG,CACF,CAAC,OAAO,EAAE,EAAE,CAAC;+BACY,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;mCACtC,OAAO;;cAE5B,OAAO;UACX,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,EAAE;;;UAG5E,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY;;oFAEiB,OAAO;UACjF,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;;;GAGxD,CACE;SACA,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0GQ,QAAQ,CAAC,MAAM,WAAW,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;;QAGnE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,8BAA8B;;;;;;;;;;;;;;;;;;;GAmBxE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAsD;IAEtD,MAAM,QAAQ,GAAG,IAAI;SAClB,GAAG,CACF,CAAC,GAAG,EAAE,EAAE,CAAC;0CAC2B,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;;cAEvD,UAAU,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,WAAW,CAAC;;;6CAGX,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;;;wDAGhB,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;0DACzB,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;uDAC9B,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;;;GAG/E,CACE;SACA,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAyHU,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;QAKzD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DxD,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,WAAmB,MAAM;IAEzB,+BAA+B;IAC/B,MAAM,WAAW,GAAG,IAAI;SACrB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE3B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCA4F4B,QAAQ;oDACO,IAAI,CAAC,MAAM,gBAAgB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM;;;;;;;;;iDAStD,WAAW;;;;;;;;;;;;;;;;+BAgB7B,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;GAsB/D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAA6D,EAC7D,UAA+C;IAE/C,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,EAAE,CAAC;QAC9D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO;QACL,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,MAAM,CAAC,KAAK,CAAC;SACjB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACjC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;SACxB,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;SACxB,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;SACxB,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;SAC7B,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,UAAU,CACf,MAAM,CAAC,KAAK,CAAC;SACV,WAAW,EAAE;SACb,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SAC7B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAC3B,CAAC;AACJ,CAAC"}
|
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.86.
|
|
6
|
+
"version": "1.86.5",
|
|
7
7
|
"packages": [
|
|
8
8
|
{
|
|
9
9
|
"registryType": "npm",
|
|
10
10
|
"identifier": "appium-mcp",
|
|
11
|
-
"version": "1.86.
|
|
11
|
+
"version": "1.86.5",
|
|
12
12
|
"transport": {
|
|
13
13
|
"type": "stdio"
|
|
14
14
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { ContentResult } from 'fastmcp';
|
|
2
|
-
import { exec } from '
|
|
3
|
-
import { promisify } from 'node:util';
|
|
2
|
+
import { exec } from 'teen_process';
|
|
4
3
|
import type { DriverInstance } from '../../session-store.js';
|
|
5
4
|
import {
|
|
6
5
|
getPlatformName,
|
|
@@ -24,8 +23,6 @@ import {
|
|
|
24
23
|
toolErrorMessage,
|
|
25
24
|
} from '../tool-response.js';
|
|
26
25
|
|
|
27
|
-
const execAsync = promisify(exec);
|
|
28
|
-
|
|
29
26
|
export async function listAppsFromDevice(
|
|
30
27
|
driver: DriverInstance,
|
|
31
28
|
applicationType: 'User' | 'System' = 'User'
|
|
@@ -58,9 +55,18 @@ export async function listAppsFromDevice(
|
|
|
58
55
|
'Could not determine simulator UDID from session capabilities'
|
|
59
56
|
);
|
|
60
57
|
}
|
|
61
|
-
const { stdout } = await
|
|
62
|
-
|
|
63
|
-
|
|
58
|
+
const { stdout } = await exec('xcrun', [
|
|
59
|
+
'simctl',
|
|
60
|
+
'listapps',
|
|
61
|
+
udid,
|
|
62
|
+
'|',
|
|
63
|
+
'plutil',
|
|
64
|
+
'-convert',
|
|
65
|
+
'json',
|
|
66
|
+
'-o',
|
|
67
|
+
'-',
|
|
68
|
+
'-',
|
|
69
|
+
]);
|
|
64
70
|
const result = JSON.parse(stdout);
|
|
65
71
|
return normalizeListAppsResult(result || {});
|
|
66
72
|
}
|
|
@@ -5,8 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { ContentResult, FastMCP } from 'fastmcp';
|
|
7
7
|
import { z } from 'zod';
|
|
8
|
-
import { exec } from '
|
|
9
|
-
import { promisify } from 'node:util';
|
|
8
|
+
import { exec } from 'teen_process';
|
|
10
9
|
import path from 'node:path';
|
|
11
10
|
import os from 'node:os';
|
|
12
11
|
import { fs, net, plist, zip } from '@appium/support';
|
|
@@ -16,8 +15,6 @@ import log from '../../logger.js';
|
|
|
16
15
|
import { textResult } from '../tool-response.js';
|
|
17
16
|
import { resolveAppiumMcpCachePath } from '../../utils/paths.js';
|
|
18
17
|
|
|
19
|
-
const execAsync = promisify(exec);
|
|
20
|
-
|
|
21
18
|
type StepStatus = 'completed' | 'skipped' | 'failed';
|
|
22
19
|
|
|
23
20
|
interface StepResult {
|
|
@@ -118,14 +115,14 @@ async function installAppOnSimulator(
|
|
|
118
115
|
appPath: string,
|
|
119
116
|
simulatorUdid: string
|
|
120
117
|
): Promise<void> {
|
|
121
|
-
await
|
|
118
|
+
await exec('xcrun', ['simctl', 'install', simulatorUdid, appPath]);
|
|
122
119
|
}
|
|
123
120
|
|
|
124
121
|
async function launchAppOnSimulator(
|
|
125
122
|
bundleId: string,
|
|
126
123
|
simulatorUdid: string
|
|
127
124
|
): Promise<void> {
|
|
128
|
-
await
|
|
125
|
+
await exec('xcrun', ['simctl', 'launch', simulatorUdid, bundleId]);
|
|
129
126
|
}
|
|
130
127
|
|
|
131
128
|
async function getAppBundleId(appPath: string): Promise<string> {
|
|
@@ -143,9 +140,12 @@ async function getWDAState(simulatorUdid: string): Promise<WDAState> {
|
|
|
143
140
|
|
|
144
141
|
// Check if installed via simctl listapps
|
|
145
142
|
try {
|
|
146
|
-
const { stdout } = await
|
|
147
|
-
|
|
148
|
-
|
|
143
|
+
const { stdout } = await exec('xcrun', [
|
|
144
|
+
'simctl',
|
|
145
|
+
'listapps',
|
|
146
|
+
simulatorUdid,
|
|
147
|
+
'--json',
|
|
148
|
+
]);
|
|
149
149
|
const data = JSON.parse(stdout);
|
|
150
150
|
|
|
151
151
|
for (const [bundleId, appInfo] of Object.entries(data)) {
|
|
@@ -167,9 +167,13 @@ async function getWDAState(simulatorUdid: string): Promise<WDAState> {
|
|
|
167
167
|
|
|
168
168
|
// Check if actually running via launchctl inside the simulator
|
|
169
169
|
try {
|
|
170
|
-
const { stdout } = await
|
|
171
|
-
|
|
172
|
-
|
|
170
|
+
const { stdout } = await exec('xcrun', [
|
|
171
|
+
'simctl',
|
|
172
|
+
'spawn',
|
|
173
|
+
simulatorUdid,
|
|
174
|
+
'launchctl',
|
|
175
|
+
'list',
|
|
176
|
+
]);
|
|
173
177
|
const running = stdout.includes('WebDriverAgentRunner');
|
|
174
178
|
return { installed: true, running };
|
|
175
179
|
} catch {
|
package/src/ui/mcp-ui-utils.ts
CHANGED
|
@@ -59,23 +59,29 @@ export function createDevicePickerUI(
|
|
|
59
59
|
: 'Android Devices';
|
|
60
60
|
|
|
61
61
|
const deviceCards = devices
|
|
62
|
-
.map(
|
|
63
|
-
(device
|
|
64
|
-
|
|
62
|
+
.map((device, index) => {
|
|
63
|
+
const udid = String(device.udid);
|
|
64
|
+
const name = device.name || udid;
|
|
65
|
+
const state = device.state ? String(device.state) : undefined;
|
|
66
|
+
const type = device.type ? String(device.type) : undefined;
|
|
67
|
+
const stateClass = state ? sanitizeClassName(state) : '';
|
|
68
|
+
|
|
69
|
+
return `
|
|
70
|
+
<div class="device-card" data-udid="${escapeHtml(udid)}" data-index="${index}">
|
|
65
71
|
<div class="device-header">
|
|
66
|
-
<h3>${
|
|
67
|
-
${
|
|
72
|
+
<h3>${escapeHtml(name)}</h3>
|
|
73
|
+
${state ? `<span class="device-state ${stateClass}">${escapeHtml(state)}</span>` : ''}
|
|
68
74
|
</div>
|
|
69
75
|
<div class="device-details">
|
|
70
|
-
<p><strong>UDID:</strong> <code>${
|
|
71
|
-
${
|
|
76
|
+
<p><strong>UDID:</strong> <code>${escapeHtml(udid)}</code></p>
|
|
77
|
+
${type ? `<p><strong>Type:</strong> ${escapeHtml(type)}</p>` : ''}
|
|
72
78
|
</div>
|
|
73
|
-
<button class="select-device-btn" onclick="selectDevice(
|
|
79
|
+
<button class="select-device-btn" data-udid="${escapeHtml(udid)}" onclick="selectDevice(this.dataset.udid)">
|
|
74
80
|
Select Device
|
|
75
81
|
</button>
|
|
76
82
|
</div>
|
|
77
|
-
|
|
78
|
-
)
|
|
83
|
+
`;
|
|
84
|
+
})
|
|
79
85
|
.join('');
|
|
80
86
|
|
|
81
87
|
return `
|
|
@@ -215,8 +221,8 @@ export function createDevicePickerUI(
|
|
|
215
221
|
payload: {
|
|
216
222
|
intent: 'select-device',
|
|
217
223
|
params: {
|
|
218
|
-
platform:
|
|
219
|
-
${deviceType ? `iosDeviceType:
|
|
224
|
+
platform: ${escapeScriptValue(platform)},
|
|
225
|
+
${deviceType ? `iosDeviceType: ${escapeScriptValue(deviceType)},` : ''}
|
|
220
226
|
deviceUdid: udid
|
|
221
227
|
}
|
|
222
228
|
}
|
|
@@ -247,6 +253,8 @@ export function createScreenshotViewerUI(
|
|
|
247
253
|
screenshotBase64: string,
|
|
248
254
|
filepath: string
|
|
249
255
|
): string {
|
|
256
|
+
const downloadFilename = filepath.split('/').pop() || 'screenshot.png';
|
|
257
|
+
|
|
250
258
|
return `
|
|
251
259
|
<!DOCTYPE html>
|
|
252
260
|
<html lang="en">
|
|
@@ -370,7 +378,7 @@ export function createScreenshotViewerUI(
|
|
|
370
378
|
<div class="toolbar">
|
|
371
379
|
<div class="toolbar-left">
|
|
372
380
|
<span style="font-size: 14px; font-weight: 500;">📸 Screenshot</span>
|
|
373
|
-
<span class="filepath">${filepath}</span>
|
|
381
|
+
<span class="filepath">${escapeHtml(filepath)}</span>
|
|
374
382
|
</div>
|
|
375
383
|
<div class="toolbar-right">
|
|
376
384
|
<button class="btn btn-secondary" onclick="downloadScreenshot()">Download</button>
|
|
@@ -378,7 +386,7 @@ export function createScreenshotViewerUI(
|
|
|
378
386
|
</div>
|
|
379
387
|
</div>
|
|
380
388
|
<div class="image-container" id="imageContainer">
|
|
381
|
-
<img src="data:image/png;base64,${screenshotBase64}"
|
|
389
|
+
<img src="data:image/png;base64,${escapeHtml(screenshotBase64)}"
|
|
382
390
|
alt="Screenshot"
|
|
383
391
|
class="screenshot-img"
|
|
384
392
|
id="screenshotImg"
|
|
@@ -420,7 +428,7 @@ export function createScreenshotViewerUI(
|
|
|
420
428
|
function downloadScreenshot() {
|
|
421
429
|
const link = document.createElement('a');
|
|
422
430
|
link.href = img.src;
|
|
423
|
-
link.download =
|
|
431
|
+
link.download = ${escapeScriptValue(downloadFilename)};
|
|
424
432
|
link.click();
|
|
425
433
|
}
|
|
426
434
|
|
|
@@ -470,6 +478,9 @@ export function createSessionDashboardUI(sessionInfo: {
|
|
|
470
478
|
sessionIdStr.length > 8
|
|
471
479
|
? `${sessionIdStr.substring(0, 8)}...`
|
|
472
480
|
: sessionIdStr;
|
|
481
|
+
const deviceName = sessionInfo.deviceName;
|
|
482
|
+
const platformVersion = sessionInfo.platformVersion;
|
|
483
|
+
const udid = sessionInfo.udid;
|
|
473
484
|
|
|
474
485
|
return `
|
|
475
486
|
<!DOCTYPE html>
|
|
@@ -590,42 +601,42 @@ export function createSessionDashboardUI(sessionInfo: {
|
|
|
590
601
|
<div class="info-grid">
|
|
591
602
|
<div class="info-card">
|
|
592
603
|
<label>Session ID</label>
|
|
593
|
-
<value>${sessionIdDisplay}</value>
|
|
604
|
+
<value>${escapeHtml(sessionIdDisplay)}</value>
|
|
594
605
|
</div>
|
|
595
606
|
<div class="info-card">
|
|
596
607
|
<label>Platform</label>
|
|
597
|
-
<value>${sessionInfo.platform}</value>
|
|
608
|
+
<value>${escapeHtml(sessionInfo.platform)}</value>
|
|
598
609
|
</div>
|
|
599
610
|
<div class="info-card">
|
|
600
611
|
<label>Automation</label>
|
|
601
|
-
<value>${sessionInfo.automationName}</value>
|
|
612
|
+
<value>${escapeHtml(sessionInfo.automationName)}</value>
|
|
602
613
|
</div>
|
|
603
614
|
${
|
|
604
|
-
|
|
615
|
+
deviceName
|
|
605
616
|
? `
|
|
606
617
|
<div class="info-card">
|
|
607
618
|
<label>Device</label>
|
|
608
|
-
<value>${
|
|
619
|
+
<value>${escapeHtml(deviceName)}</value>
|
|
609
620
|
</div>
|
|
610
621
|
`
|
|
611
622
|
: ''
|
|
612
623
|
}
|
|
613
624
|
${
|
|
614
|
-
|
|
625
|
+
platformVersion
|
|
615
626
|
? `
|
|
616
627
|
<div class="info-card">
|
|
617
628
|
<label>Platform Version</label>
|
|
618
|
-
<value>${
|
|
629
|
+
<value>${escapeHtml(platformVersion)}</value>
|
|
619
630
|
</div>
|
|
620
631
|
`
|
|
621
632
|
: ''
|
|
622
633
|
}
|
|
623
634
|
${
|
|
624
|
-
|
|
635
|
+
udid
|
|
625
636
|
? `
|
|
626
637
|
<div class="info-card">
|
|
627
638
|
<label>UDID</label>
|
|
628
|
-
<value><code style="font-size: 12px;">${
|
|
639
|
+
<value><code style="font-size: 12px;">${escapeHtml(udid)}</code></value>
|
|
629
640
|
</div>
|
|
630
641
|
`
|
|
631
642
|
: ''
|
|
@@ -1260,17 +1271,17 @@ export function createAppListUI(
|
|
|
1260
1271
|
const appCards = apps
|
|
1261
1272
|
.map(
|
|
1262
1273
|
(app) => `
|
|
1263
|
-
<div class="app-card" data-package="${app.packageName}">
|
|
1274
|
+
<div class="app-card" data-package="${escapeHtml(app.packageName)}">
|
|
1264
1275
|
<div class="app-header">
|
|
1265
|
-
<h3>${app.appName || app.packageName}</h3>
|
|
1276
|
+
<h3>${escapeHtml(app.appName || app.packageName)}</h3>
|
|
1266
1277
|
</div>
|
|
1267
1278
|
<div class="app-details">
|
|
1268
|
-
<p><strong>Package:</strong> <code>${app.packageName}</code></p>
|
|
1279
|
+
<p><strong>Package:</strong> <code>${escapeHtml(app.packageName)}</code></p>
|
|
1269
1280
|
</div>
|
|
1270
1281
|
<div class="app-actions">
|
|
1271
|
-
<button class="btn btn-primary"
|
|
1272
|
-
<button class="btn btn-secondary"
|
|
1273
|
-
<button class="btn btn-danger"
|
|
1282
|
+
<button class="btn btn-primary" data-package="${escapeHtml(app.packageName)}" onclick="activateApp(this.dataset.package)">Activate</button>
|
|
1283
|
+
<button class="btn btn-secondary" data-package="${escapeHtml(app.packageName)}" onclick="terminateApp(this.dataset.package)">Terminate</button>
|
|
1284
|
+
<button class="btn btn-danger" data-package="${escapeHtml(app.packageName)}" onclick="uninstallApp(this.dataset.package)">Uninstall</button>
|
|
1274
1285
|
</div>
|
|
1275
1286
|
</div>
|
|
1276
1287
|
`
|
|
@@ -1652,3 +1663,21 @@ function escapeHtml(value: unknown): string {
|
|
|
1652
1663
|
.replace(/"/g, '"')
|
|
1653
1664
|
.replace(/'/g, ''');
|
|
1654
1665
|
}
|
|
1666
|
+
|
|
1667
|
+
function escapeScriptValue(value: unknown): string {
|
|
1668
|
+
return JSON.stringify(String(value))
|
|
1669
|
+
.replace(/</g, '\\u003C')
|
|
1670
|
+
.replace(/>/g, '\\u003E')
|
|
1671
|
+
.replace(/&/g, '\\u0026')
|
|
1672
|
+
.replace(/\u2028/g, '\\u2028')
|
|
1673
|
+
.replace(/\u2029/g, '\\u2029');
|
|
1674
|
+
}
|
|
1675
|
+
|
|
1676
|
+
function sanitizeClassName(value: unknown): string {
|
|
1677
|
+
return escapeHtml(
|
|
1678
|
+
String(value)
|
|
1679
|
+
.toLowerCase()
|
|
1680
|
+
.replace(/[^a-z0-9_-]+/g, '-')
|
|
1681
|
+
.replace(/^-+|-+$/g, '')
|
|
1682
|
+
);
|
|
1683
|
+
}
|