appium-desktop-driver 2.1.0-preview.2 → 2.1.0-preview.3
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 +8 -0
- package/build/lib/mcp/index.js +31 -0
- package/build/lib/mcp/index.js.map +1 -1
- package/build/lib/mcp/session.d.ts +4 -0
- package/build/lib/mcp/session.d.ts.map +1 -1
- package/build/lib/mcp/session.js +21 -0
- package/build/lib/mcp/session.js.map +1 -1
- package/build/lib/mcp/tools/advanced.js +1 -1
- package/build/lib/mcp/tools/advanced.js.map +1 -1
- package/build/lib/mcp/tools/app.js +2 -2
- package/build/lib/mcp/tools/app.js.map +1 -1
- package/build/lib/mcp/tools/context.js +3 -3
- package/build/lib/mcp/tools/context.js.map +1 -1
- package/build/lib/mcp/tools/find.js +2 -2
- package/build/lib/mcp/tools/find.js.map +1 -1
- package/build/lib/mcp/tools/patterns.d.ts.map +1 -1
- package/build/lib/mcp/tools/patterns.js +11 -10
- package/build/lib/mcp/tools/patterns.js.map +1 -1
- package/build/lib/mcp/tools/session.d.ts.map +1 -1
- package/build/lib/mcp/tools/session.js +32 -5
- package/build/lib/mcp/tools/session.js.map +1 -1
- package/build/lib/mcp/tools/vision.d.ts.map +1 -1
- package/build/lib/mcp/tools/vision.js +6 -11
- package/build/lib/mcp/tools/vision.js.map +1 -1
- package/build/lib/mcp/tools/window.d.ts.map +1 -1
- package/build/lib/mcp/tools/window.js +5 -16
- package/build/lib/mcp/tools/window.js.map +1 -1
- package/package.json +2 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## [2.1.0-preview.3](https://github.com/verisoft-ai/appium-desktop-driver/compare/v2.1.0-preview.2...v2.1.0-preview.3) (2026-06-09)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* **invoke:** fall back to LegacyIIAccessiblePattern when InvokePattern QI fails ([31c1a0e](https://github.com/verisoft-ai/appium-desktop-driver/commit/31c1a0ed92288e4158eb1aa12af06f3825762c45))
|
|
6
|
+
* **mcp:** introduce system prompt in mcp and clarify descriptions ([db645f8](https://github.com/verisoft-ai/appium-desktop-driver/commit/db645f863d7a083b9db956589363d614837a2c1b))
|
|
7
|
+
* throw error when deleting unexisting file/folder ([7258d85](https://github.com/verisoft-ai/appium-desktop-driver/commit/7258d8508e955b257a7134ce23adebe6a3fe3847))
|
|
8
|
+
|
|
1
9
|
## [2.1.0-preview.2](https://github.com/verisoft-ai/appium-desktop-driver/compare/v2.1.0-preview.1...v2.1.0-preview.2) (2026-06-08)
|
|
2
10
|
|
|
3
11
|
### Miscellaneous Chores
|
package/build/lib/mcp/index.js
CHANGED
|
@@ -22,6 +22,37 @@ async function main() {
|
|
|
22
22
|
const server = new mcp_js_1.McpServer({
|
|
23
23
|
name: 'desktop-driver-mcp',
|
|
24
24
|
version: '1.3.0',
|
|
25
|
+
}, {
|
|
26
|
+
instructions: `
|
|
27
|
+
You are a Windows desktop automation agent using the Appium DesktopDriver via UI Automation (UIA).
|
|
28
|
+
|
|
29
|
+
## Session
|
|
30
|
+
- Before starting, ask the user: should you launch a new app or connect to an existing session?
|
|
31
|
+
- If connecting to an existing session: call list_sessions, show the results to the user, and ask which session to attach to before calling attach_session.
|
|
32
|
+
- Only call delete_session when the user explicitly asks to end the session.
|
|
33
|
+
|
|
34
|
+
## Finding elements
|
|
35
|
+
1. Call get_page_source to inspect the current UIA element tree. This is your source of truth — call it whenever you are unsure about the current UI state.
|
|
36
|
+
2. Use the Names and AutomationIds from the tree to call find_element.
|
|
37
|
+
3. If the element is not in the tree, fall back to visual analysis: use analyze_screen for the calling agent to analyze the image directly (no API key needed), or find_by_vision to delegate analysis to an external vision model (requires an API key).
|
|
38
|
+
4. Use those coordinates with advanced_click to interact.
|
|
39
|
+
|
|
40
|
+
## Clicking elements
|
|
41
|
+
1. Use click_element for standard UIA element clicks.
|
|
42
|
+
2. If click_element does not trigger the expected action, try invoke_element (UIA Invoke pattern).
|
|
43
|
+
3. For right-click, double-click, modifier keys, or coordinate-based clicks, use advanced_click.
|
|
44
|
+
|
|
45
|
+
## Multiple windows
|
|
46
|
+
Call get_window_handles to list open windows, then switch_to_window to focus the target.
|
|
47
|
+
|
|
48
|
+
## Webview / hybrid apps
|
|
49
|
+
Call get_contexts to list available contexts. If WEBVIEW contexts are present, ask the user which to switch to before calling set_context.
|
|
50
|
+
|
|
51
|
+
## General
|
|
52
|
+
- When in doubt about what is on screen or what changed, call get_page_source before acting.
|
|
53
|
+
- When in doubt about what the user wants, ask before taking action.
|
|
54
|
+
- Never call delete_session, close_app, or any destructive tool without explicit user confirmation.
|
|
55
|
+
`.trim(),
|
|
25
56
|
});
|
|
26
57
|
// Step 5: Register all tools (including create_session / delete_session)
|
|
27
58
|
(0, index_js_1.registerAllTools)(server, session);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/mcp/index.ts"],"names":[],"mappings":";;;AACA,oEAAoE;AACpE,wEAAiF;AACjF,2CAAyC;AACzC,6CAA6C;AAC7C,+CAAoD;AAEpD,KAAK,UAAU,IAAI;IACf,oEAAoE;IACpE,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACD,MAAM,GAAG,IAAA,sBAAU,GAAE,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,mFAAmF;IACnF,MAAM,OAAO,GAAG,IAAI,0BAAa,CAAC,MAAM,CAAC,CAAC;IAE1C,0CAA0C;IAC1C,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC;QACzB,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,OAAO;KACnB,CAAC,CAAC;IAEH,yEAAyE;IACzE,IAAA,2BAAgB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC,2BAA2B;IAC3B,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,KAAK,UAAU,QAAQ,CAAC,MAAc;QAClC,IAAI,YAAY,EAAE,CAAC;YAAA,OAAO;QAAA,CAAC;QAC3B,YAAY,GAAG,IAAI,CAAC;QACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,MAAM,QAAQ,CAAC,CAAC;QAE7D,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;YACrB,MAAM,OAAO,CAAC,IAAI,CAAC;gBACf,OAAO,CAAC,MAAM,EAAE;gBAChB,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;aAC9D,CAAC,CAAC;QACP,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7D,sFAAsF;IACtF,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;AAC3G,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/mcp/index.ts"],"names":[],"mappings":";;;AACA,oEAAoE;AACpE,wEAAiF;AACjF,2CAAyC;AACzC,6CAA6C;AAC7C,+CAAoD;AAEpD,KAAK,UAAU,IAAI;IACf,oEAAoE;IACpE,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACD,MAAM,GAAG,IAAA,sBAAU,GAAE,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,mFAAmF;IACnF,MAAM,OAAO,GAAG,IAAI,0BAAa,CAAC,MAAM,CAAC,CAAC;IAE1C,0CAA0C;IAC1C,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC;QACzB,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,OAAO;KACnB,EAAE;QACC,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BrB,CAAC,IAAI,EAAE;KACH,CAAC,CAAC;IAEH,yEAAyE;IACzE,IAAA,2BAAgB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC,2BAA2B;IAC3B,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,KAAK,UAAU,QAAQ,CAAC,MAAc;QAClC,IAAI,YAAY,EAAE,CAAC;YAAA,OAAO;QAAA,CAAC;QAC3B,YAAY,GAAG,IAAI,CAAC;QACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,MAAM,QAAQ,CAAC,CAAC;QAE7D,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;YACrB,MAAM,OAAO,CAAC,IAAI,CAAC;gBACf,OAAO,CAAC,MAAM,EAAE;gBAChB,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;aAC9D,CAAC,CAAC;QACP,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7D,sFAAsF;IACtF,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;AAC3G,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
@@ -11,12 +11,16 @@ export interface SessionParams {
|
|
|
11
11
|
delayAfterClick?: number;
|
|
12
12
|
delayBeforeClick?: number;
|
|
13
13
|
smoothPointerMove?: string;
|
|
14
|
+
webviewEnabled?: boolean;
|
|
15
|
+
webviewDevtoolsPort?: number;
|
|
16
|
+
javaSwing?: boolean;
|
|
14
17
|
}
|
|
15
18
|
export declare class AppiumSession {
|
|
16
19
|
private readonly appiumConfig;
|
|
17
20
|
private driver;
|
|
18
21
|
constructor(appiumConfig: McpConfig);
|
|
19
22
|
create(params: SessionParams): Promise<void>;
|
|
23
|
+
attach(sessionId: string): Promise<void>;
|
|
20
24
|
delete(): Promise<void>;
|
|
21
25
|
isActive(): boolean;
|
|
22
26
|
getDriver(): Browser;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../lib/mcp/session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAoB7C,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../lib/mcp/session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAoB7C,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,aAAa;IAGV,OAAO,CAAC,QAAQ,CAAC,YAAY;IAFzC,OAAO,CAAC,MAAM,CAAwB;gBAET,YAAY,EAAE,SAAS;IAE9C,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAyC5C,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAexC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAY7B,QAAQ,IAAI,OAAO;IAInB,SAAS,IAAI,OAAO;CAIvB"}
|
package/build/lib/mcp/session.js
CHANGED
|
@@ -95,6 +95,15 @@ class AppiumSession {
|
|
|
95
95
|
if (params.smoothPointerMove !== undefined) {
|
|
96
96
|
caps['appium:smoothPointerMove'] = params.smoothPointerMove;
|
|
97
97
|
}
|
|
98
|
+
if (params.webviewEnabled !== undefined) {
|
|
99
|
+
caps['appium:webviewEnabled'] = params.webviewEnabled;
|
|
100
|
+
}
|
|
101
|
+
if (params.webviewDevtoolsPort !== undefined) {
|
|
102
|
+
caps['appium:webviewDevtoolsPort'] = params.webviewDevtoolsPort;
|
|
103
|
+
}
|
|
104
|
+
if (params.javaSwing !== undefined) {
|
|
105
|
+
caps['appium:javaSwing'] = params.javaSwing;
|
|
106
|
+
}
|
|
98
107
|
this.driver = await (0, webdriverio_1.remote)({
|
|
99
108
|
hostname: this.appiumConfig.appiumHost,
|
|
100
109
|
port: this.appiumConfig.appiumPort,
|
|
@@ -105,6 +114,18 @@ class AppiumSession {
|
|
|
105
114
|
await this.driver.setTimeout({ implicit: params.implicitTimeout });
|
|
106
115
|
process.stderr.write('[MCP] Session created successfully\n');
|
|
107
116
|
}
|
|
117
|
+
async attach(sessionId) {
|
|
118
|
+
if (this.driver) {
|
|
119
|
+
throw new Error('A session is already active. Call delete_session first.');
|
|
120
|
+
}
|
|
121
|
+
const { appiumHost: hostname, appiumPort: port } = this.appiumConfig;
|
|
122
|
+
if (!await checkAppiumReachable(hostname, port)) {
|
|
123
|
+
throw new Error(`Appium not running on ${hostname}:${port}`);
|
|
124
|
+
}
|
|
125
|
+
process.stderr.write(`[MCP] Attaching to existing session: ${sessionId}\n`);
|
|
126
|
+
this.driver = await (0, webdriverio_1.attach)({ sessionId, hostname, port, path: '/', logLevel: 'silent' });
|
|
127
|
+
process.stderr.write('[MCP] Attached successfully\n');
|
|
128
|
+
}
|
|
108
129
|
async delete() {
|
|
109
130
|
if (!this.driver) {
|
|
110
131
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../lib/mcp/session.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../lib/mcp/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ const errors_js_1 = require("../errors.js");
|
|
|
6
6
|
const modifierKeys = zod_1.z.array(zod_1.z.enum(['shift', 'ctrl', 'alt', 'win'])).default([]);
|
|
7
7
|
function registerAdvancedTools(server, session) {
|
|
8
8
|
server.registerTool('advanced_click', {
|
|
9
|
-
description: 'Perform an
|
|
9
|
+
description: 'Perform a click at an element or absolute screen coordinates, with optional modifier keys, multiple clicks, or custom duration. Use for right-click, double-click, Ctrl+click, or coordinate-based clicks.',
|
|
10
10
|
annotations: { destructiveHint: false },
|
|
11
11
|
inputSchema: {
|
|
12
12
|
elementId: zod_1.z.string().optional().describe('Element to click (its center). Provide either elementId or x+y.'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advanced.js","sourceRoot":"","sources":["../../../../lib/mcp/tools/advanced.ts"],"names":[],"mappings":";;AAOA,sDAkIC;AAxID,6BAAwB;AAExB,4CAA2C;AAE3C,MAAM,YAAY,GAAG,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAElF,SAAgB,qBAAqB,CAAC,MAAiB,EAAE,OAAsB;IAC3E,MAAM,CAAC,YAAY,CACf,gBAAgB,EAChB;QACI,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"advanced.js","sourceRoot":"","sources":["../../../../lib/mcp/tools/advanced.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ exports.registerAppTools = registerAppTools;
|
|
|
4
4
|
const errors_js_1 = require("../errors.js");
|
|
5
5
|
function registerAppTools(server, session) {
|
|
6
6
|
server.registerTool('get_window_element', {
|
|
7
|
-
description: 'Get the
|
|
7
|
+
description: 'Get the element ID of the current session\'s root window element.',
|
|
8
8
|
annotations: { readOnlyHint: true },
|
|
9
9
|
}, async () => {
|
|
10
10
|
try {
|
|
@@ -35,7 +35,7 @@ function registerAppTools(server, session) {
|
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
37
|
server.registerTool('close_app', {
|
|
38
|
-
description: 'Close the application under test without ending the session.',
|
|
38
|
+
description: 'Close the application under test without ending the Appium session. Only call when explicitly asked.',
|
|
39
39
|
annotations: { destructiveHint: true },
|
|
40
40
|
}, async () => {
|
|
41
41
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../lib/mcp/tools/app.ts"],"names":[],"mappings":";;AAIA,4CAyEC;AA3ED,4CAA2C;AAE3C,SAAgB,gBAAgB,CAAC,MAAiB,EAAE,OAAsB;IACtE,MAAM,CAAC,YAAY,CACf,oBAAoB,EACpB;QACI,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../lib/mcp/tools/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ const zod_1 = require("zod");
|
|
|
5
5
|
const errors_js_1 = require("../errors.js");
|
|
6
6
|
function registerContextTools(server, session) {
|
|
7
7
|
server.registerTool('get_current_context', {
|
|
8
|
-
description: 'Get the current context
|
|
8
|
+
description: 'Get the current active context. Returns "NATIVE_APP" (UIA element tree, find_element works here) or "WEBVIEW_<id>" (web DOM, standard web selectors apply). Call this if unsure which context is active before interacting.',
|
|
9
9
|
annotations: { readOnlyHint: true },
|
|
10
10
|
}, async () => {
|
|
11
11
|
try {
|
|
@@ -18,7 +18,7 @@ function registerContextTools(server, session) {
|
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
20
|
server.registerTool('get_contexts', {
|
|
21
|
-
description: '
|
|
21
|
+
description: 'List all available contexts. Returns "NATIVE_APP" for the UIA element tree, and any embedded webview contexts as "WEBVIEW_<id>".',
|
|
22
22
|
annotations: { readOnlyHint: true },
|
|
23
23
|
}, async () => {
|
|
24
24
|
try {
|
|
@@ -31,7 +31,7 @@ function registerContextTools(server, session) {
|
|
|
31
31
|
}
|
|
32
32
|
});
|
|
33
33
|
server.registerTool('set_context', {
|
|
34
|
-
description: 'Switch
|
|
34
|
+
description: 'Switch the active context. Pass "NATIVE_APP" to return to the UIA element tree, or a "WEBVIEW_<id>" from get_contexts to switch into an embedded webview.',
|
|
35
35
|
inputSchema: zod_1.z.object({
|
|
36
36
|
name: zod_1.z.string().describe('Context name to switch to'),
|
|
37
37
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../lib/mcp/tools/context.ts"],"names":[],"mappings":";;AAKA,oDAqDC;AAzDD,6BAAwB;AAExB,4CAA2C;AAE3C,SAAgB,oBAAoB,CAAC,MAAiB,EAAE,OAAsB;IAC1E,MAAM,CAAC,YAAY,CACf,qBAAqB,EACrB;QACI,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../lib/mcp/tools/context.ts"],"names":[],"mappings":";;AAKA,oDAqDC;AAzDD,6BAAwB;AAExB,4CAA2C;AAE3C,SAAgB,oBAAoB,CAAC,MAAiB,EAAE,OAAsB;IAC1E,MAAM,CAAC,YAAY,CACf,qBAAqB,EACrB;QACI,WAAW,EAAE,6NAA6N;QAC1O,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACtC,EACD,KAAK,IAAI,EAAE;QACP,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAA,uBAAW,EAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3F,CAAC;IACL,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,cAAc,EACd;QACI,WAAW,EAAE,kIAAkI;QAC/I,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACtC,EACD,KAAK,IAAI,EAAE;QACP,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QAClF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAA,uBAAW,EAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3F,CAAC;IACL,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,aAAa,EACb;QACI,WAAW,EAAE,2JAA2J;QACxK,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YAClB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;SACzD,CAAC;KACL,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACf,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YACnC,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACjC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,wBAAwB,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QAC1F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAA,uBAAW,EAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3F,CAAC;IACL,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -30,7 +30,7 @@ const FIND_STRATEGY_PRIORITY = [
|
|
|
30
30
|
].join(' ');
|
|
31
31
|
function registerFindTools(server, session) {
|
|
32
32
|
server.registerTool('find_element', {
|
|
33
|
-
description: `Find a single UI element in the current app window. Returns an element ID string
|
|
33
|
+
description: `Find a single UI element in the current app window. Returns an element ID string. Returns an error if not found. ${FIND_STRATEGY_PRIORITY}`,
|
|
34
34
|
inputSchema: {
|
|
35
35
|
strategy: StrategyEnum.describe('Locator strategy. ' +
|
|
36
36
|
Object.entries(STRATEGY_DESCRIPTIONS).map(([k, v]) => `"${k}": ${v}`).join(' | ')),
|
|
@@ -67,7 +67,7 @@ function registerFindTools(server, session) {
|
|
|
67
67
|
}
|
|
68
68
|
});
|
|
69
69
|
server.registerTool('find_child_element', {
|
|
70
|
-
description: `Find a child element
|
|
70
|
+
description: `Find a child element scoped to a known parent element's subtree. Use when the same selector exists in multiple parts of the UI and you need to narrow the search. ${FIND_STRATEGY_PRIORITY}`,
|
|
71
71
|
inputSchema: {
|
|
72
72
|
parentElementId: zod_1.z.string().min(1).describe('Element ID of the parent to search within'),
|
|
73
73
|
strategy: StrategyEnum.describe('Locator strategy. ' +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../../../lib/mcp/tools/find.ts"],"names":[],"mappings":";;AAoCA,8CAkHC;AArJD,6BAAwB;AAExB,4CAA2C;AAC3C,kDAA8C;AAE9C,MAAM,UAAU,GAAG,CAAC,kBAAkB,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,uBAAuB,CAAU,CAAC;AAG3H,4EAA4E;AAC5E,mFAAmF;AACnF,SAAS,eAAe,CAAC,QAAkB;IACvC,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7D,CAAC;AAED,MAAM,qBAAqB,GAA6B;IACpD,kBAAkB,EAAE,oIAAoI;IACxJ,MAAM,EAAE,yGAAyG;IACjH,IAAI,EAAE,wDAAwD;IAC9D,OAAO,EAAE,sIAAsI;IAC/I,YAAY,EAAE,8GAA8G;IAC5H,UAAU,EAAE,yHAAyH;IACrI,uBAAuB,EAAE,6DAA6D;CACzF,CAAC;AAEF,MAAM,YAAY,GAAG,OAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAExC,MAAM,sBAAsB,GAAG;IAC3B,mDAAmD;IACnD,4EAA4E;IAC5E,gEAAgE;IAChE,2DAA2D;IAC3D,gEAAgE;IAChE,8HAA8H;CACjI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,SAAgB,iBAAiB,CAAC,MAAiB,EAAE,OAAsB;IACvE,MAAM,CAAC,YAAY,CACf,cAAc,EACd;QACI,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../../../lib/mcp/tools/find.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../../lib/mcp/tools/patterns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../../lib/mcp/tools/patterns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAOnD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAkKpF"}
|
|
@@ -3,16 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.registerPatternTools = registerPatternTools;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const errors_js_1 = require("../errors.js");
|
|
6
|
+
const constants_js_1 = require("../constants.js");
|
|
6
7
|
const elementIdSchema = zod_1.z.string().min(1).describe('Element ID returned by find_element');
|
|
7
8
|
const elementIdInput = { elementId: elementIdSchema };
|
|
8
9
|
function registerPatternTools(server, session) {
|
|
9
10
|
server.registerTool('invoke_element', {
|
|
10
|
-
description: 'Invoke the default action of an element via the UIA Invoke pattern
|
|
11
|
+
description: 'Invoke the default action of an element via the UIA Invoke pattern without simulating mouse input. Use for elements that do not respond to mouse clicks.',
|
|
11
12
|
inputSchema: elementIdInput,
|
|
12
13
|
}, async ({ elementId }) => {
|
|
13
14
|
try {
|
|
14
15
|
const driver = session.getDriver();
|
|
15
|
-
await driver.executeScript('windows: invoke', [{ elementId }]);
|
|
16
|
+
await driver.executeScript('windows: invoke', [{ [constants_js_1.ELEMENT_KEY]: elementId }]);
|
|
16
17
|
return { content: [{ type: 'text', text: 'invoked' }] };
|
|
17
18
|
}
|
|
18
19
|
catch (err) {
|
|
@@ -26,7 +27,7 @@ function registerPatternTools(server, session) {
|
|
|
26
27
|
}, async ({ elementId }) => {
|
|
27
28
|
try {
|
|
28
29
|
const driver = session.getDriver();
|
|
29
|
-
await driver.executeScript('windows: expand', [{ elementId }]);
|
|
30
|
+
await driver.executeScript('windows: expand', [{ [constants_js_1.ELEMENT_KEY]: elementId }]);
|
|
30
31
|
return { content: [{ type: 'text', text: 'expanded' }] };
|
|
31
32
|
}
|
|
32
33
|
catch (err) {
|
|
@@ -40,7 +41,7 @@ function registerPatternTools(server, session) {
|
|
|
40
41
|
}, async ({ elementId }) => {
|
|
41
42
|
try {
|
|
42
43
|
const driver = session.getDriver();
|
|
43
|
-
await driver.executeScript('windows: collapse', [{ elementId }]);
|
|
44
|
+
await driver.executeScript('windows: collapse', [{ [constants_js_1.ELEMENT_KEY]: elementId }]);
|
|
44
45
|
return { content: [{ type: 'text', text: 'collapsed' }] };
|
|
45
46
|
}
|
|
46
47
|
catch (err) {
|
|
@@ -53,7 +54,7 @@ function registerPatternTools(server, session) {
|
|
|
53
54
|
}, async ({ elementId }) => {
|
|
54
55
|
try {
|
|
55
56
|
const driver = session.getDriver();
|
|
56
|
-
await driver.executeScript('windows: toggle', [{ elementId }]);
|
|
57
|
+
await driver.executeScript('windows: toggle', [{ [constants_js_1.ELEMENT_KEY]: elementId }]);
|
|
57
58
|
return { content: [{ type: 'text', text: 'toggled' }] };
|
|
58
59
|
}
|
|
59
60
|
catch (err) {
|
|
@@ -67,7 +68,7 @@ function registerPatternTools(server, session) {
|
|
|
67
68
|
}, async ({ elementId }) => {
|
|
68
69
|
try {
|
|
69
70
|
const driver = session.getDriver();
|
|
70
|
-
const result = await driver.executeScript('windows: getToggleState', [{ elementId }]);
|
|
71
|
+
const result = await driver.executeScript('windows: getToggleState', [{ [constants_js_1.ELEMENT_KEY]: elementId }]);
|
|
71
72
|
return { content: [{ type: 'text', text: String(result) }] };
|
|
72
73
|
}
|
|
73
74
|
catch (err) {
|
|
@@ -84,7 +85,7 @@ function registerPatternTools(server, session) {
|
|
|
84
85
|
}, async ({ elementId, value }) => {
|
|
85
86
|
try {
|
|
86
87
|
const driver = session.getDriver();
|
|
87
|
-
await driver.executeScript('windows: setValue', [{ elementId, value
|
|
88
|
+
await driver.executeScript('windows: setValue', [{ [constants_js_1.ELEMENT_KEY]: elementId }, value]);
|
|
88
89
|
return { content: [{ type: 'text', text: 'value set' }] };
|
|
89
90
|
}
|
|
90
91
|
catch (err) {
|
|
@@ -98,7 +99,7 @@ function registerPatternTools(server, session) {
|
|
|
98
99
|
}, async ({ elementId }) => {
|
|
99
100
|
try {
|
|
100
101
|
const driver = session.getDriver();
|
|
101
|
-
const result = await driver.executeScript('windows: getValue', [{ elementId }]);
|
|
102
|
+
const result = await driver.executeScript('windows: getValue', [{ [constants_js_1.ELEMENT_KEY]: elementId }]);
|
|
102
103
|
return { content: [{ type: 'text', text: String(result) }] };
|
|
103
104
|
}
|
|
104
105
|
catch (err) {
|
|
@@ -112,7 +113,7 @@ function registerPatternTools(server, session) {
|
|
|
112
113
|
}, async ({ elementId }) => {
|
|
113
114
|
try {
|
|
114
115
|
const driver = session.getDriver();
|
|
115
|
-
await driver.executeScript('windows: setFocus', [{ elementId }]);
|
|
116
|
+
await driver.executeScript('windows: setFocus', [{ [constants_js_1.ELEMENT_KEY]: elementId }]);
|
|
116
117
|
return { content: [{ type: 'text', text: 'focused' }] };
|
|
117
118
|
}
|
|
118
119
|
catch (err) {
|
|
@@ -125,7 +126,7 @@ function registerPatternTools(server, session) {
|
|
|
125
126
|
}, async ({ elementId }) => {
|
|
126
127
|
try {
|
|
127
128
|
const driver = session.getDriver();
|
|
128
|
-
await driver.executeScript('windows: select', [{ elementId }]);
|
|
129
|
+
await driver.executeScript('windows: select', [{ [constants_js_1.ELEMENT_KEY]: elementId }]);
|
|
129
130
|
return { content: [{ type: 'text', text: 'selected' }] };
|
|
130
131
|
}
|
|
131
132
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../../lib/mcp/tools/patterns.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../../lib/mcp/tools/patterns.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../lib/mcp/tools/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../lib/mcp/tools/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAgGpF"}
|
|
@@ -5,8 +5,8 @@ const zod_1 = require("zod");
|
|
|
5
5
|
const errors_js_1 = require("../errors.js");
|
|
6
6
|
function registerSessionTools(server, session) {
|
|
7
7
|
server.registerTool('create_session', {
|
|
8
|
-
description: '
|
|
9
|
-
'
|
|
8
|
+
description: 'Launch a Windows application and start a new Appium session. ' +
|
|
9
|
+
'Ask the user before calling — confirm they want a new app instance launched.',
|
|
10
10
|
annotations: { destructiveHint: true },
|
|
11
11
|
inputSchema: {
|
|
12
12
|
app: zod_1.z.string().min(1).describe('Executable path (e.g. "C:\\\\Windows\\\\notepad.exe") or UWP App ID ' +
|
|
@@ -19,6 +19,9 @@ function registerSessionTools(server, session) {
|
|
|
19
19
|
delayAfterClick: zod_1.z.number().int().min(0).optional().describe('Milliseconds to wait after each click'),
|
|
20
20
|
delayBeforeClick: zod_1.z.number().int().min(0).optional().describe('Milliseconds to wait before each click'),
|
|
21
21
|
smoothPointerMove: zod_1.z.string().optional().describe('Easing function name for smooth pointer movement'),
|
|
22
|
+
webviewEnabled: zod_1.z.boolean().optional().describe('Enable WebView/CDP support for hybrid apps (Edge/Chrome-based embedded webviews)'),
|
|
23
|
+
webviewDevtoolsPort: zod_1.z.number().int().min(1).optional().describe('DevTools remote debugging port the embedded webview is listening on'),
|
|
24
|
+
javaSwing: zod_1.z.boolean().optional().describe('Enable Java Access Bridge support for automating Java Swing applications'),
|
|
22
25
|
},
|
|
23
26
|
}, async (params) => {
|
|
24
27
|
try {
|
|
@@ -29,8 +32,27 @@ function registerSessionTools(server, session) {
|
|
|
29
32
|
return { isError: true, content: [{ type: 'text', text: (0, errors_js_1.formatError)(err) }] };
|
|
30
33
|
}
|
|
31
34
|
});
|
|
35
|
+
server.registerTool('attach_session', {
|
|
36
|
+
description: 'Attach to an existing Appium session by session ID. ' +
|
|
37
|
+
'Ask the user to provide the session ID — it is visible in Appium Inspector ' +
|
|
38
|
+
'or in the Appium server logs next to the session creation event.',
|
|
39
|
+
annotations: { destructiveHint: false },
|
|
40
|
+
inputSchema: {
|
|
41
|
+
sessionId: zod_1.z.string().min(1).describe('The Appium session ID to attach to (get from Appium Inspector or server logs)'),
|
|
42
|
+
},
|
|
43
|
+
}, async ({ sessionId }) => {
|
|
44
|
+
try {
|
|
45
|
+
await session.attach(sessionId);
|
|
46
|
+
return { content: [{ type: 'text', text: `Attached to session "${sessionId}". Ready for interaction.` }] };
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
return { isError: true, content: [{ type: 'text', text: (0, errors_js_1.formatError)(err) }] };
|
|
50
|
+
}
|
|
51
|
+
});
|
|
32
52
|
server.registerTool('delete_session', {
|
|
33
|
-
description: 'End the current Appium session
|
|
53
|
+
description: 'End the current Appium session and close the app. ' +
|
|
54
|
+
'Only call this when the user explicitly asks to stop or end the session. ' +
|
|
55
|
+
'Never call autonomously — always confirm with the user before terminating.',
|
|
34
56
|
annotations: { destructiveHint: true },
|
|
35
57
|
}, async () => {
|
|
36
58
|
try {
|
|
@@ -45,11 +67,16 @@ function registerSessionTools(server, session) {
|
|
|
45
67
|
}
|
|
46
68
|
});
|
|
47
69
|
server.registerTool('get_session_status', {
|
|
48
|
-
description: 'Check whether a session is currently active.',
|
|
70
|
+
description: 'Check whether a session is currently active in this MCP server instance.',
|
|
49
71
|
annotations: { readOnlyHint: true },
|
|
50
72
|
}, async () => {
|
|
51
73
|
const active = session.isActive();
|
|
52
|
-
return {
|
|
74
|
+
return {
|
|
75
|
+
content: [{
|
|
76
|
+
type: 'text',
|
|
77
|
+
text: active ? 'Session is active.' : 'No active session.',
|
|
78
|
+
}],
|
|
79
|
+
};
|
|
53
80
|
});
|
|
54
81
|
}
|
|
55
82
|
//# sourceMappingURL=session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../lib/mcp/tools/session.ts"],"names":[],"mappings":";;AAKA,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../lib/mcp/tools/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vision.d.ts","sourceRoot":"","sources":["../../../../lib/mcp/tools/vision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AA0CnD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"vision.d.ts","sourceRoot":"","sources":["../../../../lib/mcp/tools/vision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AA0CnD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAsHnF"}
|
|
@@ -26,10 +26,8 @@ async function buildCoordMapping(driver, ssW, ssH) {
|
|
|
26
26
|
}
|
|
27
27
|
function registerVisionTools(server, session) {
|
|
28
28
|
server.registerTool('analyze_screen', {
|
|
29
|
-
description: 'Take a screenshot and return it to the calling agent for visual analysis
|
|
30
|
-
'
|
|
31
|
-
'it receives the conversion formula (img_x/img_y → screen_x/screen_y) so returned coordinates ' +
|
|
32
|
-
'are ready to pass directly to click tools.',
|
|
29
|
+
description: 'Take a screenshot and return it to the calling agent for visual analysis. No external API key required. ' +
|
|
30
|
+
'Includes a DPI-aware coordinate mapping so any coordinates identified are ready for click interactions.',
|
|
33
31
|
inputSchema: {
|
|
34
32
|
prompt: zod_1.z.string().min(1).describe('Question or instruction about the screenshot. ' +
|
|
35
33
|
'For coordinate queries (e.g. "find the Submit button") the agent will return DPI-corrected screen coordinates.'),
|
|
@@ -63,13 +61,10 @@ function registerVisionTools(server, session) {
|
|
|
63
61
|
}
|
|
64
62
|
});
|
|
65
63
|
server.registerTool('find_by_vision', {
|
|
66
|
-
description: 'Take a screenshot and
|
|
67
|
-
'
|
|
68
|
-
'
|
|
69
|
-
'
|
|
70
|
-
'Requires ANTHROPIC_API_KEY (Claude), OPENAI_API_KEY (GPT-4o / o-series), ' +
|
|
71
|
-
'GEMINI_API_KEY (Gemini), or AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY (Amazon Nova via Bedrock) ' +
|
|
72
|
-
'depending on the chosen model.',
|
|
64
|
+
description: 'Take a screenshot and delegate visual analysis to an external vision model, returning the result. ' +
|
|
65
|
+
'Use when visual analysis should be performed by a separate model rather than by the calling agent. ' +
|
|
66
|
+
'Requires an external API key: ANTHROPIC_API_KEY (claude-*), OPENAI_API_KEY (gpt-*/o-series), ' +
|
|
67
|
+
'GEMINI_API_KEY (gemini-*), or AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY (amazon.nova-*).',
|
|
73
68
|
inputSchema: {
|
|
74
69
|
prompt: zod_1.z.string().min(1).describe('Question or instruction about the screenshot'),
|
|
75
70
|
responseFormat: zod_1.z.enum(['coordinates', 'text']).default('coordinates').describe('"coordinates" (default) locates an element and returns JSON {x,y,label} with converted screen coordinates. ' +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vision.js","sourceRoot":"","sources":["../../../../lib/mcp/tools/vision.ts"],"names":[],"mappings":";;AA6CA,
|
|
1
|
+
{"version":3,"file":"vision.js","sourceRoot":"","sources":["../../../../lib/mcp/tools/vision.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../../../lib/mcp/tools/window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAMnD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../../../lib/mcp/tools/window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAMnD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAoKnF"}
|
|
@@ -6,21 +6,10 @@ const errors_js_1 = require("../errors.js");
|
|
|
6
6
|
const elementIdSchema = zod_1.z.string().min(1).describe('Element ID returned by find_element or get_window_element');
|
|
7
7
|
const elementIdInput = { elementId: elementIdSchema };
|
|
8
8
|
function registerWindowTools(server, session) {
|
|
9
|
-
server.registerTool('take_screenshot', {
|
|
10
|
-
description: 'Capture a screenshot of the current app window as a PNG image.',
|
|
11
|
-
annotations: { readOnlyHint: true },
|
|
12
|
-
}, async () => {
|
|
13
|
-
try {
|
|
14
|
-
const driver = session.getDriver();
|
|
15
|
-
const base64 = await driver.takeScreenshot();
|
|
16
|
-
return { content: [{ type: 'image', data: base64, mimeType: 'image/png' }] };
|
|
17
|
-
}
|
|
18
|
-
catch (err) {
|
|
19
|
-
return { isError: true, content: [{ type: 'text', text: (0, errors_js_1.formatError)(err) }] };
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
9
|
server.registerTool('get_page_source', {
|
|
23
|
-
description: 'Get the XML representation of the current
|
|
10
|
+
description: 'Get the XML representation of the current UIA element tree. ' +
|
|
11
|
+
'Use as the source of truth for current UI state — call whenever you are unsure what is on screen or after a UI change (navigation, dialog, window switch). ' +
|
|
12
|
+
'Inspect the result to discover element Names and AutomationIds.',
|
|
24
13
|
annotations: { readOnlyHint: true },
|
|
25
14
|
}, async () => {
|
|
26
15
|
try {
|
|
@@ -46,7 +35,7 @@ function registerWindowTools(server, session) {
|
|
|
46
35
|
}
|
|
47
36
|
});
|
|
48
37
|
server.registerTool('get_window_handles', {
|
|
49
|
-
description: 'Get all available window handles for the current session.',
|
|
38
|
+
description: 'Get all available window handles for the current session. Use when the app has multiple windows.',
|
|
50
39
|
annotations: { readOnlyHint: true },
|
|
51
40
|
}, async () => {
|
|
52
41
|
try {
|
|
@@ -59,7 +48,7 @@ function registerWindowTools(server, session) {
|
|
|
59
48
|
}
|
|
60
49
|
});
|
|
61
50
|
server.registerTool('switch_to_window', {
|
|
62
|
-
description: 'Switch focus to a different window by its handle.',
|
|
51
|
+
description: 'Switch focus to a different window by its handle (from get_window_handles).',
|
|
63
52
|
inputSchema: {
|
|
64
53
|
handle: zod_1.z.string().min(1).describe('Window handle to switch to (from get_window_handles)'),
|
|
65
54
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"window.js","sourceRoot":"","sources":["../../../../lib/mcp/tools/window.ts"],"names":[],"mappings":";;AAQA,
|
|
1
|
+
{"version":3,"file":"window.js","sourceRoot":"","sources":["../../../../lib/mcp/tools/window.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-desktop-driver",
|
|
3
|
-
"version": "2.1.0-preview.
|
|
3
|
+
"version": "2.1.0-preview.3",
|
|
4
4
|
"description": "Appium driver for Windows",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"appium",
|
|
@@ -80,7 +80,6 @@
|
|
|
80
80
|
"semantic-release": "^25.0.1",
|
|
81
81
|
"typescript": "^5.9.3",
|
|
82
82
|
"typescript-eslint": "^8.46.1",
|
|
83
|
-
"vitest": "^2.1.0"
|
|
84
|
-
"webdriverio": "^9.0.0"
|
|
83
|
+
"vitest": "^2.1.0"
|
|
85
84
|
}
|
|
86
85
|
}
|