windows-screenshot
🚀 Production-ready Windows Screenshot MCP Server with real-time WebSocket streaming, Chrome DevTools integration, and comprehensive APIs. Built with Go for high-performance native Windows screenshot automation.
claude mcp add --transport stdio amafjarkasi-windows-screenshot-mcp-server docker run -i windows-screenshot-mcp-server:latest \ --env SCREENSHOT_HOST="localhost" \ --env SCREENSHOT_PORT="8080"
How to use
This Windows Screenshot MCP Server provides both a REST API and MCP (JSON-RPC 2.0) interface to capture screenshots from Windows applications, with real-time WebSocket streaming for live viewing. It supports advanced window targeting by title, class name, PID, or window handle, and can capture hidden or minimized windows as well as entire desktops. In addition to standard image formats (PNG, JPEG, BMP, WebP) with configurable quality, you can stream live frames over WebSocket to clients, configure FPS and streaming quality, and manage multiple concurrent sessions. The MCP layer exposes methods such as screenshot.capture, window.list, chrome.instances, chrome.tabs, chrome.tabCapture, and stream.status, enabling automation agents to request captures, enumerate windows, or drive Chrome tab captures via JSON-RPC requests. This makes it suitable for automation, QA, AI agent workflows, and integration into larger testing pipelines.
How to install
Prerequisites:
- Docker installed and running (recommended for this MCP server example)
- Optional: Docker Compose if you prefer orchestration
Installation steps:
- Pull or build the Docker image for the Windows Screenshot MCP Server:
- Pull: docker pull windows-screenshot-mcp-server:latest
- Build (if you have a Dockerfile): docker build -t windows-screenshot-mcp-server:latest .
- Run the server container: docker run -d --name windows-screenshot-mcp-server -p 8080:8080 -p 8081:8081 windows-screenshot-mcp-server:latest
- Verify the server is up: curl http://localhost:8080/health
Alternatively, if you prefer a native Go run (not dockerized): ensure Go 1.21+ is installed and build from source as described in the repository, then run the server binary directly.
Additional notes
Tips and common issues:
- Ensure Chrome is started with remote debugging enabled if you plan to use Chrome tab capture (Chrome DevTools port 9222).
- For streaming, ensure that firewall or security groups allow WebSocket connections to your chosen host/port.
- If window targeting by title/class/pid/handle fails, validate the identifiers in the system's window manager and consider running the server with elevated privileges.
- Use environment variables to configure host/port and default streaming quality; these can be overridden by command-line flags as described in the README.
- When running in Docker, map ports 8080 (REST/MCP) and 8081 (optional streaming/WebSocket if used) as needed and provide any required runtime permissions for Windows window capture.
Related MCP Servers
atmosphere
Stream Real Time and LLM response data over WebSocket, SSE, and the MCP protocol
evernote
Evernote MCP server - allows LLMs that support MCP (like Claude Desktop) to query your notes in Evernote
opnsense
Modular MCP server for OPNsense firewall management - 88 tools providing access to 2000+ methods through AI assistants
mcp-screenshot
An MCP server that provides AI assistants with screenshot capabilities — both web page capture via Puppeteer and cross-platform system screenshots using native OS tools.
chromedp
MCP server for browser automation using chromedp
django-admin
Expose Django admin models to MCP (Model Context Protocol) clients. Add a mixin to your ModelAdmin classes and let AI assistants like Claude perform CRUD operations, execute admin actions, and explore relationships—all respecting Django's permission system.