macOS Screen View & Control MCP Server

macOS Screen View & Control MCP Server

MCP Server to screenshot and control macOS windows (made for Cursor)

jhead

Developer Tools
Visit Server

README

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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
MCP Package Docs Server

MCP Package Docs Server

Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.

Featured
Local
TypeScript
Claude Code MCP

Claude Code MCP

An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.

Featured
Local
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.

Featured
Local
JavaScript
Linear MCP Server

Linear MCP Server

Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.

Featured
JavaScript
mermaid-mcp-server

mermaid-mcp-server

A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.

Featured
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP server to provide Jira Tickets information to AI coding agents like Cursor

Featured
TypeScript
Linear MCP Server

Linear MCP Server

A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Featured
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.

Featured
Python