computer-use-mac-mcp
Provides desktop automation for macOS, enabling AI agents to capture screenshots, control mouse and keyboard, and manage multi-monitor setups.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@computer-use-mac-mcpTake a screenshot of my main display"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
computer-use-mac-mcp
中文文档 | English
MCP server for macOS desktop automation — screenshot, click, type, scroll and more.
Gives Claude (or any MCP-compatible agent) the ability to see and control your Mac. Implements the standard mcp__computer-use__* tool interface so it works with Claude Desktop, Claude Code, Cursor, and any other MCP client — no API key required at the tool level.
Pure JS, no native addons. Uses screencapture, osascript (JXA/AppKit), and CoreGraphics CGEvent.
Highlights
Standard MCP interface — plug into any MCP-compatible client, not locked to a specific AI provider
Retina display aware — correctly scales screenshot-space coordinates to physical pixels
CJK / Unicode text input — automatically routes non-ASCII text through clipboard paste (fixes garbled Chinese/Japanese/Korean input)
Multi-monitor support —
switch_displaytool lets agents target any connected displayNo native compilation — pure JS implementation, works with Node.js ≥ 18 or Bun ≥ 1.3
Related MCP server: macinput
Requirements
macOS
Node.js ≥ 18 or Bun ≥ 1.3
Screen Recording permission — System Settings → Privacy & Security → Screen Recording
Accessibility permission — System Settings → Privacy & Security → Accessibility
Quick Start
# 1. Clone
git clone https://github.com/somethingforheheda/computer-use-mac-mcp.git
cd computer-use-mac-mcp
# 2. Install dependencies
npm install
# 3. Add to your MCP client config (see below)Claude Code CLI
computer-use is a reserved name in Claude Code CLI. Use a different name:
claude mcp add -s user mac-control /path/to/node /path/to/computer-use-mac-mcp/index.jsTools will be available as mcp__mac-control__screenshot, mcp__mac-control__left_click, etc.
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"computer-use": {
"type": "stdio",
"command": "node",
"args": ["/path/to/computer-use-mac-mcp/index.js"]
}
}
}Claude Code / jarvis-cc
{
"computer-use": {
"type": "stdio",
"command": "node",
"args": ["/path/to/computer-use-mac-mcp/index.js"]
}
}Available Tools (15)
Tool | Description |
| Capture the screen as JPEG |
| Left-click at |
| Right-click at |
| Middle-click at |
| Double-click at |
| Click and drag from one point to another |
| Move cursor without clicking |
| Scroll at |
| Get current cursor coordinates |
| Type text — auto clipboard for CJK/Unicode |
| Press a key or combo (e.g. |
| Hold a key for a specified duration |
| Capture and zoom a screen region |
| Declare which apps the agent will control |
| Switch active display for multi-monitor setups |
Coordinate System
Coordinates are in screenshot-space pixels. Always call screenshot first — the server caches the display dimensions and uses them to correctly map click coordinates to physical pixels (including Retina 2× scaling).
Multi-monitor
# Switch to external display (0 = primary, 1 = secondary, ...)
switch_display { "display": 1 }After switching, subsequent screenshot and click tools target the selected display.
How it works
Three packages under packages/:
Package | Responsibility | Implementation |
| MCP server, tool definitions, coordinate dispatch | MCP SDK + |
| Screenshot, app listing, app activation |
|
| Mouse movement, clicks, scroll, keyboard | JXA + CoreGraphics |
The entry point (index.js) wires these together and exposes them over stdio as an MCP server. No subprocess is spawned per tool call — everything runs in a single Node process.
Comparison
this project | ||
Language | JS (Node/Bun) | Python |
Interface | MCP Server (any client) | Standalone script (Claude API only) |
Retina support | ✅ | ❌ |
CJK text input | ✅ auto clipboard | ❌ garbled output |
Multi-monitor | ✅ | ❌ |
Needs API key to run | ❌ | ✅ |
Native addons | ❌ pure JS | ❌ pure Python |
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/somethingforheheda/computer-use-mac-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server