window-cap-mcp
Click on "Deploy 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., "@window-cap-mcptake a screenshot of my primary monitor"
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.
Window Capture MCP Server
A cross-platform window screenshot MCP server and library implemented in Rust, based on rmcp and xcap.
Features
Get monitor count and details
Capture screenshots of monitors and windows
List and close windows
Cross-platform support (Windows, macOS, Linux)
Supports multiple transport modes (STDIO, SSE, HTTP)
Available as Rust library and Python package
Related MCP server: Computer Use MCP
Installation
As MCP Server
# Build from source
make build
make runAs Python Package
pip install window-cap-mcpAs Rust Library
[dependencies]
window_cap_mcp_lib = "0.1"Usage
MCP Server
# STDIO mode (for Claude Desktop)
window-cap-mcp
# SSE mode
window-cap-mcp --sse --port 3000
# HTTP mode
window-cap-mcp --http --port 8080Python Library
import window_cap_mcp as wc
# Capture monitor screenshot
screenshot = wc.capture_monitor()
# Run as MCP server
wc.run_server()Rust Library
use window_cap_mcp_lib::{Monitor, Window};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let monitors = Monitor::all()?;
monitors[0].capture_image()?.save("screenshot.png")?;
Ok(())
}Claude Desktop Configuration
Edit the configuration file:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS/Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"window-cap": {
"command": "window-cap-mcp"
}
}
}MCP Tools
get_monitor_count
Get monitor information.
{
"count": 2,
"monitors": [
{
"index": 0,
"name": "Display 1",
"width": 1920,
"height": 1080,
"is_primary": true
}
]
}get_screen_screenshot
Capture monitor screenshot (Base64-encoded PNG).
Parameters: monitor_index (optional)
get_window_list
Get all windows information.
{
"count": 5,
"windows": [
{
"id": 12345,
"title": "VS Code",
"app_name": "Code.exe",
"width": 1280,
"height": 720
}
]
}get_window_screenshot
Capture window screenshot (Base64-encoded PNG).
Parameters: window_id (required)
close_window
Close a window by ID.
Parameters: window_id (required)
Development
make help # View commands
make build # Build project
make test # Run tests
make clean # Clean artifactsLicense
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server to assist with JxBrowser development.
MCP server for doc2mcp documentation, generated by doc2mcp.
MCP server for developers documentation, generated by doc2mcp.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA cross-platform MCP server that allows AI agents to capture screenshots of specific windows, displays, or regions for native application testing. It provides tools to list active windows and monitors, enabling precise visual verification and interaction during automated workflows.16 npm1MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for computer automation that provides tools for screenshots, mouse actions, keyboard input, and drag-and-drop functionality. It supports cross-platform desktop interaction for both Linux (X11) and Windows environments.311 npm2MIT
- AlicenseAqualityDmaintenanceAn MCP server that enables Claude Code and other MCP clients to take screenshots of the full screen or specific windows, with support for repeated captures over intervals.131 npm8MIT
- AlicenseNot gradedqualityDmaintenanceA Windows MCP server that enables AI agents to capture screenshots of open windows or the full desktop via stdio or HTTP.MIT