android-dev-mcp 1.0.0
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/LICENSE +21 -0
- package/README.md +90 -0
- package/dist/adb/accessibility.d.ts +10 -0
- package/dist/adb/accessibility.d.ts.map +1 -0
- package/dist/adb/accessibility.js +52 -0
- package/dist/adb/accessibility.js.map +1 -0
- package/dist/adb/index.d.ts +4 -0
- package/dist/adb/index.d.ts.map +1 -0
- package/dist/adb/index.js +4 -0
- package/dist/adb/index.js.map +1 -0
- package/dist/adb/liveTest.d.ts +39 -0
- package/dist/adb/liveTest.d.ts.map +1 -0
- package/dist/adb/liveTest.js +148 -0
- package/dist/adb/liveTest.js.map +1 -0
- package/dist/adb/logcatAnalysis.d.ts +17 -0
- package/dist/adb/logcatAnalysis.d.ts.map +1 -0
- package/dist/adb/logcatAnalysis.js +85 -0
- package/dist/adb/logcatAnalysis.js.map +1 -0
- package/dist/adb/ocr.d.ts +6 -0
- package/dist/adb/ocr.d.ts.map +1 -0
- package/dist/adb/ocr.js +16 -0
- package/dist/adb/ocr.js.map +1 -0
- package/dist/adb/operations.d.ts +48 -0
- package/dist/adb/operations.d.ts.map +1 -0
- package/dist/adb/operations.js +119 -0
- package/dist/adb/operations.js.map +1 -0
- package/dist/adb/runner.d.ts +57 -0
- package/dist/adb/runner.d.ts.map +1 -0
- package/dist/adb/runner.js +135 -0
- package/dist/adb/runner.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/index.d.ts +2 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +2 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +4 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +567 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/security/allowlist.d.ts +4 -0
- package/dist/security/allowlist.d.ts.map +1 -0
- package/dist/security/allowlist.js +59 -0
- package/dist/security/allowlist.js.map +1 -0
- package/dist/security/index.d.ts +3 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +3 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/timeout.d.ts +3 -0
- package/dist/security/timeout.d.ts.map +1 -0
- package/dist/security/timeout.js +25 -0
- package/dist/security/timeout.js.map +1 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +2 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server-http.d.ts +3 -0
- package/dist/server-http.d.ts.map +1 -0
- package/dist/server-http.js +51 -0
- package/dist/server-http.js.map +1 -0
- package/dist/tools/definitions.d.ts +3 -0
- package/dist/tools/definitions.d.ts.map +1 -0
- package/dist/tools/definitions.js +110 -0
- package/dist/tools/definitions.js.map +1 -0
- package/dist/tools/handlers.d.ts +139 -0
- package/dist/tools/handlers.d.ts.map +1 -0
- package/dist/tools/handlers.js +155 -0
- package/dist/tools/handlers.js.map +1 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/schemas.d.ts +462 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +164 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/types.d.ts +16 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allowlist.js","sourceRoot":"","sources":["../../src/security/allowlist.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM;IAC/C,SAAS;IACT,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY;IACpG,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa;IAChJ,QAAQ;IACR,WAAW,EAAE,cAAc;IAC3B,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB;IAClE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,qBAAqB;IAC7D,QAAQ;IACR,cAAc,EAAE,cAAc,EAAE,SAAS;IACzC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ;IAC/B,OAAO,EAAE,OAAO,EAAE,WAAW;CACrB,CAAC;AAEX,MAAM,CAAC,MAAM,eAAe,GAAsB;IAChD,KAAK;IACL,MAAM;IACN,OAAO;IACP,SAAS;IACT,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;IACJ,GAAG;IACH,GAAG;IACH,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,SAAS;IACT,MAAM;IACN,UAAU;IACV,MAAM;CACE,CAAC;AAEX,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAElC,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;IACzD,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,sBAAsB,EAAE,CAAC;QAC7C,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;IAC/C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../src/security/timeout.ts"],"names":[],"mappings":"AAGA,wBAAgB,WAAW,CAAC,CAAC,EAC3B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,SAAS,GAAE,MAA2B,GACrC,OAAO,CAAC,CAAC,CAAC,CAgBZ;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG3D"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
2
|
+
const MAX_TIMEOUT_MS = 120_000;
|
|
3
|
+
export function withTimeout(promise, timeoutMs = DEFAULT_TIMEOUT_MS) {
|
|
4
|
+
const capped = Math.min(Math.max(timeoutMs, 1000), MAX_TIMEOUT_MS);
|
|
5
|
+
return new Promise((resolve, reject) => {
|
|
6
|
+
const timer = setTimeout(() => {
|
|
7
|
+
reject(new Error(`Operation timed out after ${capped}ms`));
|
|
8
|
+
}, capped);
|
|
9
|
+
promise
|
|
10
|
+
.then((value) => {
|
|
11
|
+
clearTimeout(timer);
|
|
12
|
+
resolve(value);
|
|
13
|
+
})
|
|
14
|
+
.catch((err) => {
|
|
15
|
+
clearTimeout(timer);
|
|
16
|
+
reject(err);
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
export function clampTimeout(ms) {
|
|
21
|
+
if (ms == null || ms <= 0)
|
|
22
|
+
return DEFAULT_TIMEOUT_MS;
|
|
23
|
+
return Math.min(Math.max(ms, 1000), MAX_TIMEOUT_MS);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=timeout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../src/security/timeout.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B,MAAM,UAAU,WAAW,CACzB,OAAmB,EACnB,YAAoB,kBAAkB;IAEtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC;IACnE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,MAAM,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC,EAAE,MAAM,CAAC,CAAC;QACX,OAAO;aACJ,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACd,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAsB;IACjD,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,kBAAkB,CAAC;IACrD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-http.d.ts","sourceRoot":"","sources":["../src/server-http.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* HTTP/Streamable HTTP transport for MCP.
|
|
4
|
+
* Serves MCP at http://localhost:3000/mcp (or PORT env).
|
|
5
|
+
*/
|
|
6
|
+
import { randomUUID } from 'node:crypto';
|
|
7
|
+
import express from 'express';
|
|
8
|
+
import { createServer } from './mcp/server.js';
|
|
9
|
+
import { createMcpExpressApp } from '@modelcontextprotocol/sdk/server/express.js';
|
|
10
|
+
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
11
|
+
const PORT = Number(process.env.PORT) || 3000;
|
|
12
|
+
const C = {
|
|
13
|
+
green: '\x1b[32m',
|
|
14
|
+
cyan: '\x1b[36m',
|
|
15
|
+
blue: '\x1b[34m',
|
|
16
|
+
yellow: '\x1b[33m',
|
|
17
|
+
red: '\x1b[31m',
|
|
18
|
+
dim: '\x1b[2m',
|
|
19
|
+
bold: '\x1b[1m',
|
|
20
|
+
reset: '\x1b[0m',
|
|
21
|
+
};
|
|
22
|
+
function log(msg, color = C.reset) {
|
|
23
|
+
console.error(`${color}${msg}${C.reset}`);
|
|
24
|
+
}
|
|
25
|
+
async function main() {
|
|
26
|
+
const server = createServer();
|
|
27
|
+
const transport = new StreamableHTTPServerTransport({
|
|
28
|
+
sessionIdGenerator: () => randomUUID(),
|
|
29
|
+
});
|
|
30
|
+
await server.connect(transport);
|
|
31
|
+
const app = createMcpExpressApp();
|
|
32
|
+
app.use(express.json());
|
|
33
|
+
app.all('/mcp', (req, res) => {
|
|
34
|
+
const ts = new Date().toISOString();
|
|
35
|
+
log(`[${ts}] MCP request ${req.method} /mcp`, C.dim);
|
|
36
|
+
transport.handleRequest(req, res, req.body);
|
|
37
|
+
});
|
|
38
|
+
app.listen(PORT, '0.0.0.0', () => {
|
|
39
|
+
log('', C.reset);
|
|
40
|
+
log('android-dev-mcp: MCP server ready', C.green);
|
|
41
|
+
log(` URL: http://127.0.0.1:${PORT}/mcp`, C.cyan);
|
|
42
|
+
log(' Connect Cursor / Claude Desktop to the URL above.', C.dim);
|
|
43
|
+
log(' (Requests will be logged below.)', C.dim);
|
|
44
|
+
log('', C.reset);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
main().catch((err) => {
|
|
48
|
+
log('android-dev-mcp: ' + String(err), C.red);
|
|
49
|
+
process.exit(1);
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=server-http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-http.js","sourceRoot":"","sources":["../src/server-http.ts"],"names":[],"mappings":";AACA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAEnG,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAE9C,MAAM,CAAC,GAAG;IACR,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,UAAU;IAClB,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF,SAAS,GAAG,CAAC,GAAW,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK;IACvC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;QAClD,kBAAkB,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;KACvC,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;IAClC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACxB,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,GAAG,CAAC,IAAI,EAAE,iBAAiB,GAAG,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QACrD,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACjB,GAAG,CAAC,mCAAmC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAClD,GAAG,CAAC,4BAA4B,IAAI,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACpD,GAAG,CAAC,qDAAqD,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAClE,GAAG,CAAC,oCAAoC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QACjD,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,GAAG,CAAC,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,eAAO,MAAM,aAAa,EAAE,IAAI,EA4G/B,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
export const ADB_MCP_TOOLS = [
|
|
2
|
+
{
|
|
3
|
+
name: 'adb_mcp_list_devices',
|
|
4
|
+
description: 'List connected Android devices and emulators (wraps adb devices -l).',
|
|
5
|
+
inputSchema: {
|
|
6
|
+
type: 'object',
|
|
7
|
+
properties: {
|
|
8
|
+
deviceId: { type: 'string', description: 'ADB device ID. Omit for all devices.' },
|
|
9
|
+
timeoutMs: { type: 'number', description: 'Timeout in ms (default 30000, max 120000).' },
|
|
10
|
+
},
|
|
11
|
+
required: [],
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: 'adb_mcp_exec_shell',
|
|
16
|
+
description: 'Execute a shell command on the device. Command must match the allowlist (e.g. getprop, dumpsys, am start, input, screencap).',
|
|
17
|
+
inputSchema: {
|
|
18
|
+
type: 'object',
|
|
19
|
+
properties: {
|
|
20
|
+
command: { type: 'string', description: 'Shell command to run (allowlisted only).' },
|
|
21
|
+
deviceId: { type: 'string', description: 'ADB device ID.' },
|
|
22
|
+
timeoutMs: { type: 'number', description: 'Timeout in ms.' },
|
|
23
|
+
},
|
|
24
|
+
required: ['command'],
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: 'adb_mcp_launch_app',
|
|
29
|
+
description: 'Launch an Android app by package name (and optional activity).',
|
|
30
|
+
inputSchema: {
|
|
31
|
+
type: 'object',
|
|
32
|
+
properties: {
|
|
33
|
+
packageName: { type: 'string', description: 'Android package name (e.g. com.android.settings).' },
|
|
34
|
+
activity: { type: 'string', description: 'Optional activity (e.g. .Settings).' },
|
|
35
|
+
deviceId: { type: 'string', description: 'ADB device ID.' },
|
|
36
|
+
timeoutMs: { type: 'number', description: 'Timeout in ms.' },
|
|
37
|
+
},
|
|
38
|
+
required: ['packageName'],
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'adb_mcp_tap',
|
|
43
|
+
description: 'Perform a tap at (x, y) on the device screen.',
|
|
44
|
+
inputSchema: {
|
|
45
|
+
type: 'object',
|
|
46
|
+
properties: {
|
|
47
|
+
x: { type: 'number', description: 'X coordinate in pixels.' },
|
|
48
|
+
y: { type: 'number', description: 'Y coordinate in pixels.' },
|
|
49
|
+
deviceId: { type: 'string', description: 'ADB device ID.' },
|
|
50
|
+
timeoutMs: { type: 'number', description: 'Timeout in ms.' },
|
|
51
|
+
},
|
|
52
|
+
required: ['x', 'y'],
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: 'adb_mcp_swipe',
|
|
57
|
+
description: 'Swipe from (x1,y1) to (x2,y2) with optional duration in ms.',
|
|
58
|
+
inputSchema: {
|
|
59
|
+
type: 'object',
|
|
60
|
+
properties: {
|
|
61
|
+
x1: { type: 'number', description: 'Start X.' },
|
|
62
|
+
y1: { type: 'number', description: 'Start Y.' },
|
|
63
|
+
x2: { type: 'number', description: 'End X.' },
|
|
64
|
+
y2: { type: 'number', description: 'End Y.' },
|
|
65
|
+
durationMs: { type: 'number', description: 'Swipe duration ms (default 300).' },
|
|
66
|
+
deviceId: { type: 'string', description: 'ADB device ID.' },
|
|
67
|
+
timeoutMs: { type: 'number', description: 'Timeout in ms.' },
|
|
68
|
+
},
|
|
69
|
+
required: ['x1', 'y1', 'x2', 'y2'],
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: 'adb_mcp_input_text',
|
|
74
|
+
description: 'Type text on the device (input text).',
|
|
75
|
+
inputSchema: {
|
|
76
|
+
type: 'object',
|
|
77
|
+
properties: {
|
|
78
|
+
text: { type: 'string', description: 'Text to type.' },
|
|
79
|
+
deviceId: { type: 'string', description: 'ADB device ID.' },
|
|
80
|
+
timeoutMs: { type: 'number', description: 'Timeout in ms.' },
|
|
81
|
+
},
|
|
82
|
+
required: ['text'],
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: 'adb_mcp_screencap',
|
|
87
|
+
description: 'Capture device screen and return as base64 PNG image.',
|
|
88
|
+
inputSchema: {
|
|
89
|
+
type: 'object',
|
|
90
|
+
properties: {
|
|
91
|
+
deviceId: { type: 'string', description: 'ADB device ID.' },
|
|
92
|
+
timeoutMs: { type: 'number', description: 'Timeout in ms.' },
|
|
93
|
+
},
|
|
94
|
+
required: [],
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: 'adb_mcp_current_activity',
|
|
99
|
+
description: 'Get the current foreground activity (from dumpsys window).',
|
|
100
|
+
inputSchema: {
|
|
101
|
+
type: 'object',
|
|
102
|
+
properties: {
|
|
103
|
+
deviceId: { type: 'string', description: 'ADB device ID.' },
|
|
104
|
+
timeoutMs: { type: 'number', description: 'Timeout in ms.' },
|
|
105
|
+
},
|
|
106
|
+
required: [],
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
];
|
|
110
|
+
//# sourceMappingURL=definitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import type { AdbMcpListDevicesParams, AdbMcpExecShellParams, AdbMcpLaunchAppParams, AdbMcpTapParams, AdbMcpSwipeParams, AdbMcpInputTextParams, AdbMcpScreencapParams, AdbMcpScreencapAnalyzeParams, AdbMcpCurrentActivityParams, AdbMcpUiDumpParams, AdbMcpFindAndTapParams, AdbMcpLiveTestParams, AdbMcpKeyeventParams, AdbMcpScreenrecordParams, AdbMcpHomeParams, AdbMcpConnectParams, AdbMcpDisconnectParams, AdbMcpKillServerParams, AdbMcpStartServerParams, AdbMcpPushParams, AdbMcpPullParams, AdbMcpInstallParams, AdbMcpUninstallParams, AdbMcpLogcatParams, AdbMcpLogcatErrorsParams, AdbMcpLogcatCrashesParams, AdbMcpLogcatAnalyzeParams, AdbMcpBackupParams, AdbMcpRestoreParams, AdbMcpRebootParams, AdbMcpGetStateParams, AdbMcpGetSerialNoParams } from './schemas.js';
|
|
2
|
+
export declare function handleAdbMcpListDevices(params: AdbMcpListDevicesParams): Promise<{
|
|
3
|
+
devices: Array<{
|
|
4
|
+
id: string;
|
|
5
|
+
status: string;
|
|
6
|
+
model?: string;
|
|
7
|
+
product?: string;
|
|
8
|
+
}>;
|
|
9
|
+
}>;
|
|
10
|
+
export declare function handleAdbMcpExecShell(params: AdbMcpExecShellParams): Promise<{
|
|
11
|
+
stdout: string;
|
|
12
|
+
}>;
|
|
13
|
+
export declare function handleAdbMcpLaunchApp(params: AdbMcpLaunchAppParams): Promise<{
|
|
14
|
+
result: string;
|
|
15
|
+
}>;
|
|
16
|
+
export declare function handleAdbMcpTap(params: AdbMcpTapParams): Promise<{
|
|
17
|
+
result: string;
|
|
18
|
+
}>;
|
|
19
|
+
export declare function handleAdbMcpSwipe(params: AdbMcpSwipeParams): Promise<{
|
|
20
|
+
result: string;
|
|
21
|
+
}>;
|
|
22
|
+
export declare function handleAdbMcpInputText(params: AdbMcpInputTextParams): Promise<{
|
|
23
|
+
result: string;
|
|
24
|
+
}>;
|
|
25
|
+
export declare function handleAdbMcpScreencap(params: AdbMcpScreencapParams): Promise<{
|
|
26
|
+
imageBase64: string;
|
|
27
|
+
mimeType: string;
|
|
28
|
+
}>;
|
|
29
|
+
export declare function handleAdbMcpScreencapAnalyze(params: AdbMcpScreencapAnalyzeParams): Promise<{
|
|
30
|
+
imageBase64: string;
|
|
31
|
+
mimeType: string;
|
|
32
|
+
extractedText: string;
|
|
33
|
+
confidence?: number;
|
|
34
|
+
}>;
|
|
35
|
+
export declare function handleAdbMcpCurrentActivity(params: AdbMcpCurrentActivityParams): Promise<{
|
|
36
|
+
activity: string;
|
|
37
|
+
}>;
|
|
38
|
+
export declare function handleAdbMcpUiDump(params: AdbMcpUiDumpParams): Promise<{
|
|
39
|
+
xml: string;
|
|
40
|
+
}>;
|
|
41
|
+
export declare function handleAdbMcpFindAndTap(params: AdbMcpFindAndTapParams): Promise<{
|
|
42
|
+
tapped: boolean;
|
|
43
|
+
x?: number;
|
|
44
|
+
y?: number;
|
|
45
|
+
error?: string;
|
|
46
|
+
}>;
|
|
47
|
+
export declare function handleAdbMcpLiveTest(params: AdbMcpLiveTestParams): Promise<{
|
|
48
|
+
ok: boolean;
|
|
49
|
+
log: string;
|
|
50
|
+
steps: Array<{
|
|
51
|
+
stepIndex: number;
|
|
52
|
+
step: unknown;
|
|
53
|
+
ok: boolean;
|
|
54
|
+
message: string;
|
|
55
|
+
durationMs?: number;
|
|
56
|
+
}>;
|
|
57
|
+
totalDurationMs: number;
|
|
58
|
+
}>;
|
|
59
|
+
export declare function handleAdbMcpKeyevent(params: AdbMcpKeyeventParams): Promise<{
|
|
60
|
+
result: string;
|
|
61
|
+
}>;
|
|
62
|
+
export declare function handleAdbMcpScreenrecord(params: AdbMcpScreenrecordParams): Promise<{
|
|
63
|
+
result: string;
|
|
64
|
+
}>;
|
|
65
|
+
export declare function handleAdbMcpHome(params: AdbMcpHomeParams): Promise<{
|
|
66
|
+
result: string;
|
|
67
|
+
}>;
|
|
68
|
+
export declare function handleAdbMcpConnect(params: AdbMcpConnectParams): Promise<{
|
|
69
|
+
stdout: string;
|
|
70
|
+
stderr: string;
|
|
71
|
+
}>;
|
|
72
|
+
export declare function handleAdbMcpDisconnect(params: AdbMcpDisconnectParams): Promise<{
|
|
73
|
+
stdout: string;
|
|
74
|
+
stderr: string;
|
|
75
|
+
}>;
|
|
76
|
+
export declare function handleAdbMcpKillServer(params: AdbMcpKillServerParams): Promise<{
|
|
77
|
+
stdout: string;
|
|
78
|
+
stderr: string;
|
|
79
|
+
}>;
|
|
80
|
+
export declare function handleAdbMcpStartServer(params: AdbMcpStartServerParams): Promise<{
|
|
81
|
+
stdout: string;
|
|
82
|
+
stderr: string;
|
|
83
|
+
}>;
|
|
84
|
+
export declare function handleAdbMcpPush(params: AdbMcpPushParams): Promise<{
|
|
85
|
+
stdout: string;
|
|
86
|
+
stderr: string;
|
|
87
|
+
}>;
|
|
88
|
+
export declare function handleAdbMcpPull(params: AdbMcpPullParams): Promise<{
|
|
89
|
+
stdout: string;
|
|
90
|
+
stderr: string;
|
|
91
|
+
}>;
|
|
92
|
+
export declare function handleAdbMcpInstall(params: AdbMcpInstallParams): Promise<{
|
|
93
|
+
stdout: string;
|
|
94
|
+
stderr: string;
|
|
95
|
+
}>;
|
|
96
|
+
export declare function handleAdbMcpUninstall(params: AdbMcpUninstallParams): Promise<{
|
|
97
|
+
stdout: string;
|
|
98
|
+
stderr: string;
|
|
99
|
+
}>;
|
|
100
|
+
export declare function handleAdbMcpLogcat(params: AdbMcpLogcatParams): Promise<{
|
|
101
|
+
output: string;
|
|
102
|
+
}>;
|
|
103
|
+
export declare function handleAdbMcpLogcatErrors(params: AdbMcpLogcatErrorsParams): Promise<{
|
|
104
|
+
output: string;
|
|
105
|
+
lines: string[];
|
|
106
|
+
}>;
|
|
107
|
+
export declare function handleAdbMcpLogcatCrashes(params: AdbMcpLogcatCrashesParams): Promise<{
|
|
108
|
+
output: string;
|
|
109
|
+
hasCrash: boolean;
|
|
110
|
+
crashSnippet: string;
|
|
111
|
+
summary: string;
|
|
112
|
+
}>;
|
|
113
|
+
export declare function handleAdbMcpLogcatAnalyze(params: AdbMcpLogcatAnalyzeParams): Promise<{
|
|
114
|
+
errorCount: number;
|
|
115
|
+
fatalCount: number;
|
|
116
|
+
hasCrash: boolean;
|
|
117
|
+
crashSnippet: string;
|
|
118
|
+
summary: string;
|
|
119
|
+
errorLines: string[];
|
|
120
|
+
}>;
|
|
121
|
+
export declare function handleAdbMcpBackup(params: AdbMcpBackupParams): Promise<{
|
|
122
|
+
stdout: string;
|
|
123
|
+
stderr: string;
|
|
124
|
+
}>;
|
|
125
|
+
export declare function handleAdbMcpRestore(params: AdbMcpRestoreParams): Promise<{
|
|
126
|
+
stdout: string;
|
|
127
|
+
stderr: string;
|
|
128
|
+
}>;
|
|
129
|
+
export declare function handleAdbMcpReboot(params: AdbMcpRebootParams): Promise<{
|
|
130
|
+
stdout: string;
|
|
131
|
+
stderr: string;
|
|
132
|
+
}>;
|
|
133
|
+
export declare function handleAdbMcpGetState(params: AdbMcpGetStateParams): Promise<{
|
|
134
|
+
state: string;
|
|
135
|
+
}>;
|
|
136
|
+
export declare function handleAdbMcpGetSerialNo(params: AdbMcpGetSerialNoParams): Promise<{
|
|
137
|
+
serialNo: string;
|
|
138
|
+
}>;
|
|
139
|
+
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import * as adb from '../adb/index.js';
|
|
2
|
+
function opts(params) {
|
|
3
|
+
return { deviceId: params.deviceId, timeoutMs: params.timeoutMs };
|
|
4
|
+
}
|
|
5
|
+
export async function handleAdbMcpListDevices(params) {
|
|
6
|
+
const list = await adb.listDevices(opts(params));
|
|
7
|
+
return {
|
|
8
|
+
devices: list.map((d) => ({
|
|
9
|
+
id: d.id,
|
|
10
|
+
status: d.status,
|
|
11
|
+
model: d.model,
|
|
12
|
+
product: d.product,
|
|
13
|
+
})),
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export async function handleAdbMcpExecShell(params) {
|
|
17
|
+
const stdout = await adb.execShell(params.command, opts(params));
|
|
18
|
+
return { stdout };
|
|
19
|
+
}
|
|
20
|
+
export async function handleAdbMcpLaunchApp(params) {
|
|
21
|
+
const result = await adb.launchApp(params.packageName, params.activity, opts(params));
|
|
22
|
+
return { result };
|
|
23
|
+
}
|
|
24
|
+
export async function handleAdbMcpTap(params) {
|
|
25
|
+
const result = await adb.tap(params.x, params.y, opts(params));
|
|
26
|
+
return { result };
|
|
27
|
+
}
|
|
28
|
+
export async function handleAdbMcpSwipe(params) {
|
|
29
|
+
const result = await adb.swipe(params.x1, params.y1, params.x2, params.y2, params.durationMs, opts(params));
|
|
30
|
+
return { result };
|
|
31
|
+
}
|
|
32
|
+
export async function handleAdbMcpInputText(params) {
|
|
33
|
+
const result = await adb.inputText(params.text, opts(params));
|
|
34
|
+
return { result };
|
|
35
|
+
}
|
|
36
|
+
export async function handleAdbMcpScreencap(params) {
|
|
37
|
+
const imageBase64 = await adb.screencap(opts(params));
|
|
38
|
+
return { imageBase64, mimeType: 'image/png' };
|
|
39
|
+
}
|
|
40
|
+
export async function handleAdbMcpScreencapAnalyze(params) {
|
|
41
|
+
const result = await adb.screencapAnalyze({
|
|
42
|
+
...opts(params),
|
|
43
|
+
extractText: params.extractText,
|
|
44
|
+
});
|
|
45
|
+
return {
|
|
46
|
+
imageBase64: result.imageBase64,
|
|
47
|
+
mimeType: 'image/png',
|
|
48
|
+
extractedText: result.extractedText,
|
|
49
|
+
confidence: result.confidence,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export async function handleAdbMcpCurrentActivity(params) {
|
|
53
|
+
const activity = await adb.currentActivity(opts(params));
|
|
54
|
+
return { activity };
|
|
55
|
+
}
|
|
56
|
+
export async function handleAdbMcpUiDump(params) {
|
|
57
|
+
const xml = await adb.uiDump(opts(params));
|
|
58
|
+
return { xml };
|
|
59
|
+
}
|
|
60
|
+
export async function handleAdbMcpFindAndTap(params) {
|
|
61
|
+
return adb.findAndTap(params.text, opts(params));
|
|
62
|
+
}
|
|
63
|
+
export async function handleAdbMcpLiveTest(params) {
|
|
64
|
+
return adb.runScenario(params.scenarioMarkdown, {
|
|
65
|
+
deviceId: params.deviceId,
|
|
66
|
+
timeoutMs: params.timeoutMs,
|
|
67
|
+
waitProgressTimeoutMs: params.waitProgressTimeoutMs,
|
|
68
|
+
waitVisibleTimeoutMs: params.waitVisibleTimeoutMs,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
export async function handleAdbMcpKeyevent(params) {
|
|
72
|
+
const result = await adb.keyevent(params.keycode, opts(params));
|
|
73
|
+
return { result };
|
|
74
|
+
}
|
|
75
|
+
export async function handleAdbMcpScreenrecord(params) {
|
|
76
|
+
const result = await adb.screenrecord(params.path, params.durationSec, opts(params));
|
|
77
|
+
return { result };
|
|
78
|
+
}
|
|
79
|
+
export async function handleAdbMcpHome(params) {
|
|
80
|
+
const result = await adb.homeButton(opts(params));
|
|
81
|
+
return { result };
|
|
82
|
+
}
|
|
83
|
+
export async function handleAdbMcpConnect(params) {
|
|
84
|
+
return adb.adbConnect(params.host, { timeoutMs: params.timeoutMs });
|
|
85
|
+
}
|
|
86
|
+
export async function handleAdbMcpDisconnect(params) {
|
|
87
|
+
return adb.adbDisconnect(params.host, { timeoutMs: params.timeoutMs });
|
|
88
|
+
}
|
|
89
|
+
export async function handleAdbMcpKillServer(params) {
|
|
90
|
+
return adb.adbKillServer({ timeoutMs: params.timeoutMs });
|
|
91
|
+
}
|
|
92
|
+
export async function handleAdbMcpStartServer(params) {
|
|
93
|
+
return adb.adbStartServer({ timeoutMs: params.timeoutMs });
|
|
94
|
+
}
|
|
95
|
+
export async function handleAdbMcpPush(params) {
|
|
96
|
+
return adb.adbPush(params.localPath, params.remotePath, opts(params));
|
|
97
|
+
}
|
|
98
|
+
export async function handleAdbMcpPull(params) {
|
|
99
|
+
return adb.adbPull(params.remotePath, opts(params));
|
|
100
|
+
}
|
|
101
|
+
export async function handleAdbMcpInstall(params) {
|
|
102
|
+
const flags = params.replace ? ['-r'] : [];
|
|
103
|
+
return adb.adbInstall(params.apkPath, flags, opts(params));
|
|
104
|
+
}
|
|
105
|
+
export async function handleAdbMcpUninstall(params) {
|
|
106
|
+
return adb.adbUninstall(params.packageName, params.keepData, opts(params));
|
|
107
|
+
}
|
|
108
|
+
export async function handleAdbMcpLogcat(params) {
|
|
109
|
+
const args = [];
|
|
110
|
+
if (params.clear)
|
|
111
|
+
args.push('-c');
|
|
112
|
+
if (params.dump)
|
|
113
|
+
args.push('-d');
|
|
114
|
+
const output = await adb.adbLogcat(args, opts(params));
|
|
115
|
+
return { output };
|
|
116
|
+
}
|
|
117
|
+
export async function handleAdbMcpLogcatErrors(params) {
|
|
118
|
+
const level = (params.level ?? 'EF');
|
|
119
|
+
return adb.logcatErrors(level, params.maxLines, opts(params));
|
|
120
|
+
}
|
|
121
|
+
export async function handleAdbMcpLogcatCrashes(params) {
|
|
122
|
+
return adb.logcatCrashes(opts(params));
|
|
123
|
+
}
|
|
124
|
+
export async function handleAdbMcpLogcatAnalyze(params) {
|
|
125
|
+
return adb.logcatAnalyze(opts(params));
|
|
126
|
+
}
|
|
127
|
+
export async function handleAdbMcpBackup(params) {
|
|
128
|
+
const args = ['-f', params.outputPath];
|
|
129
|
+
if (params.apk)
|
|
130
|
+
args.push('-apk');
|
|
131
|
+
if (params.shared)
|
|
132
|
+
args.push('-shared');
|
|
133
|
+
if (params.all)
|
|
134
|
+
args.push('-all');
|
|
135
|
+
if (params.nosystem)
|
|
136
|
+
args.push('-nosystem');
|
|
137
|
+
if (params.packageName)
|
|
138
|
+
args.push(params.packageName);
|
|
139
|
+
return adb.adbBackup(args, opts(params));
|
|
140
|
+
}
|
|
141
|
+
export async function handleAdbMcpRestore(params) {
|
|
142
|
+
return adb.adbRestore(params.backupPath, opts(params));
|
|
143
|
+
}
|
|
144
|
+
export async function handleAdbMcpReboot(params) {
|
|
145
|
+
return adb.adbReboot(params.mode, opts(params));
|
|
146
|
+
}
|
|
147
|
+
export async function handleAdbMcpGetState(params) {
|
|
148
|
+
const state = await adb.adbGetState(opts(params));
|
|
149
|
+
return { state };
|
|
150
|
+
}
|
|
151
|
+
export async function handleAdbMcpGetSerialNo(params) {
|
|
152
|
+
const serialNo = await adb.adbGetSerialNo(opts(params));
|
|
153
|
+
return { serialNo };
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|