Window Cap
FreeNot checkedA cross-platform MCP server for capturing screenshots of monitors and windows, as well as listing and closing windows.
About
A cross-platform MCP server for capturing screenshots of monitors and windows, as well as listing and closing windows.
README
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
Installation
As MCP Server
# Build from source
make build
make run
As Python Package
pip install window-cap-mcp
As 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 8080
Python 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.json - macOS/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 artifacts
License
Installing Window Cap
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/Sun-ZhenXing/window-cap-mcpFAQ
Is Window Cap MCP free?
Yes, Window Cap MCP is free — one-click install via Unyly at no cost.
Does Window Cap need an API key?
No, Window Cap runs without API keys or environment variables.
Is Window Cap hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Window Cap in Claude Desktop, Claude Code or Cursor?
Open Window Cap on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Window Cap with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
