Window Screenshooter MCP Server

Window Screenshooter MCP Server

An MCP server that enables AI agents to capture targeted screenshots of specific application windows on Windows and Linux, with smart window state restoration and focus management.

Category
访问服务器

README

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.

✨ 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

  1. Clone or download this repository:

    git clone <your-repo-url>
    cd window-screenshooter
    
  2. Install dependencies:

    pip install pywinctl pillow pywin32
    # Or use the project file
    pip install -e .
    
  3. Test the server:

    python test-mcp.py
    
  4. Run 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 match
  • outputPath (string, optional): Save location for screenshot
  • format (string, optional): Image format (PNG, JPEG) - default: PNG
  • quality (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 win32gui with BitBlt API for robust window capture
  • Can 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 file

Testing

Run the test script to verify functionality:

python test-mcp.py

Common Issues

  1. "Window not found" errors:

    • Check exact window title with list_windows
    • Try partial title matching
    • Ensure window is visible and not minimized
  2. Permission errors on Windows:

    • Run as administrator if needed
    • Check Windows security settings
  3. Import errors:

    • Ensure all dependencies are installed: pip install pywinctl pillow pywin32
    • Check 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.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选