Skip to main content
Glama

Window Capture MCP Server

A cross-platform window screenshot MCP server and library implemented in Rust, based on rmcp and xcap.

Features

  • Get monitor count and details

  • Capture screenshots of monitors and windows

  • List and close windows

  • Cross-platform support (Windows, macOS, Linux)

  • Supports multiple transport modes (STDIO, SSE, HTTP)

  • Available as Rust library and Python package

Related MCP server: Computer Use MCP

Installation

As MCP Server

# Build from source
make build
make run

As Python Package

pip install window-cap-mcp

As Rust Library

[dependencies]
window_cap_mcp_lib = "0.1"

Usage

MCP Server

# STDIO mode (for Claude Desktop)
window-cap-mcp

# SSE mode
window-cap-mcp --sse --port 3000

# HTTP mode
window-cap-mcp --http --port 8080

Python Library

import window_cap_mcp as wc

# Capture monitor screenshot
screenshot = wc.capture_monitor()

# Run as MCP server
wc.run_server()

Rust Library

use window_cap_mcp_lib::{Monitor, Window};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let monitors = Monitor::all()?;
    monitors[0].capture_image()?.save("screenshot.png")?;
    Ok(())
}

Claude Desktop Configuration

Edit the configuration file:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS/Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "window-cap": {
      "command": "window-cap-mcp"
    }
  }
}

MCP Tools

get_monitor_count

Get monitor information.

{
  "count": 2,
  "monitors": [
    {
      "index": 0,
      "name": "Display 1",
      "width": 1920,
      "height": 1080,
      "is_primary": true
    }
  ]
}

get_screen_screenshot

Capture monitor screenshot (Base64-encoded PNG).

Parameters: monitor_index (optional)

get_window_list

Get all windows information.

{
  "count": 5,
  "windows": [
    {
      "id": 12345,
      "title": "VS Code",
      "app_name": "Code.exe",
      "width": 1280,
      "height": 720
    }
  ]
}

get_window_screenshot

Capture window screenshot (Base64-encoded PNG).

Parameters: window_id (required)

close_window

Close a window by ID.

Parameters: window_id (required)

Development

make help          # View commands
make build         # Build project
make test          # Run tests
make clean         # Clean artifacts

License

MIT

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
3Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sun-ZhenXing/window-cap-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server