pypi winsight-mcpstdioMITupdated 2mo ago
Windows Screen Capture MCP Server — give Claude Code eyes on your Windows desktop.
¿Qué puedes hacer con winsight?
WinSight MCP
mcp-name: io.github.TheoEwzZer/winsight
Windows Screen Capture MCP Server — give Claude Code eyes on your Windows desktop.
WinSight is an MCP server that lets Claude Code capture your screen, manage windows, and launch applications on Windows.
Features
- Screenshot the full screen, a specific region, or a specific window
- Window capture uses Win32
PrintWindowAPI — captures the real window content even when it's behind other windows - List and inspect open windows and monitors (title, position, size, state, resolution)
- Control windows — move, resize, minimize, maximize, restore, and focus
- Launch applications and wait for their windows
Requirements
- Windows 10/11
- Python 3.10+
Quick Start
Option 1: uvx (recommended)
No install needed — runs directly:
{
"mcpServers": {
"winsight": {
"command": "uvx",
"args": ["winsight-mcp"]
}
}
}
Add this to your project's .mcp.json or ~/.claude/claude_desktop_config.json.
Option 2: pip install
pip install winsight-mcp
Then configure:
{
"mcpServers": {
"winsight": {
"command": "winsight-mcp"
}
}
}
Option 3: From source
git clone https://github.com/TheoEwzZer/WinSight-MCP.git
cd WinSight-MCP
uv sync
{
"mcpServers": {
"winsight": {
"command": "uv",
"args": ["--directory", "/path/to/WinSight-MCP", "run", "winsight-mcp"]
}
}
}
Tools
Screenshot
| Tool | Description |
|---|---|
take_screenshot |
Capture the full screen or a specific monitor |
screenshot_window |
Capture a specific window by title (works even if behind other windows) |
screenshot_region |
Capture a rectangular region of the screen |
Window Management
| Tool | Description |
|---|---|
list_windows |
List all visible windows with optional title filter |
get_window_info |
Get detailed info about a window (position, size, state) |
focus_window |
Bring a window to the foreground |
resize_window |
Resize a window to specific dimensions |
move_window |
Move a window to a specific position |
minimize_window |
Minimize a window to the taskbar |
maximize_window |
Maximize a window to fill the screen |
restore_window |
Restore a minimized or maximized window to its normal state |
wait_for_window |
Wait for a window to appear (adaptive polling with timeout) |
System
| Tool | Description |
|---|---|
list_monitors |
List all monitors with resolution, position, and primary flag |
open_application |
Launch an application and optionally wait for its window |
Examples
Once the MCP server is connected, you can ask Claude Code things like:
- "Take a screenshot of my screen"
- "List all open windows"
- "Capture the Notepad window"
- "Open calculator and take a screenshot of it"
- "Focus the Chrome window"
- "Resize the app window to 800x600 and take a screenshot"
- "Move the window to the top-left corner"
- "What monitors do I have?"
Testing
The project has 112 tests covering all modules. Tests use mocks for Win32 APIs so they run on any platform.
Running tests
uv run pytest
Test structure
tests/
conftest.py # Shared fixtures and Win32 stubs
test_types.py # TypedDict definitions validation
test_screenshot.py # Screen/region/window capture (mss, Win32 DC)
test_window_manager.py # Window listing, find, focus, resize, move, min/max/restore
test_process_manager.py # Application launch and window polling
test_server.py # MCP tool registration and integration
Adding tests
- Put new tests in the matching
test_<module>.pyfile - Use the shared fixtures from
conftest.py(sample_window_info,mcp_server,fake_png_bytes) - Mock Win32 APIs with
@patch("winsight_mcp.<module>.win32gui")— never call real Win32 functions in tests - For server integration tests, use the
_callhelper to invoke tools and_textto extract string results
License
MIT
Instalación
Añade winsight a tu cliente. Elige el que uses.
claude mcp add winsight-mcp -- uvx winsight-mcpcodex mcp add winsight-mcp -- uvx winsight-mcpamp mcp add winsight-mcp -- uvx winsight-mcp{
"mcpServers": {
"winsight-mcp": {
"command": "uvx",
"args": [
"winsight-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"winsight-mcp": {
"command": "uvx",
"args": [
"winsight-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"winsight-mcp","command":"uvx","args":["winsight-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"winsight-mcp": {
"command": "uvx",
"args": [
"winsight-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"winsight-mcp": {
"command": "uvx",
"args": [
"winsight-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"winsight-mcp": {
"command": "uvx",
"args": [
"winsight-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"winsight-mcp": {
"type": "local",
"command": "uvx",
"args": [
"winsight-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"winsight-mcp": {
"command": {
"path": "uvx",
"args": [
"winsight-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
uvx winsight-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Puntuación
39 / 100
Incompleta
- Documentación21/25
- Mantenimiento16/25
- Confianza13/20
- Capacidad0/15
- Instalación12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 69 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Historial de versiones
| Versiones | Publicada |
|---|---|
| 0.1.1Última | 12 feb 2026 |