Skip to main content
Glama

Mac Use

Local Mac desktop control for Grok and Cursor via a bundled stdio MCP server.

HID input matches Dottie: CGEvent posted on .cghidEventTap. Coordinates are screen points (main display, origin top-left). Screenshots are resized to that size, so image pixels and clicks share one space.


What it is

Surface

Use when

Mac Use (this plugin)

Native Mac apps, Finder, system UI on the user Mac

Browser Use

The task is primarily a website

Remote Linux desktop

Work on a box desktop — not this plugin

Prefer the smallest surface that fits.


Related MCP server: macinput

Install

Grok

grok plugin install /path/to/mac-use --trust

Or add the folder under ~/.grok/plugins/ (auto-trusted) and enable it.

Cursor

mkdir -p ~/.cursor/plugins/local
ln -s /path/to/mac-use ~/.cursor/plugins/local/mac-use
cd ~/.cursor/plugins/local/mac-use && npm install

Then Developer: Reload Window. Call mac_use_status.

First input/screenshot compiles server/helper.swift with swiftc (Xcode or CLT).


macOS permissions

Grant Accessibility and Screen Recording to:

  1. mac-use-helper (built next to the Swift source)

  2. The host that launched the MCP server (Grok, Cursor, or Terminal)

mac_use_status requests the TCC prompt and opens the matching Settings pane when a grant is missing. After you flip the toggle, quit and reopen Grok.


Tools

Tool

Purpose

mac_use_status

Platform, AX / Screen Recording, driver

get_screen_size

Main display points (origin top-left)

screenshot

PNG whose pixels match those points

mouse_move

Absolute x,y or relative dx,dy

click

HID click at points (or current cursor)

mouse_drag

Left-button drag in points

type_text

Unicode into the focused app (no clipboard)

key

Key + modifiers; destructive chords need confirmed

scroll

HID wheel at (x, y) by dy

Always screenshot after acting. Confirm before destructive actions. Do not paste secrets from chat into type_text.


Agent loop

  1. mac_use_status

  2. screenshot (or get_screen_size)

  3. One action in those points

  4. Screenshot again


Dev

cd ~/Desktop/projects/mac-use
npm install
npm run build-helper
npm test
npm start   # stdio MCP
  • Entry: server/index.js

  • Driver: server/driver-impl.jsserver/helper.swift

  • Cursor: .cursor-plugin/plugin.json + mcp.json

  • Grok: plugin.json + .mcp.json

  • Skill: skills/mac-use/SKILL.md


License

MIT / Steve Derico

Install Server
A
license - permissive license
A
quality
B
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 Servers

  • A
    license
    -
    quality
    D
    maintenance
    An MCP server for macOS that enables AI agents to control the desktop GUI through keyboard input, mouse actions, and screen captures. It provides stable low-level primitives for UI automation and agent-driven desktop workflows.
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    Standalone MCP server that gives AI agents full GUI control over macOS — screenshots, mouse, keyboard, apps, clipboard, and multi-display — with zero private dependencies.
    16
    MIT
  • A
    license
    -
    quality
    B
    maintenance
    MCP server for AI agents to control a Mac via screen and mouse/keyboard, supporting Anthropic Claude and OpenAI for task automation.
    203
    Apache 2.0

View all related MCP servers

Related MCP Connectors

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

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

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/stevederico/mac-use'

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