{"_id":"@us-all/android-mcp","_rev":"35-75e2b4553a23a55547a0e96f194b11c5","name":"@us-all/android-mcp","dist-tags":{"latest":"1.14.4"},"versions":{"1.0.0":{"name":"@us-all/android-mcp","version":"1.0.0","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.0.0","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"52e4f193c619e120bed9762e01b065161f34795e","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.0.0.tgz","fileCount":51,"integrity":"sha512-DbgzwQMv3/uP9/1JPo+oYZUxsXbx1pjIV+c9Fir6KxFI8H2t6O4ixhb/vN3hvNMsju12mIovGvrzOvZZhH44yQ==","signatures":[{"sig":"MEYCIQD96JT53gWXvczDwkP7sGAe3Nyq95YYsOIFXuWu+qVvaAIhAMFcxMxDKcyf3kCXJ4id/a8VpDKE+AR4nI1dsj4o5Krm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124620},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"bbf3c3122c4a328b987e9d5ad817346543ff9d59","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest"},"_npmUser":{"name":"thkim-us-all","email":"thkim@us-all.co.kr"},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"25.8.1","dependencies":{"zod":"^4.3.6","dotenv":"^17.3.1","fast-xml-parser":"^5.2.3","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.0.0_1774677998658_0.2641436676877893","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@us-all/android-mcp","version":"1.1.0","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.1.0","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"d812a081d3bacccc53fd58db9258270cdb93eedb","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.1.0.tgz","fileCount":51,"integrity":"sha512-HLtBCjn37WiaJoZC8FiFWURh7bZ6otsU0ySLP5Inp1ykrQneuwVsm0V9v5H3SPdkKRb398NYjUrjdm0Pwlt1rw==","signatures":[{"sig":"MEYCIQC46pFZPsTNtCSa3lK+F7323fOJI7Wl+Mc4R1abAc4nmQIhAI4GYCM4nGZZmWZO+mEaYNVQIqTinWTN6GFXfqy2j0MF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":165664},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"b838f6db384204bb33bd33f51b437b8f75621942","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.12.1","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.3.6","dotenv":"^17.3.1","fast-xml-parser":"^5.2.3","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.1.0_1774680364712_0.06774709751752295","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@us-all/android-mcp","version":"1.2.0","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.2.0","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"403f0665c20eb0890a88d612d5f7c72c825cb3af","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.2.0.tgz","fileCount":55,"integrity":"sha512-yk8JrMU8/d7ySLWvehci+yRLGimaqvMWo0RYZHszfs5YqGqGAN9yaDTy0mQl8Fy9wW9acZxIRd5APX0ZP4Bzlw==","signatures":[{"sig":"MEQCIAzdach1RTwZXxfYgPyXaUNde536y0fqQbw2EOiqRQ5oAiB9QkzWimBMgqNW77X+UdBJTnboM0K2M/Wmdrz9Uiv+ZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":209445},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"7e39c15e1821ec1e5069d335ba198fbdc78ed3c5","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.12.1","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.3.6","dotenv":"^17.3.1","fast-xml-parser":"^5.2.3","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.2.0_1774681927255_0.8744838959829622","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@us-all/android-mcp","version":"1.3.0","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.3.0","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"e49fc976bdec3109d3fec65828a0ee8906351f4e","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.3.0.tgz","fileCount":55,"integrity":"sha512-pUHClLUEkyImpngWlP9rFlMmK6Y02oxt2bV0DEAEjk1ZEgpNFNT4AEUmljxt6o6MsAw36iSVUxHm0PGHBBMhDQ==","signatures":[{"sig":"MEUCIAcKs0x+y5nESVuPaWwadbRqy3bsKlFb22cw14bM5FnDAiEAhHwZpHddwBeIrMJonBTtOCfumHqNV80RCjNf+QGc8vo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":225085},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"7d6e1631b9c222836ef8fbaf84c629d010d3dcac","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.12.1","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.3.6","dotenv":"^17.3.1","fast-xml-parser":"^5.2.3","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.3.0_1774686309407_0.6419009604820689","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@us-all/android-mcp","version":"1.3.2","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.3.2","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"616f23950012b96b4b954703b8285639e7da6098","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.3.2.tgz","fileCount":55,"integrity":"sha512-H71yxsx6oQGUYyT5jfVsvg9AvoOeI31c+YRcYalZg0JQbsBTQ2WiII/NlCKF8vOKJDTtHliurcbWp+KddjXPmg==","signatures":[{"sig":"MEUCIAPf+0e1AxiZ4QFsmyNV7za2aXqta4k5Zze1yrR+mQ6cAiEA73edC4AHFhTwE1hZNlQqWFZVD/0K+YEVfgS3HaFbuVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":225153},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"16ea5ec50c63b0b1e9aba6e6063c56c168923954","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","dotenv":"^17.3.1","fast-xml-parser":"^5.2.3","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.3.2_1777596825982_0.8447564022213352","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@us-all/android-mcp","version":"1.4.0","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.4.0","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"60ba8a39f52cdc90cc063675ff64312bf09e3ec4","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.4.0.tgz","fileCount":63,"integrity":"sha512-2tsWvMiewzCKzhofwxMzHkR5uste3p9fIN+sgozcAZ07VTtNYMqgGkSqigPn1HN9hVqKI1K6V/lsvQ3T8p9Psw==","signatures":[{"sig":"MEYCIQDaGBryrqc5hGxX8AcpWRM4ONbV/jYZa4s6zt74FzB07gIhAPogptAjqaevuEfGWvPJJZgV+wsMuWSUzOcccIlBlTjw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243099},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"76c58ca25f95f0f9bb48669b5bfddf58921df258","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","dotenv":"^17.3.1","fast-xml-parser":"^5.2.3","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.4.0_1777598900111_0.28596072562467945","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@us-all/android-mcp","version":"1.4.1","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.4.1","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"202121c809a91d086966fb38bc21c7ab46e5290a","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.4.1.tgz","fileCount":63,"integrity":"sha512-Kl54F6OBV2ggB3YB9JJbjuzggzPueGOY4c9m36MlSuyS1WUVqF4jKjxWA5jqsSI8NaMbVxqP6jImLJi0NGqWUQ==","signatures":[{"sig":"MEQCIHjTFufSc5I/hDYz92M1VKkJxT6zU1xpyFrhlZkS7mBhAiBq/G4S+7ByIFAfxajP8J8378m3nCeG3YENkqlgOim1+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":254172},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"f7b0ebb6943a16695c86f43722fc690fc3d10a48","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","dotenv":"^17.3.1","fast-xml-parser":"^5.2.3","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.4.1_1777600003031_0.7181997685188637","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@us-all/android-mcp","version":"1.4.2","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.4.2","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"6a6ac69bb22281e4ac4ba60412d0a0fa17a011f0","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.4.2.tgz","fileCount":63,"integrity":"sha512-8hThXY6K2RZ7rsRn0fkrq04MCQQWzOCnhRg7C9jFP+xuw9JkZQbQUV1X/CUd88//oLJjyVlwZZC1trpnIOQHTg==","signatures":[{"sig":"MEYCIQDuDiDOcRTKoU4BCb2bX/WpzRUvXhILixS8GQPTYweTqwIhAPLmjIOo0v8tsdJYxfZn4HSXgQCKgubMep8Ej4HTM+Tq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":254266},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"b24df8528e02c0ab35ab579eacfa42c3e4425c93","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","dotenv":"^17.3.1","fast-xml-parser":"^5.2.3","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.4.2_1777601081289_0.2878633129844317","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@us-all/android-mcp","version":"1.5.0","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.5.0","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"0df7bcef45159f5789c81d9ef8a96d99e24d6042","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.5.0.tgz","fileCount":67,"integrity":"sha512-jZ5h/cXTuq/k+YW49Vak58yjDZYXQfGM34tM8fmY8rFCFm+2pppdXBcUBbJ6ecVtYHMhkVAc5QToMbh/HGCHww==","signatures":[{"sig":"MEYCIQC99SkW0Ult8QX0d62PRWqQ7MsA6MQW2FuJ1iLuUFNuJwIhANu56mmPTmznMYSgCFwFKmEPalGVdmi+5WDaLEhJfidA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":257424},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"335853b49f67ac077475172d8797daf44bcd5a93","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","dotenv":"^17.3.1","fast-xml-parser":"^5.2.3","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.5.0_1777601373176_0.21039946471886806","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@us-all/android-mcp","version":"1.6.0","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.6.0","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"8cf7ecc38796d429e5e1ab602ad0ad3c5985e704","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.6.0.tgz","fileCount":71,"integrity":"sha512-GEFBq+6NJWTY+/yNtvjfm+V88BRWqSO50exuXKA0EZrgDCXpB5LdZSKppLxTLQvZubv5qx2ko07tQKcyAvODkA==","signatures":[{"sig":"MEUCIEbtOjcfzfxCGBnLCn+1EJks3HMbOCvPsvg8xoBiR6QqAiEAk2WhQRae+/89HquJtVDoTKLB/S+n7CEjovHqILuLpGg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":261939},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"90b7bcbc73399e35d64f08857688ab0d7cb5b253","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","dotenv":"^17.3.1","fast-xml-parser":"^5.2.3","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.6.0_1777601600359_0.007200125660059564","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@us-all/android-mcp","version":"1.6.1","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.6.1","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"e27b688564ee78e20aaa23945c660122e63f6e50","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.6.1.tgz","fileCount":71,"integrity":"sha512-eILo+YYmFRl2DkO61Ecy6NxJ9jmb2e/dzl3f2jbKXsBkyv2OqCyFr74W+Mt5uoOzeGUzIkfKsmYbZd/Fp5jUkg==","signatures":[{"sig":"MEQCIHjue8ewbbQnE8XlhvSSuithCATicASbhvEwaWc0zZXIAiBtayRwrWepinbLKhJsInKkKH7T79irUjsGkSNRsLgQCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":262249},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"2fe73f9bfd265dbeeb6dee32ad33a8ae4f2f3ba9","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","dotenv":"^17.3.1","fast-xml-parser":"^5.2.3","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.6.1_1777602604985_0.13831760485047684","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@us-all/android-mcp","version":"1.7.0","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.7.0","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"07bd8539dcb84384efafefea4678905f9891fcc6","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.7.0.tgz","fileCount":71,"integrity":"sha512-MsOgUMRy+VxIwSH1zBKo+QgoQdTUbj3pj/xKb6XwkPjydhHnpA6eGkSGaOOH8Fxlhc0AoPNwj58PSuj42jFZXQ==","signatures":[{"sig":"MEYCIQDmwbO36Mkbzxrg67eaJgzb5S42N1e1VZP7WDLRBr98rQIhAIu8c6jfEnAG+TW41F6W9w1qo0/isHg9EeptIpqnMIdK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":250577},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"43ac84465e255f8f1c46df52194cbe89e1bae7f9","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","dotenv":"^17.3.1","fast-xml-parser":"^5.2.3","@us-all/mcp-toolkit":"^0.1.0","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.7.0_1777606019183_0.9378955769145443","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"@us-all/android-mcp","version":"1.7.1","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.7.1","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"c6148b04fca30d25991f278c3840b28f91639586","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.7.1.tgz","fileCount":71,"integrity":"sha512-9//WeJ+FLF8RuF2zCL2y/qJPM9n5a/7bvcOeHD7O9UAEHMfyGAXHkN9ohwKlkzL2/ZDo+71KAgiEkZmRzH3h+A==","signatures":[{"sig":"MEUCIE83eEbtuD9M98vcooxiAo1hVHEsUSk7MVc14RMy0ofvAiEA4l48j4j1m0qwo3jh/m8+ANdjPUn2UKFrW+PtB8DbkDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":250659},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"b63f9fbb4346526936ba58f9c8ef976e495506e2","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","dotenv":"^17.3.1","fast-xml-parser":"^5.2.3","@us-all/mcp-toolkit":"^0.2.0","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.7.1_1777729387115_0.500430134174142","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"@us-all/android-mcp","version":"1.7.2","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.7.2","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"edf07a7317b6d086b0fd46245c58cc1eb0e64b54","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.7.2.tgz","fileCount":71,"integrity":"sha512-LcHhu/WwJP/aIQGLDwGjmPp8b1BBB25Ker9ntMoWy+NXpyvqHR0fcBfpLoen8zQDgrB2y24PT7tvPJPfTgTTMA==","signatures":[{"sig":"MEQCIDf5RnoVBAHDRF8TjKxMaoakOy2ZiQYG7hkUttzKSClVAiBxcFejx5DgwTEaeAU/fkTvCPpKcU8V3xQOT1sq0c/cjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":250723},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14","vite":"^8.0.5","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"9164d6e3fe8dadfc8d6c2f2c197bd7e3cd785bfc","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","dotenv":"^17.3.1","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^0.2.0","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.7.2_1777729707323_0.880581134917729","host":"s3://npm-registry-packages-npm-production"}},"1.7.3":{"name":"@us-all/android-mcp","version":"1.7.3","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.7.3","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"be887d4ea8ef9be88895be9001d98f35b56f7ff9","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.7.3.tgz","fileCount":71,"integrity":"sha512-OkuNYmrJHC+dz7ajOa9MHV31aRlyi2ACNaamU4gKKimkt6jcWt3YfnQMZdoo4VN5Vhb0BWtNlgN4McROo3ZDCA==","signatures":[{"sig":"MEUCIEQI7XAQnoOAlcum1bdlTk507LjC8ODtURXEq7VBFagNAiEA086c6mCcyBtjA/lk53/akfvRkTxtWUvMmTQPKcwjG1k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.7.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":249266},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14","vite":"^8.0.5","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"4dd923e30a823afba3b70d6d8f104079d7a58fe4","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.2","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^0.2.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.7.3_1777731358457_0.8330827522099364","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@us-all/android-mcp","version":"1.8.0","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.8.0","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"c82c52bbdf97e2760ad8fc4fed46dd8f7c8eca64","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.8.0.tgz","fileCount":75,"integrity":"sha512-9TpcmDvpYEei7C3CnMuAV/mVQQNYs5hQ36uxwN9unFCn99CrpUo3K6YqtQvsA+gmpDCztxENV0+oe3yq/o2U/Q==","signatures":[{"sig":"MEUCIAzBkb3FYyIrSZaPoQt8jzjb5bvLTPObbrb+jWG7PWnQAiEAhlwZF9x0iVUy1lYY/nsVZW5fQWRKuIuq+8LL/bKqvXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":267841},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14","vite":"^8.0.5","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"4bc8adf5843ab9ebbbcba0ed70c44d50ce0d9b7f","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.2","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^0.2.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.8.0_1777731976069_0.9226253710020056","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@us-all/android-mcp","version":"1.9.0","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.9.0","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"0efdf5793f34496da3c7bf1a158bf5b7b5a89fb6","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.9.0.tgz","fileCount":75,"integrity":"sha512-TnRw4HgR485CgdguctGLcXBRnKIyF8Tlzb3zCdttsPUM4Y5kT7RZnWO0g/hfZ5qH8PeScZRjH8glqskf106cpg==","signatures":[{"sig":"MEUCIQCUS1KIM2VtrF6PQJhVD02aYqe13e6/Qs3EgXY6PexehAIgK7mXnR+JHt99/S9WWxcgHNt7AYg2joBwGk46DsScX9w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282406},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14","vite":"^8.0.5","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"ea12dcc266dcb86d4b87d93ae8ca0845c39d7104","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.2","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^0.2.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.9.0_1777732470459_0.9581524422725973","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@us-all/android-mcp","version":"1.10.0","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.10.0","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"1421ac3fa6a00368edb41102317b0a78c6f354c1","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.10.0.tgz","fileCount":75,"integrity":"sha512-jdTyIj/Q8vVi7gUN3my6+FORnAKxVYjWT8YWCR29MEK2pzGDhOhbOtQXX1t00XIbAreC6y88jejEMgZHGlNZdg==","signatures":[{"sig":"MEQCIDYQQUMRczmmsKmBnWuG0s6rsW4BxPxU+AeXvnTX4el2AiBHWoTgjQL/795x5ObkGisXlFV6ExsXZ9EUO3i8VeR7Fw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":288403},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14","vite":"^8.0.5","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"f60695537491eb4ebc7d173bbb1d52f99b0ad536","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.2","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^0.2.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.10.0_1777733991475_0.787078625109205","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"@us-all/android-mcp","version":"1.10.1","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.10.1","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"dbf4be0f7b0c2dbf59f0eb3252aaf940d8b42366","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.10.1.tgz","fileCount":75,"integrity":"sha512-rtSUB7v/w/oaJ+BDjxp0mj3pnABVnItYorm15JG1cSvLrEE7ua9S1C0qcu9fPRrUpnmN3729WqwDe+tA/KZ68w==","signatures":[{"sig":"MEUCIQCj1b54Xcnz8rHbRkIkPFzrPBPi65G7k0+u+SRl6iLHaAIgchbRsDDwgCQhoX47czFpe5bJ7xRWXu1JtFTJxRPv04s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":288403},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14","vite":"^8.0.5","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"d48c96a20451971e563e9c7768110b8d423fe407","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.2","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^1.0.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.10.1_1777770214269_0.30027669210214314","host":"s3://npm-registry-packages-npm-production"}},"1.10.2":{"name":"@us-all/android-mcp","version":"1.10.2","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.10.2","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"74b38d762771ca9adcfc6200fa0337e2db147fdd","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.10.2.tgz","fileCount":75,"integrity":"sha512-kuzvyjtFBK9CC5jexNncw21rRIBzCNZ1I5PYRTtFGdTYbnfCwPNkigajvsa6/1PjAulT68FpirpnVCbbCrWLQg==","signatures":[{"sig":"MEUCIQD6/MC628Ec5DAUomOwE1YOSrA/RRrd6Lbkv2Gnwr4GmgIgL1cSDeetStkmD/FcREIqP0GG6orEAq+oN3ADY9ioOXg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":286197},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14","vite":"^8.0.5","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"de16e06141d0af0b1be8e558b39b921eb1917915","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.2","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.10.2_1777771638448_0.09753673721816325","host":"s3://npm-registry-packages-npm-production"}},"1.10.3":{"name":"@us-all/android-mcp","version":"1.10.3","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.10.3","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"0b3ae79bf23305d1b98ca8d72d2953e8bb4a97a0","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.10.3.tgz","fileCount":75,"integrity":"sha512-ixTUa1DQMVtNZk0rKgcbZ6Ny7mYVrKV6+AacVmgmvgT4bAx/c9no47hbqVzkK7rdXfIodui4G8CsSfTWiGVDXw==","signatures":[{"sig":"MEUCIQChh1G7V/5lkghPWIhjvKUpldZN5Ky33drzqw7bMjavIQIgPj/GnJTyJ8oUZ1sLjEfeugHNCEI05+9e0XAAXl3cukk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.10.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":286837},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14","vite":"^8.0.5","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"47281eb97391c2ac819530fe5de3fa041a979281","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.2","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.10.3_1777772858194_0.1124586086210444","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@us-all/android-mcp","version":"1.12.0","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.12.0","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"345f673a9d3f4bdc34ac1d07bbab277da706fab2","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.12.0.tgz","fileCount":76,"integrity":"sha512-sRBbYuueLh+AwW7EXsx+IMQI5B/FXL8a7l37x8Bh0XelVllRUqeRy1wTpI0ZSjuwxX6T7mcIVBnh3VagYWQQxQ==","signatures":[{"sig":"MEYCIQDtJxSwQN6pfpZHZZlSHKLzf+Naxb9Kwrt0iAeqUNIgLAIhAKcj9bFtX2HSflbkVjiZG2mvAzCAagcm6yUmneCnUyWJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":293965},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14","vite":"^8.0.5","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"53d6aa49881915d4ae44f0551173c6a3db8ab894","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && node -e \"require('fs').cpSync('src/ui','dist/ui',{recursive:true})\"","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.2","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^1.2.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.12.0_1777982818715_0.863058117716186","host":"s3://npm-registry-packages-npm-production"}},"1.12.1":{"name":"@us-all/android-mcp","version":"1.12.1","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.12.1","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"51b416212a1a0157927c69fedbb2050e88c7c1b2","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.12.1.tgz","fileCount":76,"integrity":"sha512-gorubo3hhpwoFqis3iMe1Mg6rUQOt8DMQAyg5SgPQP4Fd8QtspuQuu4W5ozJsVWJ018UNB3x8e6yIgYmzrCM5w==","signatures":[{"sig":"MEUCIQD+V9NmzvE5g+Nv3q0nydt7oinrzUz+CMJGq2Z6nCHNuAIgBfOmmOmNBKU2Hr17RxNsDYxmjDUttWKfUbZFGuR6jgM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":293965},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14","vite":"^8.0.5","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"f78616f0b5210ebab02bc14fd9d44fae6a23294f","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && node -e \"require('fs').cpSync('src/ui','dist/ui',{recursive:true})\"","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.2","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^1.2.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.12.1_1777984393799_0.35164942255785303","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@us-all/android-mcp","version":"1.13.0","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.13.0","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"0f8c8d66769958102540cb90c1c9b9d85eb506a7","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.13.0.tgz","fileCount":76,"integrity":"sha512-5TiWRZC28haZ5434cEKgn98alOzbxQdOkcDJsXN3ZQPXAVtSyOKlhyzeDECR41IaLnBRS03qnd5nCMxe+vB9Cg==","signatures":[{"sig":"MEYCIQCC0qq14SqgM+gWKoHkchOge9G3d9aVME+PgsP2C+OB4wIhAMIFcR5uANcp1ntN4TeU81mfKDSQDrNmth7ipq2YSI7S","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":318109},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14","vite":"^8.0.5","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"62b2b0947548b1db03df44ce145072b9b72ed94c","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && node -e \"require('fs').cpSync('src/ui','dist/ui',{recursive:true})\"","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.2","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^1.2.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.13.0_1777986276398_0.7851151994503123","host":"s3://npm-registry-packages-npm-production"}},"1.13.1":{"name":"@us-all/android-mcp","version":"1.13.1","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.13.1","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"a7a8c315592c331bdbb69aee4c06a9380fe60c22","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.13.1.tgz","fileCount":76,"integrity":"sha512-HT0QMz+17twUpvW90R4m5OEvJhAAX+ZJGaG0ZNhvFruG0GdFTt+QIAK3aDnIPe3U5v0BImRWDsC6MI0fHvJsyA==","signatures":[{"sig":"MEUCIQDI0+xL6xtY3PxSkudAMlzSyKvy1HK+hagyOtj7iumGWAIgfO86HRBxxl3BfKocg7UrA/96qMavr/DkNQRpoBpQAoE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":318150},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14","vite":"^8.0.5","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"cda2aa5ce42965b891144e10fb50b32f6d009f76","mcpName":"io.github.us-all/android","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && node -e \"require('fs').cpSync('src/ui','dist/ui',{recursive:true})\"","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.2","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^1.2.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.13.1_1778064878666_0.826602076401358","host":"s3://npm-registry-packages-npm-production"}},"1.13.2":{"name":"@us-all/android-mcp","version":"1.13.2","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.13.2","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"9c7b33054e0bddfd75ae4774fba9869fd2b750ba","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.13.2.tgz","fileCount":77,"integrity":"sha512-6j/Rro460qFLKXNZgiO6ZnW5J1wUFR6VVJoWVsALBFiHGV2BJ3PwPaG07Yqbx9ExJlNd1A4QgCPP7UrTgF6Kmw==","signatures":[{"sig":"MEUCIQDpuEdmGJCaXW269RfMnw5pxwwgCzkWKFidY/wrCI3l0wIgaK3w2/LMI2ddaB7m/yh2z+bUNXEsGA5Rk4Kz1oSPz4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.13.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":327194},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14","vite":"^8.0.5","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"gitHead":"4fe51d977ff28a57f5cafb17dd11d873fc1fd5e1","mcpName":"io.github.us-all/android","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && node -e \"require('fs').cpSync('src/ui','dist/ui',{recursive:true})\"","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.2","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^1.2.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.13.2_1778675410901_0.2523920967621702","host":"s3://npm-registry-packages-npm-production"}},"1.13.3":{"name":"@us-all/android-mcp","version":"1.13.3","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.13.3","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"97efed132e28405d4b83fcccfd2673ccac3f9869","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.13.3.tgz","fileCount":77,"integrity":"sha512-WBK1EO01HH8AGbZV4WJg3tWbOiTRFxAQGwGnS4S3CGhum6jd2vFc6MCyR9UqY9rSgE9UWRGNv/q0RrOBL3ohvQ==","signatures":[{"sig":"MEUCIHEdW+M2w0ZwI8lCWJWoqSUsi4OZPUhBUB3SI8ejKq8gAiEAxytkRuHlyx/yi3NEY7aOh2x8oedJtbXeEjdIcbbAvmM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.13.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":327194},"main":"dist/index.js","pnpm":{"overrides":{"hono":">=4.12.14","vite":"^8.0.5","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"gitHead":"a0ed0c720172b57c7bedfc8e86a4f863fe7230a2","mcpName":"io.github.us-all/android","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && node -e \"require('fs').cpSync('src/ui','dist/ui',{recursive:true})\"","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.2","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^1.2.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.13.3_1778810785820_0.9915033278519942","host":"s3://npm-registry-packages-npm-production"}},"1.13.4":{"name":"@us-all/android-mcp","version":"1.13.4","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.13.4","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"a232da4c6e89f8275b53a9a7dbcfd6d051c3d3be","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.13.4.tgz","fileCount":77,"integrity":"sha512-eJQpHojZIof2vostntMbChM/XqB/7lTGeMoqN6siFuXvSC5f6ojhMNH3gpAgBUp61StVQLlr8g+RXfN/bDb1mQ==","signatures":[{"sig":"MEUCIQDbDJyYfuf1uQTj9HaXsR63Uy51V89JqUsNB6PUZkVZAAIgMobVr4UxlrHxMxOCgkqX01SnLxFJYoA7bD/NDB5R0vc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.13.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":327252},"main":"dist/index.js","pnpm":{"overrides":{"hono":"^4.12.18","vite":"^8.0.5","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"gitHead":"41211c197a82dd0a09c05b39641a4fd402281066","mcpName":"io.github.us-all/android","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && node -e \"require('fs').cpSync('src/ui','dist/ui',{recursive:true})\"","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.11.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.2","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^1.2.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.13.4_1778812068812_0.8669270132541445","host":"s3://npm-registry-packages-npm-production"}},"1.13.5":{"name":"@us-all/android-mcp","version":"1.13.5","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.13.5","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"a89a3e9462b7fac77b3ddbbdab9eb9fa11f783da","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.13.5.tgz","fileCount":77,"integrity":"sha512-Qo4I0K8Gtef0SVn2FI5bL4+gk5MI4LCpuzKG6eGIkauHPyJFKY6VVAoSewNpNgr9DFtUP/AdazCg6V930fkKPQ==","signatures":[{"sig":"MEUCIQC4VzYCav3vRk7g51m+8+GdNx+WSzPUbhaUq8mErQqvZAIgHiYaIwflI60CoxvBrk8pO6cNr9cJOkZFQXD5kcODHA8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.13.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":327288},"main":"dist/index.js","pnpm":{"overrides":{"hono":"^4.12.18","vite":"^8.0.5","fast-uri":"^3.1.2","ip-address":"^10.1.1","fast-xml-builder":"^1.1.7","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"gitHead":"5a21d012fc3f4c6ec103c94bf19c28a8e814ad1b","mcpName":"io.github.us-all/android","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && node -e \"require('fs').cpSync('src/ui','dist/ui',{recursive:true})\"","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.12.1","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^4.4.2","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^1.2.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.13.5_1778990461892_0.7521866033529274","host":"s3://npm-registry-packages-npm-production"}},"1.13.6":{"name":"@us-all/android-mcp","version":"1.13.6","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.13.6","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"c8d3d633a6a178ac9ea8b68ba02da1b566ae19d6","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.13.6.tgz","fileCount":77,"integrity":"sha512-yrtmIV+XGBiclCl2RNAZbPCnGFEtKOgZ+XHmi64HduHDyPJ9uyGtCjL5kvhaY7XGF58deWXWVZKtP7ddVh9xlA==","signatures":[{"sig":"MEQCIB6Ux6tTHVcruvgOUQAOGENL9XtG2DKuof2VyDFYwVx2AiAIRtjTTV2KSkwX9O+GHphroWyWHotsQL9qSKAU6OFpUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.13.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":327288},"main":"dist/index.js","pnpm":{"overrides":{"hono":"^4.12.18","vite":"^8.0.5","fast-uri":"^3.1.2","ip-address":"^10.1.1","fast-xml-builder":"^1.1.7","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"gitHead":"3b3d69c01b92d5af0f9f4ea6d4abfdb707c2b3c8","mcpName":"io.github.us-all/android","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && node -e \"require('fs').cpSync('src/ui','dist/ui',{recursive:true})\"","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.12.1","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^4.4.2","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^1.2.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.13.6_1779342448834_0.016888813279864356","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@us-all/android-mcp","version":"1.14.0","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.14.0","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"17113af73333f189b3fabbebc60c6fe112c48f08","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.14.0.tgz","fileCount":77,"integrity":"sha512-uM3yiOQYKKZdo8HqzmsEBAqqS8rgLZBnkgoGZ8iUJIqa7S0WfqhOhu9/l5tbrEKl+1okuaRL2284cf6bMBo45w==","signatures":[{"sig":"MEUCIQDG4Vj/4PkLADIJg1gyZ3GJKXcJ0brBlHycYbm6xWx6OwIgC5b7WQGWB9MuF4mvs1KZDvT7nR2YtTvYqX+9sUTWmag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":331352},"main":"dist/index.js","pnpm":{"overrides":{"hono":"^4.12.18","vite":"^8.0.5","fast-uri":"^3.1.2","ip-address":"^10.1.1","fast-xml-builder":"^1.1.7","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"gitHead":"56af8932a4ea3a43f8ec30a15fb2c57df50c6213","mcpName":"io.github.us-all/android","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && node -e \"require('fs').cpSync('src/ui','dist/ui',{recursive:true})\"","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.13.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.2","jimp":"^1.6.1","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^1.2.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.14.0_1780150115684_0.8370454785851946","host":"s3://npm-registry-packages-npm-production"}},"1.14.1":{"name":"@us-all/android-mcp","version":"1.14.1","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.14.1","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"9324e3cc48751cfcf9570df3f06e73e51a04ee5a","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.14.1.tgz","fileCount":77,"integrity":"sha512-FXGplGEGW5gy07GRhFJHL7gHNT61Rk/sYmFu5R5+nQm+5Z+hAdIijTy245HDAmAqwG/vCF6+JIlYgb8zBvGVJw==","signatures":[{"sig":"MEUCIQDkJVnxwRQXEUthlWvXjQwcZGOeeed9i/hV3PiFWMKACwIgUzNGHSW8+0XjeFnGwvI++xocWXXGE55Mcq931YczfZ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.14.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":331387},"main":"dist/index.js","pnpm":{"overrides":{"hono":"^4.12.21","vite":"^8.0.16","fast-uri":"^3.1.2","ip-address":"^10.1.1","launch-editor":"^2.14.1","fast-xml-builder":"^1.1.7","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"gitHead":"b4964041db02c4a60a613a78a2232c9540bd074d","mcpName":"io.github.us-all/android","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && node -e \"require('fs').cpSync('src/ui','dist/ui',{recursive:true})\"","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.13.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.2","jimp":"^1.6.1","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^1.2.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.14.1_1781578694341_0.9432793004008273","host":"s3://npm-registry-packages-npm-production"}},"1.14.2":{"name":"@us-all/android-mcp","version":"1.14.2","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.14.2","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"5eb10b2462e42493fc6d75fadff5d91c436179b4","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.14.2.tgz","fileCount":77,"integrity":"sha512-mluEBwJcw/172sV07CS5tPtLhS1RZ7BzFByRr0Y9juyiOnM1GiQ5bvqeMMRAeh6Rbr3+27Zb74G7hN5tfi9Tcg==","signatures":[{"sig":"MEUCIQCztGcWKlyACmJ+ifNLJU4nZuVtPdD0xh2FiVrokra2XwIgVjek0Z9D5dckcsql8AtHzKFZoGdoEKx0+lL5kUVeyrI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.14.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":331351},"main":"dist/index.js","pnpm":{"overrides":{"hono":"^4.12.21","fast-uri":"^3.1.2","ip-address":"^10.1.1","fast-xml-builder":"^1.1.7","@hono/node-server":">=1.19.13"}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"gitHead":"e461d6aedcc5b87783416dee90ebe64712027b7a","mcpName":"io.github.us-all/android","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && node -e \"require('fs').cpSync('src/ui','dist/ui',{recursive:true})\"","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.13.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.2","jimp":"^1.6.1","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^1.2.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vite":"^8.0.16","vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.14.2_1781579028484_0.002185334600702804","host":"s3://npm-registry-packages-npm-production"}},"1.14.3":{"name":"@us-all/android-mcp","version":"1.14.3","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","_id":"@us-all/android-mcp@1.14.3","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"bin":{"android-mcp":"dist/index.js"},"dist":{"shasum":"f2aed8662b70b90a8b4c456d81511714bd85fe61","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.14.3.tgz","fileCount":77,"integrity":"sha512-dbtC0ptZuQk7pf+awn+6aguLQ+TVpBDjbmw/ilHbgloqU8XcV4fhVxNtXHkYR3SsCFSEwH64x8HTCV2UE1wVWg==","signatures":[{"sig":"MEUCIE8ro2KfXJjL7nM0HcSey1nn/hwulZUDBbtkjTucB6kyAiEAqh7G77Luv4FfXqj/H8tGlJ0xuckaZ9pO/AxXjwIoseM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.14.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":332052},"main":"dist/index.js","pnpm":{"overrides":{"hono":"^4.12.21","fast-uri":"^3.1.2","ip-address":"^10.1.1","fast-xml-builder":"^1.1.7","@hono/node-server":">=1.19.13"},"onlyBuiltDependencies":["sharp"],"supportedArchitectures":{"os":["current","linux","darwin"],"cpu":["current","x64","arm64"],"libc":["current","glibc","musl"]}},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"gitHead":"9829146a50d38cffa089db80f24f1bfab7498b98","mcpName":"io.github.us-all/android","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && node -e \"require('fs').cpSync('src/ui','dist/ui',{recursive:true})\"","smoke":"node scripts/smoke-test.mjs","start":"node dist/index.js","presmoke":"pnpm run build","test:watch":"vitest","token-stats":"node scripts/measure-tokens.mjs","pretoken-stats":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"repository":{"url":"git+https://github.com/us-all/android-mcp-server.git","type":"git"},"_npmVersion":"11.13.0","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.2","sharp":"^0.35.1","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","@us-all/mcp-toolkit":"^1.2.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.2","devDependencies":{"vite":"^8.0.16","vitest":"^4.1.1","typescript":"^5.9.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/android-mcp_1.14.3_1781838316477_0.8707209542429977","host":"s3://npm-registry-packages-npm-production"}},"1.14.4":{"name":"@us-all/android-mcp","version":"1.14.4","mcpName":"io.github.us-all/android","description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","type":"module","main":"dist/index.js","bin":{"android-mcp":"dist/index.js"},"engines":{"node":">=22.0.0"},"packageManager":"pnpm@10.30.2","pnpm":{"overrides":{"hono":"^4.12.21","@hono/node-server":">=1.19.13","fast-uri":"^3.1.2","ip-address":"^10.1.1","fast-xml-builder":"^1.1.7"},"supportedArchitectures":{"os":["current","linux","darwin"],"cpu":["current","x64","arm64"],"libc":["current","glibc","musl"]},"onlyBuiltDependencies":["sharp"]},"scripts":{"build":"tsc && node -e \"require('fs').cpSync('src/ui','dist/ui',{recursive:true})\"","dev":"tsc --watch","start":"node dist/index.js","test":"vitest run","test:watch":"vitest","presmoke":"pnpm run build","smoke":"node scripts/smoke-test.mjs","pretoken-stats":"pnpm run build","token-stats":"node scripts/measure-tokens.mjs"},"dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","@us-all/mcp-toolkit":"^1.3.0","dotenv":"^17.4.2","fast-xml-parser":"^5.7.0","sharp":"^0.35.1","zod":"^4.4.2"},"devDependencies":{"@types/node":"^22.15.0","typescript":"^5.9.3","vite":"^8.0.16","vitest":"^4.1.1"},"keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/us-all/android-mcp-server.git"},"homepage":"https://github.com/us-all/android-mcp-server#readme","bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"gitHead":"7637060d8841c4c4b06091e717e3cc9600215f78","types":"./dist/index.d.ts","_id":"@us-all/android-mcp@1.14.4","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-Z/o4/2BmkxENP4Cvb/I34CTGHZGVpm3PHYunDaHqmE91Vjrqlm9AtJZLe4vWJ7ygvd6VSi6bhiiRaO07tuhjMw==","shasum":"fe9ddb755ad879941b62bf0e9e9dcc68ed96ce6b","tarball":"https://registry.npmjs.org/@us-all/android-mcp/-/android-mcp-1.14.4.tgz","fileCount":77,"unpackedSize":332259,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@us-all%2fandroid-mcp@1.14.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCehYiCrzRLLHXwIF3/NiRsL2/xNrJoepsx+KMpbJ+KeAIhANMfu6mHtIaV4Gva/Pb/myNyC4VvSoAMHRwSTx/0+hr0"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0294af4b-a7e5-41d1-8f85-e4039413bb07"}},"directories":{},"maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/android-mcp_1.14.4_1781841517772_0.7625869974743409"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-28T06:06:38.519Z","modified":"2026-06-19T03:58:38.190Z","1.0.0":"2026-03-28T06:06:38.803Z","1.1.0":"2026-03-28T06:46:04.892Z","1.2.0":"2026-03-28T07:12:07.413Z","1.3.0":"2026-03-28T08:25:09.619Z","1.3.2":"2026-05-01T00:53:46.127Z","1.4.0":"2026-05-01T01:28:20.252Z","1.4.1":"2026-05-01T01:46:43.217Z","1.4.2":"2026-05-01T02:04:41.443Z","1.5.0":"2026-05-01T02:09:33.318Z","1.6.0":"2026-05-01T02:13:20.501Z","1.6.1":"2026-05-01T02:30:05.203Z","1.7.0":"2026-05-01T03:26:59.363Z","1.7.1":"2026-05-02T13:43:07.288Z","1.7.2":"2026-05-02T13:48:27.499Z","1.7.3":"2026-05-02T14:15:58.611Z","1.8.0":"2026-05-02T14:26:16.235Z","1.9.0":"2026-05-02T14:34:30.613Z","1.10.0":"2026-05-02T14:59:51.619Z","1.10.1":"2026-05-03T01:03:34.418Z","1.10.2":"2026-05-03T01:27:18.614Z","1.10.3":"2026-05-03T01:47:38.407Z","1.12.0":"2026-05-05T12:06:58.856Z","1.12.1":"2026-05-05T12:33:13.971Z","1.13.0":"2026-05-05T13:04:36.553Z","1.13.1":"2026-05-06T10:54:38.816Z","1.13.2":"2026-05-13T12:30:11.069Z","1.13.3":"2026-05-15T02:06:26.028Z","1.13.4":"2026-05-15T02:27:48.948Z","1.13.5":"2026-05-17T04:01:02.045Z","1.13.6":"2026-05-21T05:47:28.973Z","1.14.0":"2026-05-30T14:08:35.837Z","1.14.1":"2026-06-16T02:58:14.505Z","1.14.2":"2026-06-16T03:03:48.679Z","1.14.3":"2026-06-19T03:05:16.670Z","1.14.4":"2026-06-19T03:58:37.920Z"},"bugs":{"url":"https://github.com/us-all/android-mcp-server/issues"},"license":"MIT","homepage":"https://github.com/us-all/android-mcp-server#readme","keywords":["mcp","android","adb","model-context-protocol","claude","automation"],"repository":{"type":"git","url":"git+https://github.com/us-all/android-mcp-server.git"},"description":"Android MCP server - ADB-based device management, UI automation, logcat, emulator control, and more","maintainers":[{"name":"thkim-us-all","email":"thkim@us-all.co.kr"}],"readme":"# Android MCP Server\n\n> **The Android diagnostic & forensic MCP — when an app crashes, leaks memory, drains battery, or behaves unexpectedly, this is what you point at the device.**\n>\n> 76 tools across logcat / dumpsys / package internals / system properties / processes. 5 MCP Prompts (crash-investigation, memory-leak-detection, permission-audit, app-startup-profile, ui-element-locator) and a `device-health` aggregation. Pure ADB, no Appium / uiautomator2 dependency. 2-tier security (write + shell gates).\n\n[![npm](https://img.shields.io/npm/v/@us-all/android-mcp)](https://www.npmjs.com/package/@us-all/android-mcp)\n[![downloads](https://img.shields.io/npm/dm/@us-all/android-mcp)](https://www.npmjs.com/package/@us-all/android-mcp)\n[![tools](https://img.shields.io/badge/tools-76-blue)](#tools)\n[![@us-all standard](https://img.shields.io/badge/built%20to-%40us--all%20MCP%20standard-blue)](https://github.com/us-all/mcp-toolkit/blob/main/STANDARD.md)\n[![Glama MCP server](https://glama.ai/mcp/servers/us-all/android-mcp-server/badges/score.svg)](https://glama.ai/mcp/servers/us-all/android-mcp-server)\n\n## What it does that others don't\n\n- **Diagnostic depth** — logcat search/crash extraction, `dumpsys` (mem/gfx/cpu), getprop, processes, package internals, app intents, port forwards. Cross-platform competitors hide this surface.\n- **MCP Prompts** (5) — `crash-investigation`, `memory-leak-detection`, `ui-element-locator`, `app-startup-profile`, `permission-audit`. Workflow templates the model invokes directly.\n- **Aggregation tools** — `device-health` (battery + memory + cpu + network in one call), `analyze-app` (package info + memory + activities).\n- **2-tier security** — `ANDROID_MCP_ALLOW_WRITE` (gates installs/taps/pushes) and `ANDROID_MCP_ALLOW_SHELL` (gates arbitrary `adb shell`) are separate flags. Distinct trust levels.\n- **Pure ADB** — no Appium, no uiautomator2, no Python bridge. Just the official Android Debug Bridge wrapped over `child_process`.\n- **Token-efficient by design** — 56 schema-trim sweep, `ANDROID_TOOLS`/`ANDROID_DISABLE` 9 categories, `search-tools` meta.\n- **Apps SDK card** — `device-health` renders as a snapshot card on ChatGPT clients (battery, RAM, Wi-Fi + 4-section grid) via `_meta[\"openai/outputTemplate\"]`. Claude clients receive the same JSON content.\n- **stdio + Streamable HTTP** — defaults to stdio. Set `MCP_TRANSPORT=http` for ChatGPT Apps SDK or remote clients (Bearer auth via `MCP_HTTP_TOKEN`).\n\n## Try this — 5 prompts\n\nConnect the server to Claude Desktop or Claude Code, then paste any of these:\n\n1. **Crash investigation** — *\"My app `com.us-all.api` keeps crashing on this Pixel 6 emulator. Pull the last crash log, the offending stack frames, and any recent permission changes.\"*\n2. **Memory leak detection** — *\"Trace memory growth for `com.us-all.api` over the last 5 minutes. Show heap deltas, GC pressure, and the largest allocators.\"*\n3. **Battery drain attribution** — *\"What's draining battery on this device? Top 5 consumers, duration of each, and current battery health.\"*\n4. **Permission audit** — *\"Audit installed 3rd-party apps for dangerous permissions (location/camera/contacts/microphone). Flag any app that hasn't been used in the last 30 days but holds these.\"*\n5. **App startup profile** — *\"Profile the cold-start of `com.us-all.api` — measure activity launch time, identify the slowest fragment init, and suggest where to add tracing.\"*\n\n## When to use this vs mobile-next/mobile-mcp\n\n[`mobile-next/mobile-mcp`](https://github.com/mobile-next/mobile-mcp) (4.7K★) is the cross-platform action-oriented MCP. Different problem space:\n\n| | mobile-mcp | `@us-all/android-mcp` (this) |\n|--|---|---|\n| Platform | iOS + Android (cross-platform) | Android only (specialist) |\n| Posture | Action-oriented (\"drive the app via NL\") | Diagnostic (\"tell me why it broke\") |\n| UI surface | Accessibility-tree-first, action loops | UI hierarchy + screenshots + diagnostic dumps |\n| Diagnostic depth | minimal | logcat / dumpsys / getprop / processes / crashes |\n| Aggregations | — | `device-health`, `analyze-app` |\n| MCP Prompts | — | 5 (diagnostic-themed) |\n| Security gates | basic | 2-tier (write + shell separate) |\n| Distribution | broad (12+ IDE buttons) | npm + Docker |\n\n**Use both — they're complementary.** mobile-mcp drives the device through your QA flows; this MCP tells you why it broke when something does. Especially:\n- mobile-mcp finds the bug via UI exploration → this MCP captures the crash log + heap dump.\n- mobile-mcp can't tell you why startup is slow → this MCP gives you `dumpsys gfxinfo` + activity launch timing.\n- mobile-mcp can't reproduce a permission denial → this MCP shows the exact `dumpsys package` permission state and recent grants.\n\n## Install\n\n### Claude Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"android\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@us-all/android-mcp\"],\n      \"env\": {\n        \"ANDROID_MCP_ALLOW_WRITE\": \"true\"\n      }\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add android -s user \\\n  -e ANDROID_MCP_ALLOW_WRITE=true \\\n  -e ANDROID_MCP_ALLOW_SHELL=true \\\n  -- npx -y @us-all/android-mcp\n```\n\n### Docker\n\n```bash\ndocker run --rm \\\n  --device /dev/bus/usb \\\n  -e ANDROID_MCP_ALLOW_WRITE=true \\\n  ghcr.io/us-all/android-mcp-server:latest\n```\n\n### Build from source\n\n```bash\ngit clone https://github.com/us-all/android-mcp-server.git\ncd android-mcp-server && pnpm install && pnpm build\nnode dist/index.js\n```\n\n### Prerequisites\n\n- ADB installed and on `PATH` (or set `ADB_PATH`)\n- Android device or emulator with USB debugging enabled\n- For multi-device setups: `ANDROID_SERIAL=<serial>` to target a specific one\n\n## Configuration\n\n| Variable | Required | Default | Description |\n|---|---|---|---|\n| `ANDROID_HOME` | ❌ | auto-detect | Android SDK path |\n| `ADB_PATH` | ❌ | `adb` (PATH) | Path to ADB binary |\n| `ANDROID_SERIAL` | ❌ | auto (single device) | Target device serial |\n| `ANDROID_MCP_ALLOW_WRITE` | ❌ | `false` | Enable write operations (install, tap, push) |\n| `ANDROID_MCP_ALLOW_SHELL` | ❌ | `false` | Enable arbitrary `adb shell` execution |\n| `ANDROID_TOOLS` | ❌ | — | Comma-sep allowlist of categories. Biggest token saver. |\n| `ANDROID_DISABLE` | ❌ | — | Comma-sep denylist. Ignored when `ANDROID_TOOLS` is set. |\n| `MCP_TRANSPORT` | ❌ | `stdio` | `http` to enable Streamable HTTP transport |\n| `MCP_HTTP_TOKEN` | conditional | — | Bearer token. Required when `MCP_TRANSPORT=http` |\n| `MCP_HTTP_PORT` | ❌ | `3000` | HTTP listen port |\n| `MCP_HTTP_HOST` | ❌ | `127.0.0.1` | HTTP bind host (DNS rebinding protection auto-enabled for localhost) |\n| `MCP_HTTP_SKIP_AUTH` | ❌ | `false` | Skip Bearer auth — e.g. behind a reverse proxy that handles it |\n\n**Categories** (9): `device`, `apps`, `ui`, `logcat`, `emulator`, `files`, `system`, `debug`, `shell` (always-gated by `ANDROID_MCP_ALLOW_SHELL`), plus always-on `meta`.\n\nWhen `MCP_TRANSPORT=http`: `POST /mcp` (Bearer-auth JSON-RPC) + `GET /health` (public liveness).\n\n### Token efficiency\n\n| Scenario | Tools | Schema tokens | vs default |\n|----------|------:|--------------:|-----------:|\n| default (all categories) | 76 | 9,200 | — |\n| typical (`ANDROID_TOOLS=device,ui,apps,logcat`) | 37 | 5,000 | −46% |\n| narrow (`ANDROID_TOOLS=device,ui`) | 19 | **2,500** | **−73%** |\n\nPlus `search-tools` meta-tool (always enabled) for runtime tool discovery.\n\n### Read-only mode (default)\n\nBy default, only read operations are permitted. Write operations (`tap`, `install-app`, `push-file`, etc.) return an error unless `ANDROID_MCP_ALLOW_WRITE=true`. Shell command execution requires a **separate** `ANDROID_MCP_ALLOW_SHELL=true` for additional security — even with write enabled, raw shell stays blocked unless this is explicitly set.\n\n## MCP Prompts (5)\n\nWorkflow templates available via MCP `prompts/list`:\n\n- `crash-investigation` — pull crash logs + stack frames + recent permission changes for a target package.\n- `memory-leak-detection` — track heap delta over a window; cluster by allocator.\n- `ui-element-locator` — find a UI element by visual + accessibility hints; return tap coordinates.\n- `app-startup-profile` — cold-start profile: activity launch + fragment init + first frame.\n- `permission-audit` — flag dangerous permissions held by under-used 3rd-party apps.\n\n## MCP Resources\n\nURI-based read-only entities:\n\n- `android://devices` — connected devices\n- `android://device/{serial}` — device details (model/brand/version/display)\n- `android://app/{packageName}/activities` — activities exposed by a package (exported/launchable flags)\n- `android://device/{serial}/processes` — running processes\n\n## Tools (76)\n\n9 categories. Use `search-tools` to discover at runtime; full list collapsed below.\n\n| Category | Tools |\n|----------|------:|\n| System (battery / network / settings / display / orientation / port-fwd / wifi / mobile-data) | 19 |\n| Apps (install / launch / permissions / intents / data clear) | 14 |\n| UI (tap / swipe / screenshot / hierarchy / accessibility / annotated tap-by-index / screen recording) | 14 |\n| Emulator (AVD start/stop, snapshot mgmt) | 7 |\n| Device (list / info / properties / wireless connect) | 5 |\n| Debug (bugreport / mem / gfx / cpu / doctor) | 5 |\n| Logcat (capture / filter / clear / crash extract) | 4 |\n| Files (list / pull / push / delete) | 4 |\n| Shell (gated `execute-shell`) | 1 |\n| Aggregations (`device-health`, `analyze-app`) | 2 |\n| Meta (`search-tools`) | 1 |\n\n<details>\n<summary>Full tool list</summary>\n\n### Device (5)\n`list-devices`, `get-device-info`, `get-device-properties`, `connect-device`, `disconnect-device`\n\n### Apps (14)\n`list-packages`, `get-package-info`, `install-app`, `uninstall-app`, `launch-app`, `stop-app`, `clear-app-data`, `grant-permission`, `revoke-permission`, `open-url`, `send-broadcast`, `get-current-activity`, `is-app-installed`, `get-app-intents`\n\n### UI Automation (14)\n`take-screenshot`, `dump-ui-hierarchy`, `ui-snapshot-a11y`, `tap`, `long-press`, `swipe`, `input-text`, `press-key`, `drag-and-drop`, `start-screen-recording`, `pull-screen-recording`, `double-tap`, `take-annotated-screenshot`, `tap-element`\n\n### Logcat (4)\n`get-logcat`, `clear-logcat`, `search-logcat`, `get-crash-logs`\n\n### Emulator (7)\n`list-avds`, `start-emulator`, `stop-emulator`, `list-snapshots`, `load-snapshot`, `save-snapshot`, `delete-snapshot`\n\n### Files (4)\n`list-files`, `pull-file`, `push-file`, `delete-file`\n\n### System (19)\n`get-battery-info`, `get-network-info`, `change-setting`, `get-setting`, `set-display-size`, `set-display-density`, `keep-screen-on`, `port-forward`, `reverse-forward`, `list-forwards`, `remove-forward`, `toggle-wifi`, `toggle-mobile-data`, `open-notification`, `lock-device`, `unlock-device`, `get-orientation`, `set-orientation`, `list-settings`\n\n### Debug (5)\n`bugreport`, `get-mem-info`, `get-gfx-info`, `get-cpu-info`, `doctor`\n\n### Shell (1)\n`execute-shell` — gated by `ANDROID_MCP_ALLOW_SHELL`\n\n### Aggregations\n`device-health` — battery + memory + cpu + network in one call (~7KB response, 4 sub-systems with caveats).\n`analyze-app` — package info + memory + activities aggregation.\n\n### Meta\n`search-tools` — query other tools by keyword; always enabled.\n\n</details>\n\n## Architecture\n\n```\nClaude → MCP stdio → src/index.ts\n                      ├── adb.ts (execFile wrapper)\n                      ├── tools/utils.ts (wrapToolHandler, shellEscape, validation)\n                      └── tools/{device,apps,ui,logcat,emulator,files,system,debug,shell,aggregations}.ts\n                                  ↓\n                          ADB CLI (USB / TCP-IP / Emulator)\n                                  ↓\n                          Android Device\n```\n\nBuilt on [`@us-all/mcp-toolkit`](https://github.com/us-all/mcp-toolkit):\n- `extractFields` — token-efficient response projections (skipped for ADB flat-array endpoints)\n- `aggregate(fetchers, caveats)` — fan-out helper for `device-health` / `analyze-app`\n- `createWrapToolHandler` — `WriteBlockedError`/`ShellBlockedError` passthrough + structured ADB errors (`{code, stderr}`)\n- `wrapImageToolHandler` (Android-only) — base64 PNG sanitization\n- `search-tools` meta-tool\n\n## Security\n\n- **Read-only by default.** Writes blocked without `ANDROID_MCP_ALLOW_WRITE=true`.\n- **Shell gating separate.** `execute-shell` blocked without `ANDROID_MCP_ALLOW_SHELL=true` even with write enabled — distinct trust levels.\n- **Shell injection safe.** `shellEscape` for single-quote-based escape; input validation via zod regex whitelists for setting keys, package names, permissions, components, broadcast actions/extras.\n- **Path-traversal blocked.** Device paths require absolute + no `..` + no shell metachars.\n- **Error sanitization.** API keys, tokens, passwords redacted from all error outputs.\n\n## Tech stack\n\nNode.js 22+ • TypeScript strict ESM • pnpm 10 • `@modelcontextprotocol/sdk` 1.29+ • zod v4 • fast-xml-parser • vitest (fork pool isolation).\n\n## License\n\n[MIT](./LICENSE)\n","readmeFilename":"README.md"}