Naive Windows capture clips shadows and borders and comes out fuzzy on scaled displays; this handles both, waits for the window to render after focusing it, and checks bounds when the window sits near a screen edge. Process-name matching is the practical touch — asking for "notepad" rather than an exact title is usually what you meant. Before adopting it, note the author's own pointer to the successor repository.
An MCP server that lets an AI client inside WSL capture the Windows desktop. It drives PowerShell and .NET Windows Forms behind the scenes, handles DPI scaling, and converts paths between WSL and Windows formats so either style works.
- One capture call covering four targets: all monitors by default, a named monitor, a window matched by title, or a window matched by process name — `take_screenshot`
- Save-location control through a `folder` parameter that accepts WSL paths, Windows paths or relative paths, creating the directory if it does not exist
- DPI awareness plus padding around the window, so captures on high-DPI displays are not clipped at the shadows and borders
- Helpful failure: when a window is not found, the available windows are listed rather than leaving you guessing
Windows with WSL, Node.js installed inside WSL, and an MCP client that supports it. Clone the repository, run `npm install`, and point the client at `index.js` with `node`. Note that the repository is now read-only: the author has replaced it with the WSLSnapIt-MCP repository and recommends that instead. The package is `screenshot-mcp-server` (1.2.0 in package.json).
