chrome-mcp · android-mcp

MCP servers that drive your real Chrome browser and Android devices from Claude Code. Semantic locators, live debugging, flow recording — one config block, no install script.

chrome-mcp v0.2.0

Drives Chrome on macOS/Linux/Windows via CDP. Auto-launches Chrome on first tool call.

Paste into ~/.claude.json and restart Claude Code:

{
  "mcpServers": {
    "chrome": {
      "command": "node",
      "args": [
        "-e",
        "(async()=>{const o=await import(\"node:fs\"),{homedir:s}=await import(\"node:os\"),{join:e}=await import(\"node:path\"),{pathToFileURL:a}=await import(\"node:url\"),i=process.env.CHROME_MCP_ENDPOINT||\"https://chrome-mcp.actuallyroy.com\",c=process.env.CHROME_MCP_CACHE_DIR||e(s(),\".chrome-mcp\"),r=e(c,\"loader.mjs\");if(!o.existsSync(r)||process.env.CHROME_MCP_REFRESH_LOADER){o.mkdirSync(c,{recursive:!0});const t=await fetch(i+\"/loader.mjs\");if(!t.ok)throw new Error(\"loader download failed: \"+t.status);o.writeFileSync(r,Buffer.from(await t.arrayBuffer()))}await import(a(r).href)})().catch(o=>{console.error(\"[chrome-mcp]\",o.message||o),process.exit(1)});"
      ]
    }
  }
}

sha256: b8c2b5b6bd872a1e4f1b85e768309992112f82c54c48a2a5a29dcf03dd074b26
bundle · manifest · loader.mjs

android-mcp v0.1.1 · UIAutomator2 9.11.2

Drives Android devices and emulators via UIAutomator2 (same chrome-mcp pattern, native view hierarchy instead of DOM). Requires adb and a device/emulator ready.

Paste into ~/.claude.json and restart Claude Code:

{
  "mcpServers": {
    "android": {
      "command": "node",
      "args": [
        "-e",
        "(async()=>{const o=await import(\"node:fs\"),{homedir:s}=await import(\"node:os\"),{join:a}=await import(\"node:path\"),{pathToFileURL:i}=await import(\"node:url\"),c=process.env.ANDROID_MCP_ENDPOINT||\"https://chrome-mcp.actuallyroy.com\",e=process.env.ANDROID_MCP_CACHE_DIR||a(s(),\".android-mcp\"),r=a(e,\"loader.mjs\");if(!o.existsSync(r)||process.env.ANDROID_MCP_REFRESH_LOADER){o.mkdirSync(e,{recursive:!0});const t=await fetch(c+\"/android/loader.mjs\");if(!t.ok)throw new Error(\"android loader download failed: \"+t.status);o.writeFileSync(r,Buffer.from(await t.arrayBuffer()))}await import(i(r).href)})().catch(o=>{console.error(\"[android-mcp]\",o.message||o),process.exit(1)});"
      ]
    }
  }
}

sha256: 06199440fac0fc59f6e399e63e2c0bc0c824be8105b68d07b102b6f2e8d6505c
bundle · manifest · loader.mjs · u2 APK

How updates work

Each bootstrap downloads its loader.mjs once into ~/.chrome-mcp/ or ~/.android-mcp/. The loader fetches the latest bundle on every launch, verifies its SHA-256, and runs it. If the endpoint is unreachable, it falls back to the cached bundle.

What's in chrome-mcp

What's in android-mcp