MCP Windows Screenshots
The MCP Windows Screenshots server enables Claude to seamlessly access and manage Windows screenshots from within WSL2, eliminating manual file navigation.
• List Screenshots: View recent screenshots with options to limit results, filter by file type (PNG, JPG, GIF), or search specific directories • Get Specific Screenshot: Retrieve a screenshot by full path, returning either the file path or base64 encoded content • List Configured Directories: Display all directories currently being searched for screenshots • View Latest Screenshot: Automatically find and display the most recently taken screenshot • Flexible Configuration: Automatically searches common screenshot locations or allows custom directory setup via environment variables
Click on "Deploy 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., "@MCP Windows Screenshotsshow me my latest screenshot"
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.
MCP Windows Screenshots
An MCP (Model Context Protocol) server that enables Claude to access Windows screenshots from WSL2. Perfect for seamlessly sharing screenshots with Claude Code without manual file navigation.
Why This Tool?
When using Claude Code cli in WSL2 or in Cursor/VSCode, sharing Windows screenshots requires navigating complex file paths like /mnt/c/Users/... or dragging the image to the terminal.
Also, what if want to share the last 4 screenshots with Claude? this can become very cubersome.
This tool simplifies the process to just:
Take a screenshot on Windows (Win+Shift+S)
Ask Claude to show your latest screenshot/s
Claude instantly accesses and displays it
No more copy-pasting paths or navigating directories!
Key Features
Auto-detection: Automatically detects your Windows Screenshots folder location from the registry
Cross-platform: Works in both WSL2 and native Windows environments
Smart defaults: Falls back to common screenshot locations if custom paths aren't found
Zero configuration: Works out of the box for most users
Related MCP server: screen-capture-mcp
Prerequisites
Windows 10/11 (with or without WSL2)
Node.js 18+
Claude Code CLI installed
Installation
Run this single command in your terminal (works in WSL2, Windows Terminal, PowerShell, or Command Prompt):
claude mcp add windows-screenshots -s user -- npx mcp-windows-screenshots@latestThat's it! Restart Claude Code and you're ready to go.
The tool will automatically:
Detect your environment (WSL2 or Windows)
Find your Windows Screenshots folder from the registry
Configure the appropriate paths
Usage
Once installed, Claude can use these tools:
View a Screenshot
Ask Claude: "Look at the latest screenshot"
Claude will automatically find it and look at the image.
List Recent Screenshots
Ask Claude: "Show me my latest screenshots"
Claude will display your recent screenshots with timestamps and sizes.
Check Screenshot Directories
Ask Claude: "Which directories are you checking for screenshots?"
Claude will show all configured paths.
How It Works
The tool automatically:
Detects your environment (WSL2 vs native Windows)
Queries Windows registry for your actual Screenshots folder location
Searches common locations as fallback:
Your configured Screenshots folder (from Windows settings)
Pictures/Screenshots
OneDrive Pictures/Screenshots
Desktop
Documents/Screenshots
Temp folders
Troubleshooting
No screenshots found
Ask Claude to "list screenshot directories" to see which paths are being searched
Ensure your screenshots are saved in one of the searched directories
If your screenshots are in a custom location, see Advanced Configuration below
Tool not available
Restart Claude Code after installation
Run
claude mcp listto verify the server is installedEnsure you used
-s userwhen adding the server
Advanced Configuration
Custom Screenshot Directories
If your screenshots are saved in a non-standard location, you can specify custom directories:
WSL2 with custom paths:
claude mcp add windows-screenshots -s user \
-e "MCP_SCREENSHOT_DIRS=/mnt/c/Users/john/CustomFolder;/mnt/c/Users/john/Desktop" \
-- npx mcp-windows-screenshots@latestWindows with custom paths:
claude mcp add windows-screenshots -s user -e "MCP_SCREENSHOT_DIRS=C:\Users\john\CustomFolder;C:\Users\john\Desktop" -- npx mcp-windows-screenshots@latestEnvironment Variables
WINDOWS_USERNAME: Override the auto-detected Windows usernameMCP_SCREENSHOT_DIRS: Specify custom screenshot directories (semicolon-separated for multiple paths)
Manual Username Configuration
If the auto-detection doesn't find the correct username:
WSL2:
claude mcp add windows-screenshots -s user \
-e "WINDOWS_USERNAME=YourWindowsUsername" \
-- npx mcp-windows-screenshots@latestWindows:
claude mcp add windows-screenshots -s user -e "WINDOWS_USERNAME=YourWindowsUsername" -- npx mcp-windows-screenshots@latestDevelopment
To contribute or modify this tool:
git clone https://github.com/rubinsh/mcp-windows-screenshots.git
cd mcp-windows-screenshots
npm install
npm run buildLicense
MIT © rubinsh
Available Tools
3 toolsget_screenshotB
Get a specific screenshot file path or content
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Full path to the screenshot file | |
| return_content | No | Return base64 encoded content instead of just the path (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool can return either a path or base64-encoded content, which adds some context beyond the input schema. However, it lacks details on error handling (e.g., what happens if the path is invalid), performance characteristics, or security considerations, leaving significant gaps for a file retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded, making it easy to understand quickly. Every part of the sentence contributes to clarifying the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and hints at behavior, but lacks details on output format, error cases, or integration with siblings. Without annotations or output schema, more context would be helpful for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already fully documents both parameters (path and return_content). The description adds minimal value by hinting at the return options but doesn't provide additional syntax, format details, or examples beyond what's in the schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get a specific screenshot file path or content' with a specific verb ('Get') and resource ('screenshot file'). It distinguishes from sibling tools list_directories and list_screenshots by focusing on retrieving a specific file rather than listing items. However, it doesn't explicitly mention how it differs from siblings beyond the general action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites like needing a valid file path, when to use return_content, or how it relates to sibling tools like list_screenshots for finding available screenshots. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_directoriesB
List all configured screenshot directories
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but doesn't describe return format, pagination behavior, error conditions, or whether this operation has side effects. For a tool with zero annotation coverage, this represents significant gaps in behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for a simple tool with no parameters and gets straight to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description adequately states what the tool does but lacks important context about return format and behavioral characteristics. Given the simplicity of the tool (no parameters, no complex schema), the description meets minimum viability but could be more complete about what 'list' actually returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't discuss parameters since none exist, earning a baseline score of 4 for this dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'all configured screenshot directories', making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'list_screenshots', but the resource focus (directories vs screenshots) provides implicit distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the sibling 'list_screenshots' tool, nor does it mention any prerequisites, context requirements, or alternative approaches. The agent must infer usage from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_screenshotsC
List recent screenshots from Windows directories
| Name | Required | Description | Default |
|---|---|---|---|
| directory | No | Specific directory to search (optional, searches all configured dirs by default) | |
| limit | No | Maximum number of screenshots to return (default: 20) | |
| pattern | No | Glob pattern to filter files (default: *.{png,jpg,jpeg,bmp,gif}) | *.{png,jpg,jpeg,bmp,gif} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool lists 'recent screenshots' but doesn't explain how 'recent' is determined (e.g., by timestamp, file system order), whether it's a read-only operation, what the output format looks like, or if there are any rate limits or permissions required. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It directly communicates the tool's function, making it easy to parse and understand quickly. Every word earns its place, and there's no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't address key behavioral aspects like how 'recent' is defined, the output structure, or error handling. For a tool with three parameters and no structured output documentation, the description should provide more context to compensate, but it falls short.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all parameters well-documented in the schema itself (directory, limit, pattern). The description adds no additional meaning beyond what the schema provides, such as explaining how parameters interact or typical use cases. However, the baseline score of 3 is appropriate since the schema adequately covers parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('recent screenshots from Windows directories'), making the purpose immediately understandable. It doesn't explicitly distinguish from sibling tools like 'get_screenshot' (which likely retrieves a single screenshot) or 'list_directories' (which lists directories rather than files), but the verb+resource combination is specific enough for basic understanding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_screenshot' or 'list_directories'. It mentions 'recent screenshots' but doesn't define what 'recent' means or specify any prerequisites or exclusions. Without this context, an agent might struggle to choose between this and its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v1.0.0- First observed
get_screenshot - First observed
list_directories - First observed
list_screenshots
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: get_screenshot retrieves specific screenshot content, list_directories shows configured directories, and list_screenshots lists recent screenshots. There is no overlap in functionality, making tool selection unambiguous.
All tools follow a consistent verb_noun pattern (get_screenshot, list_directories, list_screenshots) with clear, descriptive names. The naming convention is uniform and predictable throughout the set.
With only 3 tools, the server feels somewhat thin for managing Windows screenshots. While the tools cover basic retrieval and listing, additional operations like taking new screenshots or deleting old ones might be expected, making the count borderline for the domain.
The tools provide read-only access to existing screenshots and directories, but there are notable gaps for a full screenshot management system. Missing operations include capturing new screenshots, deleting or organizing screenshots, and configuring settings, which limits agent workflows.
Maintenance
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Holiday photo MCP server: list and fetch personal holiday photos inline in Claude chat.
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server for capturing screen regions directly into Claude Code conversations via hotkeys or tool calls. It provides Windows-specific screen snipping with multi-monitor support, persistent storage, and automatic management of captured images.MIT
- AlicenseAqualityDmaintenanceAn MCP server that enables Claude Code and other MCP clients to take screenshots of the full screen or specific windows, with support for repeated captures over intervals.137 npm8MIT
- AlicenseAqualityCmaintenanceMCP server that gives Claude Code reliable access to clipboard images and screenshots, fixing broken paste in iTerm2.23MIT
- AlicenseAqualityDmaintenanceMCP server enabling Claude Code to capture screenshots of Windows applications through WSL2, allowing AI to diagnose UI errors and verify layouts.11MIT