Provides tools for capturing screenshots of macOS windows and listing window information organized by Spaces (virtual desktops), enabling interaction with the macOS window system.
Interfaces with the yabai window manager to retrieve detailed window and Space information on macOS, including window positions, sizes, titles, and Space organization.
capture-win-mcp
MCP (Model Context Protocol) server for capturing macOS windows and tracking Spaces. This server provides tools for AI assistants to interact with macOS windows through yabai and the built-in screencapture utility.
📖 | 📦 | 👨💻
Features
List Windows: Get detailed information about all windows organized by macOS Space (virtual desktop)
Capture Window: Take screenshots of specific windows by their ID
Prerequisites
macOS (tested on macOS 15+)
Python 3.12 or higher
yabai window manager
Installing yabai
Installation
Method 1: Install from GitHub (Recommended)
Using uv:
Using pip:
Method 2: Install from PyPI
Once published to PyPI:
Method 3: Install from Source (For Development)
Usage
As an MCP Server
Claude Desktop Configuration
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
If installed via pip/uv (recommended):
If running from source directory:
If using a specific Python environment:
After adding the configuration, restart Claude Desktop for the changes to take effect.
Available Tools
list_windows
Lists all windows organized by macOS Space.
Parameters:
format(optional): Output format -"json"(default) or"summary"
Example:
Returns: Window and Space information including:
Space index, label, visibility status
Window ID, title, app name, position, size
Window counts per Space
capture_window
Captures a screenshot of a specific window.
Parameters:
window_id(required): The window ID to capture (get this fromlist_windows)include_shadow(optional): Include window shadow in capture (default:true)
Example:
Returns: Base64-encoded PNG image of the window
Standalone Usage
You can also use the original window tracking functionality:
Development
Architecture
capture_win_mcp/tracker.py: EnhancedSpaceTracker class that interfaces with yabaicapture_win_mcp/server.py: MCP server implementation with toolsmain.py: Standalone CLI tool for window tracking
Troubleshooting
"yabai not found" error
Make sure yabai is installed and running:
Window capture fails
Ensure the window ID is valid (use
list_windowsfirst)Check that macOS Screen Recording permissions are granted
Some system windows may not be capturable
License
MIT