android-mcp-adb

v2.0.0 suspicious
6.0
Medium Risk

Full Android control from any AI agent via MCP — 7 tools, 90fps viewer, WiFi ADB

🤖 AI Analysis

Final verdict: SUSPICIOUS

The package exhibits several red flags including potential obfuscation techniques and high shell risk, suggesting possible malicious intent. However, there is no concrete evidence of harmful behavior.

  • Base64 decoding used multiple times, indicating possible obfuscation attempts.
  • High shell risk due to subprocess execution that could be exploited.
Per-check LLM notes
  • Network: The use of aiohttp.ClientSession suggests network interaction, which could be legitimate for ADB commands but should be reviewed for unexpected external communications.
  • Shell: Subprocess execution is detected and could be used to run ADB commands. This needs further investigation to ensure it's not being exploited for unauthorized actions.
  • Obfuscation: Base64 decoding is used multiple times, which could indicate an attempt to hide code logic or data.
  • Credentials: No direct evidence of credential harvesting is observed.
  • Metadata: The package is suspicious due to its recent creation, low maintainer activity, and rapid commit history.

📦 Package Quality Overall: Medium (5.0/10)

✦ High Test Suite 9.0

Test suite present — 2 test file(s) found

  • Test runner config found: pyproject.toml
  • 2 test file(s) detected (e.g. test_integration.py)
◈ Medium Documentation 5.0

Some documentation present

  • Detailed PyPI description (10246 chars)
○ Low Contributing Guide 4.0

No contributing guide or governance files found

  • Development Status classifier >= Beta
◈ Medium Type Annotations 5.0

Partial type annotation coverage

  • 124 type-annotated function signatures detected in source
○ Low Multiple Contributors 2.0

Single-author or unverifiable project

  • 1 unique contributor(s) across 7 commits in Steph-ux/android-mcp
  • Single author with few commits — possibly a personal or throwaway project

🔬 Heuristic Checks

⚠ Outbound Network Calls score 1.5

Found 1 network call pattern(s)

  • : self._session = aiohttp.ClientSession() return self._session async def _cmd(self, act
⚠ Code Obfuscation score 10.0

Found 6 obfuscation pattern(s)

  • en base64.""" data = base64.b64decode(data_b64) import tempfile, os with tempfile.
  • allé") needle_bytes = base64.b64decode(template_b64) haystack_bytes = await self.screenshot
  • hot échouée")) return base64.b64decode(r["data"]) async def screenshot_region(self, x: int, y:
  • ion échouée")) return base64.b64decode(r["data"]) async def get_live_frame(self) -> dict:
  • .Path(local_path).write_bytes(base64.b64decode(r["data"])) return {"success": r.get("success", Fals
  • import base64 raw = base64.b64decode(result[0].data) assert raw[:4] == b"\x89PNG" @p
⚠ Shell / Subprocess Execution score 10.0

Found 6 shell execution pattern(s)

  • st(args) try: r = subprocess.run( cmd, capture_output=True, text=True, timeout=ti
  • err).""" try: r = subprocess.run( ["adb", *args], capture_output=True
  • device_id] proc = subprocess.Popen(cmd) return _ok(pid=proc.pid, fps=fps, bitrate=b
  • crcpy via winget...") r = subprocess.run( ["winget", "install", _WINGET_SCRCPY_ID, "
  • label}") procs.append(subprocess.Popen(cmd)) print(f"\n {len(procs)} viewer(s) ouverts. Ferme
  • if args.check: r = subprocess.run([scrcpy_path, "--version"], capture_output=True, text=True)
✓ Credential Harvesting

No credential harvesting patterns detected

✓ Typosquatting

No typosquatting candidates detected

✓ Registered Email Domain

No author email provided

✓ Suspicious Page Links

All external links appear legitimate

⚠ Git Repository History score 5.0

Git history flags: Repository has zero stars and zero forks

  • Repository has zero stars and zero forks
  • All 7 commits happened within 24 hours
⚠ Maintainer History score 6.0

3 maintainer concern(s) found

  • Only one version has ever been released — brand new package
  • Author name is missing or very short
  • Author "" appears to have only 1 package on PyPI (new or inactive account)
✓ Known CVE Vulnerabilities

No known vulnerabilities found in OSV database.

💡 AI App Starter Prompt

Use this prompt to build a project with android-mcp-adb
Create a remote Android device management tool called 'RemoteControlMate' using the Python package 'android-mcp-adb'. This tool should allow users to remotely control their Android devices over Wi-Fi, view the screen at 90 frames per second, and execute various commands on the device. Here’s a detailed breakdown of the project requirements:

1. **Setup**: Install 'android-mcp-adb' and ensure your Android device is connected via Wi-Fi ADB.
2. **Screen Viewer**: Implement a real-time screen viewer that updates at 90fps. Use the package's capabilities to stream the device's screen to your computer.
3. **Command Executor**: Enable users to send touch events, swipe gestures, and key presses to the Android device. Integrate these functionalities through 'android-mcp-adb'.
4. **Device Information**: Retrieve and display basic information about the connected device such as model, OS version, and battery status.
5. **File Transfer**: Allow for simple file transfer between the Android device and the computer. Utilize the package to manage files on the device.
6. **User Interface**: Develop a user-friendly interface using a library like Tkinter or PyQt, where users can interact with the device's controls and see the live screen feed.
7. **Security Measures**: Ensure that all connections are secure and that the user has the necessary permissions to control the device.
8. **Documentation**: Provide clear documentation on how to set up and use the tool, including installation instructions for 'android-mcp-adb' and any dependencies.

This project aims to demonstrate the versatility and power of 'android-mcp-adb' while providing a practical solution for managing Android devices remotely.

💬 Discussion Feed

Leave a comment

No discussion yet. Be the first to share your thoughts!