Skip to main content

device-manager-mcp

MCP server for fast Android device interaction with scrcpy acceleration.

Features

  • Fast operations via scrcpy (~50ms latency)
  • Automatic fallback to adb (~500ms) when scrcpy unavailable
  • Screenshots, taps, swipes, typing - all device interactions
  • Works with Claude Code and any MCP-compatible client

Requirements

  • macOS 12+, Python 3.11+, adb, scrcpy 3.x
  • Android device connected via USB

See docs/requirements.md for detailed setup instructions.

Usage with Claude Code

Add to your .mcp.json:

{
  "mcpServers": {
    "device-manager": {
      "command": "uvx",
      "args": ["device-manager-mcp"]
    }
  }
}

Or add globally:

claude mcp add device-manager -s user -- uvx device-manager-mcp

Available Tools

Tool Description Latency
device_screenshot Capture screen as PNG ~40ms (scrcpy) / ~500ms (adb)
device_tap Tap at coordinates ~50ms (scrcpy) / ~200ms (adb)
device_swipe Swipe gesture ~300ms
device_type Type text ~100ms
device_press_key Press BACK, HOME, ENTER, etc. ~50ms
device_list List connected devices ~100ms
device_screen_size Get screen dimensions ~10ms
device_backend_status Check active backend instant

How It Works

The server automatically selects the best backend:

  1. scrcpy backend (if available): Uses MYScrcpy library to communicate directly with scrcpy server on device. Provides ~50ms latency for screenshots and input.

  2. adb backend (fallback): Uses standard adb commands. Works everywhere but slower (~500ms for screenshots).

Example

# Claude Code will automatically use these tools:

# Take a screenshot
device_screenshot()

# Tap at coordinates
device_tap(x=540, y=1200)

# Swipe down
device_swipe(start_x=540, start_y=800, end_x=540, end_y=1600)

# Type text
device_type(text="Hello World")

# Press back button
device_press_key(key="BACK")

Configuration

Environment Variables

  • DEVICE_MANAGER_LOG_LEVEL: Set logging level (DEBUG, INFO, WARNING, ERROR)

Multiple Devices

Specify device ID for multi-device setups:

device_tap(x=100, y=200, device="RFCW318P7NV")

Development

git clone https://github.com/vladkarpman/device-manager-mcp
cd device-manager-mcp
pip install -e ".[dev]"
pytest

License

MIT License - see LICENSE for details.

Related Projects

Metadata

Release files for device-manager-mcp 1.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for device-manager-mcp 1.0.7
File Size Uploaded
device_manager_mcp-1.0.7.tar.gz 11.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for device-manager-mcp 1.0.7
File Interpreter ABI Platform
device_manager_mcp-1.0.7-py3-none-any.whl Python 3 none any Details

Total release size: 24.8 kB

Release files / device_manager_mcp-1.0.7.tar.gz

Download URL device_manager_mcp-1.0.7.tar.gz
Size 11.9 kB
Tags Source
SHA-256 checksum
How to use checksums
912adcb971858b4dcb017e0df9a15319388bf0ecd4e50b34bceaf6564cae4807
BLAKE2b-256 checksum
How to use checksums
aab88e1ff3cc99a3c265fa431c1f8d678f23f96b9efef3894b98f2298e51e43b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 14, 2026.

Transparency log

Release files / device_manager_mcp-1.0.7-py3-none-any.whl

Download URL device_manager_mcp-1.0.7-py3-none-any.whl
Size 12.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fe6b22b6df11562d446cb64c391a67480ec10ef5b961ad902e3d2f12ee88205d
BLAKE2b-256 checksum
How to use checksums
00db6b347fed37ca5c68c49f311f2259fbad2a71af1fa0c215a3883ff75b67c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.7 This release

2 release files

1.0.6

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page