mac-use-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_permissionsA | Check whether macOS Accessibility and Screen Recording permissions are granted. Returns status for each permission and instructions for any that are missing. |
| waitA | Pause execution for a specified duration. Useful for waiting between UI operations. |
| get_screen_infoA | Retrieve display configuration: number of displays, per-display resolution, origin, and scale factor. |
| get_cursor_positionA | Get the current mouse cursor position in screen coordinates. |
| screenshotA | Capture a screenshot of the macOS screen. Supports full screen, a rectangular region, or a specific window by title. Returns a base64-encoded image with dimension metadata. Do not narrate visual observations or coordinate calculations. Brief task progress updates are acceptable. |
| clickA | Click at the specified screen coordinates. Supports left/right/middle button, single/double/triple click, and modifier keys. Do not narrate visual observations or coordinate calculations. Brief task progress updates are acceptable. |
| move_mouseA | Move the mouse cursor to the specified screen coordinates without clicking. Do not narrate visual observations or coordinate calculations. Brief task progress updates are acceptable. |
| scrollB | Scroll at the specified screen coordinates in the given direction. Do not narrate visual observations or coordinate calculations. Brief task progress updates are acceptable. |
| dragA | Drag from one screen coordinate to another over a specified duration. Best practices for window dragging:
Do not narrate visual observations or coordinate calculations. Brief task progress updates are acceptable. |
| type_textA | Type text at the current cursor position using clipboard paste. Supports full Unicode including CJK characters and emoji. Temporarily replaces clipboard contents. Non-text clipboard content (images, files) will be lost permanently. If secure input is active (e.g. password fields), returns a note suggesting clipboard_write + press_key("cmd+v") as an alternative. |
| press_keyA | Simulate a key press with optional modifiers. Accepts a key combo string like "cmd+c", "ctrl+shift+F5", or "Return". Modifiers: cmd, ctrl, shift, opt/alt. |
| list_windowsA | List visible windows with their app name, title, ID, position, size, and minimized state. Optionally filter by application name. App name supports fuzzy matching (case-insensitive, partial names like 'chrome' for 'Google Chrome'). |
| focus_windowA | Activate an application and optionally raise a specific window by title. App name supports fuzzy matching. |
| open_applicationA | Launch an application by name or bundle identifier. App name supports fuzzy matching (e.g. 'chrome' → 'Google Chrome'). |
| clipboard_readA | Read the current contents of the macOS clipboard as plain text. |
| clipboard_writeA | Write text to the macOS clipboard. |
| click_menuA | Click a menu bar item in an application. Specify the menu path as "Menu > Submenu > Item" (e.g., "File > Save As...", "View > Sort By > Name"). |
| get_ui_elementsA | Query visible UI elements of an application via macOS Accessibility API. Returns element roles, titles, positions (screen coordinates), sizes, and states. May return text content from visible UI elements including sensitive data (passwords in non-secure fields, messages, etc.). Positions are in logical screen coordinates — pass directly to click tool. Coverage varies: native apps expose rich trees; Electron/web apps may expose partial trees; games/custom UIs may expose nothing. Requires Accessibility permission. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 18 tools
Each tool has a clearly distinct purpose with no significant overlap. For example, click handles screen coordinate clicks, click_menu handles menu navigation, and drag handles dragging gestures, all serving unique functions. Even clipboard_read and clipboard_write are clearly separated from type_text, which uses clipboard paste for typing.
All tool names follow a consistent snake_case verb_noun pattern, such as check_permissions, click_menu, and get_screen_info. There are no deviations in naming conventions, making the set predictable and easy to understand.
With 18 tools, the server provides comprehensive coverage for macOS UI automation, including input simulation, window management, clipboard operations, and system queries. Each tool serves a specific, necessary function without redundancy, fitting well within the typical 3-15 range for such a domain.
The toolset offers complete coverage for macOS UI automation, including permissions checking, mouse/keyboard input, window/app control, clipboard management, and system information retrieval. There are no obvious gaps; tools like wait and type_text address edge cases, ensuring agents can handle full workflows without dead ends.