mcp-windows-screenshot
A MCP server for capturing screenshots on Windows
Documentation
MCP Windows Screenshots
A Model Context Protocol (MCP) server that provides screenshot capture functionality on Windows systems.
Features
- Full-screen screenshots: Capture entire monitors or all monitors
- Region screenshots: Interactive area selection for targeted captures
- Screenshot management: List and manage captured screenshots
- Image embedding: Optional base64 image embedding in MCP responses
- Cross-monitor support: Handle multi-monitor setups
Prerequisites
- Windows OS (currently Windows-only)
- Node.js >= 18.0.0
- Helper executable: A Windows executable (RegionSnip.exe) that handles the actual screenshot capture
Installation
1. Clone the repository
2. Install dependencies:
npm install3. Build the project:
npm run build4. Ensure the helper executable exists at `bin/RegionSnip.exe`
Usage
As an MCP Server
This server communicates via stdio and can be used with any MCP-compatible client (like Claude Desktop).
Start the server:
npm startOr with the MCP inspector for debugging:
npm run inspectorUsage with npx
You can run this MCP server directly using npx without installing it globally:
Cursor
Add to your `.cursor/mcp.json`:
{
"mcpServers": {
"windows-screenshots": {
"command": "npx",
"args": ["mcp-windows-screenshot"]
}
}
}Claude Desktop
Add to your `claude_desktop_config.json`:
{
"mcpServers": {
"windows-screenshots": {
"command": "npx",
"args": ["mcp-windows-screenshot"]
}
}
}Windsurf
Add to your `~/.codeium/windsurf/mcp_config.json`:
{
"mcpServers": {
"windows-screenshots": {
"command": "npx",
"args": ["mcp-windows-screenshot"]
}
}
}Available Tools
`takeScreenshot`
Captures a full-screen screenshot.
Parameters:
- `mode`: Always "full" (default)
- `allMonitors`: Capture all monitors (default: true)
- `monitor`: Specific monitor number (optional)
- `includeImage`: Embed image as base64 in response (default: false)
- `timeoutMs`: Timeout in milliseconds (default: 60000)
Example:
{
"mode": "full",
"allMonitors": true,
"includeImage": true
}Response:
{
"ok": true,
"cancelled": false,
"path": "screenshots/full-2024-01-14T10-53-52-000Z.png",
"rect": {"x": 0, "y": 0, "width": 1920, "height": 1080},
"width": 1920,
"height": 1080,
"mode": "full",
"allMonitors": true,
"monitor": null
}`takeSelectedAreaScreenshot`
Allows interactive selection of a screen region to capture.
Parameters:
- `mode`: Always "region" (default)
- `includeImage`: Embed image as base64 in response (default: false)
- `timeoutMs`: Timeout in milliseconds (default: 120000)
Example:
{
"includeImage": true
}Response:
{
"ok": true,
"cancelled": false,
"path": "screenshots/region-2024-01-14T10-53-52-000Z.png",
"rect": {"x": 100, "y": 100, "width": 800, "height": 600},
"width": 800,
"height": 600,
"mode": "region"
}`listScreenshots`
Lists saved screenshots in the screenshots directory.
Parameters:
- `limit`: Maximum number of screenshots to return (default: 50, max: 200)
Example:
{
"limit": 10
}Response:
{
"items": [
{
"path": "screenshots/region-2024-01-14T10-53-52-000Z.png",
"sizeBytes": 245760,
"createdAt": "2024-01-14T10:53:52.000Z"
}
]
}Configuration
Helper Executable
The server requires a helper executable at `bin/RegionSnip.exe` that supports the following command-line arguments:
- `--mode full|region`: Capture mode
- `--out `: Output file path
- `--all`: Capture all monitors (full mode only)
- `--monitor `: Specific monitor number (full mode only)
The executable should output JSON to stdout with the following structure:
{
"ok": true,
"cancelled": false,
"rect": {"x": 0, "y": 0, "width": 1920, "height": 1080},
"width": 1920,
"height": 1080
}Screenshots Directory
Screenshots are automatically saved to the `screenshots/` directory in the project root. This directory is created automatically if it doesn't exist.
Development
Building
npm run buildTesting
The server can be tested using the MCP inspector:
npm run inspectorThis starts the server and opens a debugging interface to test the available tools.
Project Structure
├── src/
│ └── index.ts # Main server implementation
├── build/ # Compiled JavaScript output
├── screenshots/ # Screenshot storage directory
├── bin/
│ └── RegionSnip.exe # Helper executable (not included)
├── package.json
└── README.mdFrequently asked questions
What is mcp-windows-screenshot?
mcp-windows-screenshot is A MCP server for capturing screenshots on Windows
How do I install mcp-windows-screenshot?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is mcp-windows-screenshot open source?
Yes — it is hosted on GitHub at https://github.com/sarfraznawaz2005/mcp-windows-screenshot and has 2 stars.
Related MCP tools
Unity MCP acts as a bridge between AI assistants and your Unity Editor. Give your LLM tools to manage assets, control scenes, edit scripts, and automate tasks within Unity.
AI Skills, MCP Tools, and CLI for Unity Engine. Full AI develop and test loop. Use cli for quick setup. Efficient token usage, advanced tools. Any C# method may be turned into a tool by a single line. Works with Claude Code, Gemini, Copilot, Cursor and any other absolutely for free.
Catalog of official Microsoft MCP (Model Context Protocol) server implementations for AI-powered data access and tool integration
An MCP server that allows MCP clients like Claude Desktop or Cursor to perform actions in the Unity Editor C#-based implementation.
The official C# SDK for Model Context Protocol servers and clients. Maintained in collaboration with Microsoft. Trusted by 3500+ developers.
Model Context Protocol (MCP) plugin to connect with Unity Editor — designed for OpenAI, Gemini, Claude, Deepseek and Grok interoperability
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP