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
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.