appium-mcp 1.92.2 → 1.92.4

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 CHANGED
@@ -1,3 +1,15 @@
1
+ ## [1.92.4](https://github.com/appium/appium-mcp/compare/v1.92.3...v1.92.4) (2026-08-16)
2
+
3
+ ### Bug Fixes
4
+
5
+ * **app-management:** surface app list failures instead of caching an empty list ([#489](https://github.com/appium/appium-mcp/issues/489)) ([f2d38a4](https://github.com/appium/appium-mcp/commit/f2d38a467ddd8845d8aed4908875066e0d2dea18))
6
+
7
+ ## [1.92.3](https://github.com/appium/appium-mcp/compare/v1.92.2...v1.92.3) (2026-08-15)
8
+
9
+ ### Bug Fixes
10
+
11
+ * **app-management:** resolve app names against rehydrated sessions ([#488](https://github.com/appium/appium-mcp/issues/488)) ([f268e87](https://github.com/appium/appium-mcp/commit/f268e87ec871b7a39fee1553c2c652799d5210b8))
12
+
1
13
  ## [1.92.2](https://github.com/appium/appium-mcp/compare/v1.92.1...v1.92.2) (2026-08-13)
2
14
 
3
15
  ### Bug Fixes
@@ -1,5 +1,5 @@
1
- import { getSessionId, getDriver, getPlatformName, PLATFORM, isXCUITestDriverSession } from '../../session-store.js';
2
- import { noActiveDriverSessionMessage } from '../tool-response.js';
1
+ import { getSessionId, getPlatformName, PLATFORM, isXCUITestDriverSession } from '../../session-store.js';
2
+ import { noActiveDriverSessionMessage, resolveDriver } from '../tool-response.js';
3
3
  import { listAppsFromDevice } from './list-apps.js';
4
4
  const CACHE_TTL_MS = 60_000; // 1 minute
5
5
  const appListCache = new Map();
@@ -71,10 +71,11 @@ async function getInstalledApps(sessionId) {
71
71
  if (cached && Date.now() - cached.timestamp < CACHE_TTL_MS) {
72
72
  return cached.apps;
73
73
  }
74
- const driver = getDriver(sessionId);
75
- if (!driver) {
74
+ const resolved = await resolveDriver(sessionId);
75
+ if (!resolved.ok) {
76
76
  throw new Error(noActiveDriverSessionMessage(sessionId));
77
77
  }
78
+ const { driver } = resolved;
78
79
  const platform = getPlatformName(driver);
79
80
  let apps;
80
81
  const isSimulator = isXCUITestDriverSession(driver) ? driver.isSimulator() : false;
@@ -85,6 +86,10 @@ async function getInstalledApps(sessionId) {
85
86
  listAppsFromDevice(driver, 'User'),
86
87
  listAppsFromDevice(driver, 'System'),
87
88
  ]);
89
+ const failures = results.filter((result) => result.status === 'rejected');
90
+ if (failures.length === results.length) {
91
+ throw failures[0].reason;
92
+ }
88
93
  const seen = new Set();
89
94
  apps = [];
90
95
  for (const result of results) {
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-app-id.js","sourceRoot":"","sources":["../../../src/tools/app-management/resolve-app-id.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve-app-id.js","sourceRoot":"","sources":["../../../src/tools/app-management/resolve-app-id.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appium-mcp",
3
- "version": "1.92.2",
3
+ "version": "1.92.4",
4
4
  "description": "Intelligent MCP server providing AI assistants with powerful tools and resources for Appium mobile automation",
5
5
  "bugs": {
6
6
  "url": "https://github.com/appium/appium-mcp/issues"
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.92.2",
6
+ "version": "1.92.4",
7
7
  "packages": [
8
8
  {
9
9
  "registryType": "npm",
10
10
  "identifier": "appium-mcp",
11
- "version": "1.92.2",
11
+ "version": "1.92.4",
12
12
  "transport": {
13
13
  "type": "stdio"
14
14
  }
@@ -1,7 +1,7 @@
1
1
  import type {XCUITestDriver} from 'appium-xcuitest-driver';
2
2
 
3
- import {getSessionId, getDriver, getPlatformName, PLATFORM, isXCUITestDriverSession} from '../../session-store.js';
4
- import {noActiveDriverSessionMessage} from '../tool-response.js';
3
+ import {getSessionId, getPlatformName, PLATFORM, isXCUITestDriverSession} from '../../session-store.js';
4
+ import {noActiveDriverSessionMessage, resolveDriver} from '../tool-response.js';
5
5
  import {listAppsFromDevice} from './list-apps.js';
6
6
 
7
7
  interface CacheEntry {
@@ -89,10 +89,11 @@ async function getInstalledApps(sessionId?: string): Promise<{packageName: strin
89
89
  return cached.apps;
90
90
  }
91
91
 
92
- const driver = getDriver(sessionId);
93
- if (!driver) {
92
+ const resolved = await resolveDriver(sessionId);
93
+ if (!resolved.ok) {
94
94
  throw new Error(noActiveDriverSessionMessage(sessionId));
95
95
  }
96
+ const {driver} = resolved;
96
97
 
97
98
  const platform = getPlatformName(driver);
98
99
 
@@ -106,6 +107,10 @@ async function getInstalledApps(sessionId?: string): Promise<{packageName: strin
106
107
  listAppsFromDevice(driver, 'User'),
107
108
  listAppsFromDevice(driver, 'System'),
108
109
  ]);
110
+ const failures = results.filter((result) => result.status === 'rejected');
111
+ if (failures.length === results.length) {
112
+ throw failures[0].reason;
113
+ }
109
114
  const seen = new Set<string>();
110
115
  apps = [];
111
116
  for (const result of results) {