Skip to main content

macOS Screen View & Control MCP Server

A Model Context Protocol server that provides window screenshot capabilities. This server enables LLMs to capture screenshots of specific windows on macOS, either by window title or window ID.

Available Tools

  • capture_window_screenshot - Captures a screenshot of a specific window by its title or ID

    • window_identifier (string, required): Window title to search for or window ID
    • search_in_owner (boolean, optional): Whether to search in window owner names (default: true)
    • format (string, optional): Output format (binary or base64) (default: "binary")
  • list_windows - Lists all visible windows

    • No parameters required
  • find_window - Finds a window by title or owner name

    • title (string, required): Window title or owner name to search for
    • search_in_owner (boolean, optional): Whether to search in window owner names (default: true)
  • send_key - Sends a keyboard key press event to the active window

    • key (string, required): The key to press (e.g., 'a', 'return', 'space')
    • modifiers (list of strings, optional): List of modifier keys to hold (e.g., ['command', 'shift'])
  • type_text - Types a sequence of text characters

    • text (string, required): The text to type
    • delay (float, optional): Delay between keystrokes in seconds (default: 0.1)

Supported Keys

The following keys are supported:

  • Letters: a-z (case-insensitive)
  • Numbers: 0-9
  • Special keys: return, tab, space, delete, escape
  • Arrow keys: up_arrow, down_arrow, left_arrow, right_arrow
  • Modifier keys: command, shift, control, option (also right_shift, right_option, right_control)

Examples

Send a single key press:

await send_key("return")

Send a key with modifiers:

await send_key("c", ["command"])  # Command+C (copy)

Type text:

await type_text("Hello, World!")

Installation

Using pip

Install macos_screen_mcp via pip:

pip install git+ssh://git@github.com/jhead/macos-screen-mcp.git

After installation, you can run it as a script using:

python -m macos_screen_mcp

Configuration

Configure

Add to your Claude or Cursor settings:

"mcpServers": {
 "macos-screen": {
    "name": "macos-screen",
    "url": "http://localhost:8000/sse",
    "description": "MCP server for capturing window screenshots",
    "version": "1.0.0"
  }
}

Debugging

You can use the MCP inspector to debug the server:

npx @modelcontextprotocol/inspector python -m macos_screen_mcp

Contributing

We encourage contributions to help expand and improve macos-screen-mcp. Whether you want to add new tools, enhance existing functionality, or improve documentation, your input is valuable.

Pull requests are welcome! Feel free to contribute new ideas, bug fixes, or enhancements to make macos-screen-mcp even more powerful and useful.

License

macos-screen-mcp is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.

Metadata

Release files for iflow-mcp_jhead_macos-screen-mcp 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_jhead_macos-screen-mcp 1.0.0
File Size Uploaded
iflow_mcp_jhead_macos_screen_mcp-1.0.0.tar.gz 10.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_jhead_macos-screen-mcp 1.0.0
File Interpreter ABI Platform
iflow_mcp_jhead_macos_screen_mcp-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 21.8 kB

Release files / iflow_mcp_jhead_macos_screen_mcp-1.0.0.tar.gz

Download URL iflow_mcp_jhead_macos_screen_mcp-1.0.0.tar.gz
Size 10.0 kB
Tags Source
SHA-256 checksum
How to use checksums
5f9e9811d1db9d55045c746f47896720afb090e90fe99f234b3af4f239e999c5
BLAKE2b-256 checksum
How to use checksums
f7736793cb75d285b39c1e4f25b2f965b61940d1c138dd13b8e9d826f01dea2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / iflow_mcp_jhead_macos_screen_mcp-1.0.0-py3-none-any.whl

Download URL iflow_mcp_jhead_macos_screen_mcp-1.0.0-py3-none-any.whl
Size 11.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bf438b41fe1fcc7c545cdafc2834855ab9eb03cce290868eb804eb6f25ce3598
BLAKE2b-256 checksum
How to use checksums
5043641589ef94c14c2ce3cfb83b5c3684a50de084ae552a186f9ccf1bb2c308
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page