Skip to main content
Glama
johnexzy

macos-computer-use

by johnexzy

🍏 macOS Computer Use (MCP Server)

License: MIT Platform Model Context Protocol

Ein ultraschneller nativer Model Context Protocol (MCP)-Server, der LLMs und autonomen Agenten vollständige visuelle Inspektion und Desktop-Automatisierungsfunktionen unter macOS bietet, ohne Ihre physische Hardware-Maus oder den Tastaturfokus zu übernehmen.

Entwickelt mit einem kompilierten Swift-Kern, der Apples native CoreGraphics, Vision OCR (VNRecognizeTextRequest) und direkte Ereignisweiterleitung auf Prozessebene (CGEvent.postToPid) nutzt.


⚡ Hauptmerkmale

  • 🎯 Sub-30-ms Apple Vision OCR (find_text / click_text): Kein blindes Raten von $(x, y)$-Koordinaten. Der Agent findet Schaltflächen, Beschriftungen und Textplatzhalter anhand des Namens mit Pixelgenauigkeit mithilfe der Apple Neural Engine-Beschleunigung.

  • 🛡️ Nicht-intrusive Hintergrundausführung: Entkoppelt von globalen macOS-Hardware-Ereignis-Taps. Klicks, Scrolls und Tastatureingaben können direkt an bestimmte Anwendungs-PIDs gerichtet werden, während Sie weiterhin in Ihrer IDE oder Ihrem Browser arbeiten.

  • 👁️ Virtuelles Cursor-Overlay (mark_cursor): Die Zielkoordinaten des Agenten werden visuell auf Screenshot-Frames gezeichnet (cyanfarbener Zielring + magentafarbener pulsierender Punkt), ohne Ihre physische Maus auf dem Bildschirm zu bewegen.

  • ⚡ Reaktive UI-Synchronisierung (wait_for_text): Ersetzt blinde sleep()-Timeouts durch eine Hochgeschwindigkeits-OCR-Abfrageschleife, die auflöst, sobald dynamische Autovervollständigungs-Dropdowns, Modals oder Zustandsänderungen erscheinen.

  • 🖼️ Fensterisolierte Bildschirmaufnahme: Erfasst Zielanwendungs-Puffer sauber im Hintergrund (screencapture -l <wid> -o -x), ohne das Fenster in den Vordergrund zu bringen oder überlappende Fenster zu erfassen.


🛠️ Verfügbare Tools

Tool

Beschreibung

Wichtige Parameter

click_text

Findet jede Schaltfläche, Beschriftung oder jeden UI-Text über Apple Vision OCR und klickt sanft auf dessen exaktes Zentrum.

text, appName (optional), windowId (optional), button, clickCount, returnScreenshot

find_text

Untersucht Text auf dem Bildschirm oder in einem bestimmten Fenster und gibt exakte Begrenzungsrahmen und logische Koordinaten zurück.

text, appName (optional), windowId (optional)

wait_for_text

Pollt reaktiv das Zielfenster bzw. den Bildschirm, bis der erwartete Text erscheint (Autovervollständigungs-Dropdowns, Toasts, Sheets).

text, appName (optional), timeoutSeconds (Standard: 5.0)

screenshot

Erfasst den gesamten Bildschirm oder ein bestimmtes Hintergrund-Anwendungsfenster mit optionaler virtueller Cursor-Darstellung.

appName, windowId, maxWidth, format (jpeg | png), cursor ({x, y})

list_windows

Listet geöffnete Anwendungsfenster, Prozess-IDs (pid), Titel und Koordinatenbegrenzungen in Z-Reihenfolge von vorne nach hinten auf.

appName (optional filter)

mouse_click

Klickt an logischen (x, y)-Punkten (unterstützt fensterrelative und PID-gezielte Weiterleitung).

x, y, appName, windowId, relativeCoords, button, clickCount

mouse_move

Bewegt den Mauszeiger sanft zu (x, y)-Koordinaten.

x, y, appName, relativeCoords, smooth, duration

mouse_drag

Zieht die Maus sanft von (startX, startY) zu (endX, endY).

startX, startY, endX, endY, duration

type_text

Fügt Klartext in aktive Eingabefelder ein (oder direkt in Warteschlangen des Zielprozesses).

text, appName (optional), windowId (optional)

press_key

Drückt Sondertasten oder Tastaturkürzel mit Modifikatoren.

key (return, space, tab, escape, c, etc.), modifiers (command, shift, option, control)

scroll

Scrollt das Mausrad vertikal und horizontal.

x, y, deltaY, deltaX, appName, windowId

launch_app

Startet eine macOS-Anwendung oder bringt sie in den Vordergrund.

appName (z. B. Google Chrome, Safari, Finder, Slack, Notes)

get_active_app

Gibt den Namen und Fenstertitel der aktuell aktiven vordersten Anwendung zurück.

Keine

run_applescript

Führt benutzerdefiniertes AppleScript für tiefgehende macOS-Barrierefreiheits- und UI-Hierarchie-Inspektion aus.

script


🚀 Installation & Einrichtung

1. Voraussetzungen

  • macOS 13.0+ (Apple Silicon oder Intel)

  • Node.js 18+

  • Xcode Command Line Tools (zum Kompilieren des nativen Swift-Binärs): GXP1

2. Klonen & Erstellen

git clone https://github.com/johnexzy/macos-computer-use.git
cd macos-computer-use
npm install

(Das postinstall-Skript kompiliert native_helper.swift automatisch zu einem optimierten nativen Binär.)


🔒 Erforderliche macOS-Berechtigungen

Um Desktop-Erfassung und Eingabesimulation zu ermöglichen, erteilen Sie Ihrer Host-Anwendung (Terminal, iTerm2, Antigravity, Cursor oder VS Code) Berechtigungen unter Systemeinstellungen > Datenschutz & Sicherheit:

  1. Bildschirm- & Systemaudioaufnahme: Erforderlich für screenshot und visuelle OCR.

  2. Bedienungshilfen: Erforderlich für mouse_click, type_text und press_key.


🔌 MCP-Konfiguration

Fügen Sie diesen Server zu Ihrer MCP-Client-Konfiguration hinzu:

Antigravity / Claude Desktop / Cursor / Windsurf

Fügen Sie Folgendes zu Ihrer mcp_config.json / claude_desktop_config.json hinzu:

{
  "mcpServers": {
    "macos-computer-use": {
      "command": "node",
      "args": ["/absolute/path/to/macos-computer-use/server.mjs"]
    }
  }
}

🧪 Testen des nativen Swift-Helfers direkt

Sie können das native Binär direkt von Ihrem Terminal aus testen:

# Display resolution and scaling
./native_helper size

# List active Chrome windows in Z-order
./native_helper list_windows "Google Chrome"

# Find a button or text on screen with Apple Vision OCR in ~30ms
./native_helper find_text "Search" "Google Chrome"

# Reactively wait for dynamic text to appear
./native_helper wait_for_text "quantum" "Google Chrome" nil 5.0

📄 Lizenz

MIT © John Oba

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (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 Connectors

  • Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.

  • MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent

  • Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.

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/johnexzy/macos-computer-use'

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