Window Screenshooter MCP Server
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., "@Window Screenshooter MCP ServerCapture the Calculator window"
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 Screenshooter MCP Server ๐ผ๏ธ
A cross-platform Model Context Protocol (MCP) server that enables AI agents to capture screenshots of specific application windows! (โงโกโฆ)
Overview
Window Screenshooter is an MCP server built in Python that provides AI agents with the capability to take targeted screenshots of specific application windows across Windows and Linux platforms. Unlike traditional screen capture solutions that only capture the entire screen, this server allows precise window-based capture for AI verification workflows, automated testing, and application monitoring.
Related MCP server: windows-computer-use-mcp
โจ New Feature: Smart Window State Restoration & Focus Management!
The latest version now includes automatic window state restoration and intelligent focus handling! ๐
When capturing windows, the server will:
๐ธ Save the original window state (minimized, maximized, position, etc.)
๐ Temporarily modify the window if needed for capture
โจ Restore the window to its exact original state after capture
๐ฏ Auto-detect your editor (Cursor, Trae, Windsurf, VS Code, etc.) and restore focus to it
๐ Minimize captured windows if the calling application can't be found
๐ซ Work seamlessly across all supported platforms
This means your workflow stays smooth - focus returns to your editor and windows don't get left in unexpected states!
Key Features
๐ผ๏ธ Window-Specific Capture: Target individual application windows by name or title
๐ Cross-Platform Support: Works on Windows and Linux with platform-optimized backends
๐ง MCP Integration: Seamless integration with AI agents through Model Context Protocol
๐ก STDIO Transport: Uses standard input/output for reliable communication
โก Performance Optimized: Platform-specific implementations for maximum efficiency
Installation & Setup
Prerequisites
Python 3.12+
Windows or Linux
Quick Start
Clone or download this repository:
git clone <your-repo-url> cd window-screenshooterInstall dependencies:
pip install pywinctl pillow pywin32 # Or use the project file pip install -e .Test the server:
python test-mcp.pyRun the MCP server:
# STDIO mode (for MCP clients) python server.py
MCP Tools
The server exposes three main MCP tools:
1. capture_window
Captures a screenshot of a specific window by title or identifier.
Parameters:
windowTitle(string): Exact or partial window title to matchoutputPath(string, optional): Save location for screenshotformat(string, optional): Image format (PNG, JPEG) - default: PNGquality(int, optional): JPEG quality (1-100) - default: 85
Returns: Base64-encoded image data or file path confirmation
Example:
# Save to file
await capture_window("Notepad", "screenshot.png", "PNG")
# Get base64 data
await capture_window("Calculator")2. list_windows
Enumerates all available windows on the system.
Returns: Array of window objects with ID, title, position, and size information
Example:
await list_windows()3. get_window_info
Retrieves detailed information about a specific window.
Parameters:
windowIdentifier(string): Window title or ID
Returns: Window metadata including position, size, visibility state, and process information
Example:
await get_window_info("Visual Studio Code")Platform-Specific Features
Windows Implementation
Utilizes
win32guiwith BitBlt API for robust window captureCan capture minimized, hidden, or overlapped windows
High-performance Graphics Capture API integration
Provides Windows handle (HWND) and process information
Linux Implementation
X11-based window capture using native protocols
Direct window buffer access for efficient capture
Support for common Linux desktop environments
MCP Client Configuration
For Cursor IDE
Add to your MCP configuration file:
{
"mcpServers": {
"window-screenshooter": {
"command": "python",
"args": ["server.py"],
"cwd": "/path/to/window-screenshooter",
"transport": "stdio"
}
}
}For Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"window-screenshooter": {
"command": "python",
"args": ["server.py"],
"cwd": "/path/to/window-screenshooter"
}
}
}๐ก IDE Configuration Tip
๐ Note: For optimal workflow integration, consider adding this rule to your IDE configuration:
"Before capturing windows or screens with the MCP screenshooter, ALWAYS list windows first to get correct names. If working on a Web project, the default browser is Brave. If working on a Unity project, the user wants the Unity game scene window. After you make a screenshot or capture a screen, ALWAYS use vision."
This helps ensure accurate window targeting and proper follow-up analysis of captured content! โจ
Usage Examples
AI Development Workflows
Code Verification: AI takes Unity editor screenshots to verify game object placement
UI Testing: Capture application states during automated testing sequences
Documentation: Generate visual documentation of application interfaces
Debugging: Visual confirmation of application behavior changes
Automation Scenarios
Quality Assurance: Screenshot comparison for regression testing
Process Monitoring: Capture application states for workflow verification
Training Data: Generate labeled screenshots for computer vision training
Error Handling
The server implements robust error handling for:
Window not found scenarios
Permission-denied capture attempts
Cross-platform compatibility issues
Invalid parameter validation
Graceful degradation when platform-specific features are unavailable
Development & Contributing
Project Structure
window-screenshooter/
โโโ server.py # Main MCP server implementation
โโโ windows_capture.py # Windows-specific capture logic
โโโ linux_capture.py # Linux-specific capture logic
โโโ test-mcp.py # Test script for functionality
โโโ mcp-config-example.json # Example MCP configuration
โโโ pyproject.toml # Project dependencies
โโโ README.md # This fileTesting
Run the test script to verify functionality:
python test-mcp.pyCommon Issues
"Window not found" errors:
Check exact window title with
list_windowsTry partial title matching
Ensure window is visible and not minimized
Permission errors on Windows:
Run as administrator if needed
Check Windows security settings
Import errors:
Ensure all dependencies are installed:
pip install pywinctl pillow pywin32Check Python version (requires 3.12+)
Platform Compatibility
Windows: Full support with native Win32 API
Linux: Basic support with X11 integration
License
This project is licensed under the MIT License - see the LICENSE file for details.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Tiartyos/mcp-window-screenshooter'
If you have feedback or need assistance with the MCP directory API, please join our Discord server