Provides high-speed screen capture and frame buffer access for Android devices via scrcpy and ADB, enabling low-latency screenshots (~50ms), historical frame retrieval, and device management capabilities.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@screen-buffer-mcpcapture the current Android screen"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
screen-buffer-mcp
MCP server for fast Android screenshots via scrcpy frame buffer (~50ms latency).
Features
Fast screenshots via scrcpy frame buffer (~50ms vs ~500ms with adb)
10-frame circular buffer for instant access to recent frames
Historical frame access via
device_get_framefor debugging/recordingAutomatic fallback to adb when scrcpy unavailable
Works with Claude Code and any MCP-compatible client
Requirements
macOS 12+ or Linux
Python 3.11+
adb (Android Debug Bridge)
scrcpy 3.x installed
Android device connected via USB
Usage with Claude Code
Add to your .mcp.json:
{
"mcpServers": {
"screen-buffer": {
"command": "uvx",
"args": ["screen-buffer-mcp"]
}
}
}Or add globally:
claude mcp add screen-buffer -s user -- uvx screen-buffer-mcpAvailable Tools
Tool | Description | Latency |
| Capture latest frame from buffer | ~50ms (scrcpy) / ~500ms (adb) |
| Get historical frame at offset | ~10ms |
| List connected devices | ~100ms |
| Get screen dimensions | ~10ms |
| Check active backend | instant |
How It Works
The server maintains a 10-frame circular buffer from the scrcpy video stream:
scrcpy backend (preferred): Connects to scrcpy server on device in video-only mode. Continuously captures frames at ~60fps into a circular buffer. Screenshots return the latest buffered frame instantly.
adb backend (fallback): Uses
adb exec-out screencap -pfor screenshots. Works everywhere but slower (~500ms per screenshot).
Frame Buffer
The frame buffer stores the last 10 frames (~160ms at 60fps), enabling:
Instant screenshots: Latest frame always ready, no capture delay
Historical access: Get frames from before an action for debugging
Recording support: Extract frames at specific offsets
# Get latest screenshot
device_screenshot()
# Get frame from 100ms ago (offset 6 at 60fps)
device_get_frame(offset=6)Configuration
Environment Variables
SCREEN_BUFFER_LOG_LEVEL: Set logging level (DEBUG, INFO, WARNING, ERROR)
Multiple Devices
Specify device ID for multi-device setups:
device_screenshot(device="RFCW318P7NV")Use with mobile-mcp
For full device control (taps, swipes, typing), combine with mobile-mcp:
{
"mcpServers": {
"screen-buffer": {
"command": "uvx",
"args": ["screen-buffer-mcp"]
},
"mobile-mcp": {
"command": "npx",
"args": ["-y", "@mobilenext/mobile-mcp@latest"]
}
}
}screen-buffer-mcp: Fast screenshots (~50ms)
mobile-mcp: Device input (tap, swipe, type)
Development
git clone https://github.com/vladkarpman/screen-buffer-mcp
cd screen-buffer-mcp
pip install -e ".[dev]"
pytestLicense
MIT License - see LICENSE for details.
Related Projects
mobile-mcp - Official Anthropic mobile MCP
MYScrcpy - Python scrcpy client
Claude Code - AI coding assistant
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.