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
Not graded
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.

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    A cross-platform MCP server that allows AI agents to capture screenshots of specific windows, displays, or regions for native application testing. It provides tools to list active windows and monitors, enabling precise visual verification and interaction during automated workflows.
    41
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server for computer automation that provides tools for screenshots, mouse actions, keyboard input, and drag-and-drop functionality. It supports cross-platform desktop interaction for both Linux (X11) and Windows environments.
    438
    2
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

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