Ermöglicht es AI Agents, macOS-Anwendungen durch strukturierten UI-Zugriff, Screenshots und OCR zu sehen und zu bedienen.
Auch bekannt als wende/macbeth
- Stars
- 4
- Tools
- —
- Downloads, 30 Tage
- —
- Neueste Version
- 0.2.4
- Letzter Commit
- 20. Sept. 2026
- Lizenz
- MIT
Was ist Macbeth MCP?
Macbeth ist ein MCP server. Ermöglicht es AI Agents, macOS-Anwendungen durch strukturierten UI-Zugriff, Screenshots und OCR zu sehen und zu bedienen.
Zusammenfassung generiert aus dem README des Projekts
Über Macbeth MCP server
Macbeth bietet eine Steuerungsschicht, die es AI Agents ermöglicht, mit macOS-Anwendungen unter Verwendung von strukturierten UI-Daten, Screenshots und OCR zu interagieren. Es fungiert als Brücke, damit Agents sowohl native als auch auf Electron basierende Interfaces sehen und bedienen können. Entwickler können dies über einen lokalen stdio MCP server via npx oder über eine dedizierte TypeScript API integrieren. Das System ist für macOS 14 oder neuer konzipiert und benötigt Node.js 20 oder höher.
Anstatt sich allein auf visuelle Koordinaten zu verlassen, priorisiert der Server Accessibility-Trees, um Rollen, Labels und Werte abzufragen. Wenn Metadaten fehlen oder unvollständig sind, nutzt er ScreenCaptureKit und Vision OCR, um den Bildschirm zu interpretieren. Es enthält integrierte Skills für spezifische Anwendungen wie Logic Pro, Systemeinstellungen und Mail, die Agents dabei helfen, komplexe Workflows zu navigieren. Nutzer müssen die Berechtigungen für Bedienungshilfen und Bildschirmaufnahme erteilen, um den vollen Funktionsumfang der Interaktion zu aktivieren.
Was du damit machen kannst
- 1Komplexe Creative Software automatisierenWeise einen Agent an, Einstellungen in professionellen Audio-Tools wie Logic Pro anzupassen.
- 2Systemkonfigurationen verwaltenBitte eine KI, den aktuellen Status der macOS Firewall-Einstellungen zu prüfen und zu melden.
- 3Text aus Fenstern extrahierenNutze OCR, um allen sichtbaren Text aus einem spezifischen Anwendungsfenster wie Notes zu ziehen.
- 4Electron-Anwendungen bedienenNavigiere durch Anwendungen, denen eine Standard-API fehlt, indem du deren freigegebene Interfaces nutzt.
Geschrieben aus dem README des Projekts. Jeder Use Case wurde gegen ein Zitat daraus geprüft.
So installierst du Macbeth MCP
Formate geprüft am 10. Nov. 2026Zu Cursor hinzufügenZu Goose hinzufügenMacbeth MCP in Claude Code installieren
$ claude mcp add macbeth -- npx -y macbethMacbeth MCP in Cursor installieren
~/.cursor/mcp.json
{
"mcpServers": {
"macbeth": {
"command": "npx",
"args": [
"-y",
"macbeth"
]
}
}
}Macbeth MCP in VS Code installieren
.vscode/mcp.json
{
"servers": {
"macbeth": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"macbeth"
]
}
}
}Macbeth MCP in VS Code CLI installieren
$ code --add-mcp '{"name":"macbeth","type":"stdio","command":"npx","args":["-y","macbeth"]}'Macbeth MCP in Claude Desktop installieren
claude_desktop_config.json
{
"mcpServers": {
"macbeth": {
"command": "npx",
"args": [
"-y",
"macbeth"
]
}
}
}Macbeth MCP in Codex installieren
$ codex mcp add macbeth -- npx -y macbethMacbeth MCP in Codex config.toml installieren
~/.codex/config.toml
[mcp_servers.macbeth] command = "npx" args = ["-y", "macbeth"]
Macbeth MCP in Gemini CLI installieren
$ gemini mcp add -s user macbeth npx -- -y macbethMacbeth MCP in Gemini settings.json installieren
~/.gemini/settings.json
{
"mcpServers": {
"macbeth": {
"command": "npx",
"args": [
"-y",
"macbeth"
]
}
}
}Automatisierte Checks
Geluften am 14. Nov. 2026Vollständiger Bericht →Unsere automatisierten Checks bestanden. Das ist kein Security-Audit: Lies den Code und gib dem Server nur den minimal notwendigen Zugriff. Wie die Checks funktionieren
- Source Repository verknüpft und erreichbarwende/macbeth is public and reachablegithub.com/wende/macbeth ↗Bestanden
- Paket nennt dieses Repository als Quellemacbeth names wende/macbeth as sourcenpmjs.com/package/macbeth ↗Bestanden
- Build-Provenienz (Sigstore-Attestierung)Sigstore attestation for macbethnpmjs.com/package/macbeth/v/0.2.4#provenance ↗Bestanden
- Open Source Lizenz (OSI)MITspdx.org/licenses/MIT.html ↗Bestanden
- Commit oder Release im letzten JahrLast commit or release 2026-09-20github.com/wende/macbeth ↗Bestanden
- OpenSSF ScorecardNicht geprüft
- Package-Name ähnelt keinem populären PackageNo popular package one edit away from macbethBestanden
- Keine kritischen Advisories im Paket oder seinen Abhängigkeiten99 resolved dependencies checked; no critical advisoryosv.dev ↗Bestanden
- Keine versteckten Anweisungen an das Modell0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersBestanden
- Destruktive Tools sind markiertNicht geprüft
- Remote-Endpoint beantwortet den MCP-HandshakeNicht geprüft
README
Auf GitHub ansehenQuickstart
Give Claude Code access to Macbeth:
claude mcp add macbeth -- npx -y macbeth
Then ask it to verify the connection:
Using Macbeth, list the running applications, connect to Finder, inspect its front window, and summarize the first few controls you can see. Do not perform any other actions.
Macbeth ships with a prebuilt, signed and notarized universal daemon. No Swift toolchain or manual service installation is required. If setup fails, run npx macbeth doctor; it prints a self-contained diagnostic prompt you can paste back into your agent.
Any MCP client that can launch a stdio server can use npx -y macbeth. See MCP setup for generic configuration, updates, and the complete tool list.
Add Macbeth as an MCP server using
npx -y macbeth. Runnpx macbeth doctor, guide me through granting only the permissions I need, and verify the setup by inspecting Finder. Do not take any unrelated actions.
Across your Mac
Work inside Unity, Logic Pro, and other complex tools
“In Logic Pro, set the project tempo to 128 BPM and start playback.”
Macbeth combines structured controls, menus, keyboard input, screenshots, OCR, and application-specific guidance. Logic Pro has a dedicated skill. Applications with thinner accessibility trees, including parts of Unity, can combine structured controls with keyboard, menu, screenshot, and OCR fallbacks.
Automate macOS itself
“Open System Settings, find the firewall controls, and report their current state without changing anything.”
Macbeth can inspect named controls and values, select native menu items, and use keyboard input when a semantic action is unavailable.
Use applications even when they have no API
“Open HEY, find the newest visible thread from the design team, and summarize it without sending or changing anything.”
Macbeth can work through exposed Electron interfaces even when the service does not provide the API your agent needs. HEY works through Macbeth's generic Electron support; results vary with the application's accessibility tree and version.
See what the accessibility tree misses
“Capture the frontmost Notes window and extract all visible text.”
ScreenCaptureKit screenshots and local Vision OCR provide a fallback for content that macOS does not expose as useful accessibility data.
Build repeatable scripts and tests
The same engine is available as a TypeScript API with lazy locators, auto-waiting actions, explicit state waits, screenshots, and application connections.
[!IMPORTANT] Macbeth can act inside applications on your behalf. Connect only trusted agents and require approval for consequential actions.
Why Macbeth?
- Use your own agent. Macbeth is a control layer, not a model or agent runtime.
- Structured when possible. Query roles, labels, values, enabled state, hierarchy, and stable handles instead of relying only on coordinates.
- Visual when necessary. Fall back to window capture and OCR when accessibility metadata is thin.
- Application-aware. Versioned skills preserve workflows, shortcuts, and known failure modes.
- Scriptable. Use the same primitives interactively over MCP or directly from TypeScript.
Structured before pixels
| Capability | Typical screenshot-driven agent | Macbeth |
|---|---|---|
| Find a labeled control | Visual inference | Accessibility query when exposed |
| Read role, value, and state | Inferred | Structured attributes |
| Wait for a UI change | Usually observed through repeated captures | Explicit waits and auto-waiting actions |
| Handle incomplete UI metadata | Vision/OCR | Accessibility first, screenshot/OCR fallback |
| Reuse application knowledge | Prompt-dependent | Bundled, versioned skills |
Accessibility information can itself be incomplete or misleading. Macbeth is a hybrid interface: it uses stronger structured primitives when macOS exposes them and keeps visual and system-level fallbacks available when it does not.
Security and limitations
- Macbeth requires macOS 14 or newer and Node.js 20 or newer.
- Accessibility permission is required for UI inspection and interaction. Screen Recording is required only for screenshots and window OCR.
- Application accessibility quality varies. Custom-rendered canvases, games, and some creative tools may require menus, screenshots, OCR, keyboard input, or application-specific guidance.
- Interface changes between application versions can break specialized workflows.
- The interaction glow makes Macbeth activity visible, but it is not an approval system or a complete audit log.
- Agents can make mistakes. Use human review for destructive, financial, publishing, or privacy-sensitive actions.
Macbeth uses a local stdio MCP server and a Unix-domain socket; it does not open a TCP listener. Screenshots requested through MCP are written to a temporary directory and are not automatically deleted. Read the security model for data flow, permission revocation, local-process risks, and safer operating practices.
TypeScript API
npm install macbeth
import { connect } from "macbeth";
const app = await connect("TextEdit");
await app.window("Untitled").textField().fill("Hello from Macbeth");
await app.pressKey("s", ["cmd"]);
See Developing with Macbeth for locators, screenshots, Electron behavior, lifecycle, and tests.
Teach Macbeth an application
A Macbeth skill is a SKILL.md file, optionally accompanied by runnable scripts, that teaches an agent reliable workflows and pitfalls. Call load_skill with no arguments for the core Macbeth guide. Bundled app skills cover Calendar, Contacts, Logic Pro, Mail, Maps, Messages, Music, Notes, Reminders, Safari, System Settings, and generic Electron applications.
You can add a skill without changing the Swift daemon. Start with the contribution guide and include a reproducible prompt, tested application version, expected result, and honest failure modes.
Documentation
| Guide | Contents |
|---|---|
| MCP server | Installation, smoke test, tools, skills, and updates |
| CLI | Every MCP tool as a macbeth <tool> subcommand |
| TypeScript API | Client API, locators, Electron, and tests |
| Architecture | Daemon, protocol, fallbacks, and design notes |
| Security | Trust boundaries, data handling, and permission revocation |
| Troubleshooting | Diagnostics and common setup failures |
| Contributing | Development workflow and application skills |
Requirements
- macOS 14 (Sonoma) or later
- Node.js 20+
- Swift 6.0+ only when building the daemon from source
License
MIT
Macbeth MCP Fragen
Wie füge ich Macbeth MCP zu Claude Code hinzu?
Führe claude mcp add macbeth -- npx -y macbeth in deinem Terminal aus. Füge --scope user hinzu, damit der Server in jedem Projekt verfügbar ist.
Wie füge ich Macbeth MCP zu Cursor hinzu?
Öffne ~/.cursor/mcp.json und füge den Server unter mcpServers hinzu, mit der Cursor-Config aus dem Installationsabschnitt oben.
Was sind die Systemanforderungen für Macbeth?
Macbeth erfordert macOS 14 (Sonoma) oder neuer sowie Node.js 20 oder neuer.
Wie füge ich Macbeth zu Claude Code hinzu?
Du kannst es mit dem Befehl claude mcp add macbeth -- npx -y macbeth hinzufügen.
Benötigt Macbeth spezielle Berechtigungen?
Ja, die Bedienungshilfen-Berechtigung (Accessibility) ist für die UI-Inspektion und Interaktion erforderlich, und die Bildschirmaufnahme ist für Screenshots und Fenster-OCR notwendig.
Kann Macbeth mit Anwendungen funktionieren, die keine API haben?
Ja, es kann über freigegebene Electron-Interfaces arbeiten und auf visuelle Fallbacks wie Screenshots und OCR zurückgreifen, wenn Accessibility-Metadaten nicht verfügbar sind.