mcp-server-macos-use
MCP-сервер на Swift дает агенту управлять любым приложением macOS: кликать, печатать и читать дерево интерфейса
- 355 ★ репозитория
- Последний коммит
Широкий доступ
Почему такой уровень
- Сервер кликает мышью и печатает текст в любом приложении, поэтому агент может отправить письмо, удалить файл или нажать кнопку оплаты
- Права Универсального доступа и записи экрана дают чтение содержимого окон, включая пароли на экране
- Каждый ответ сохраняет на диск скриншот и полное дерево интерфейса
Установка
- Работает в
Ручная установка
swift build -c releaseВыполняется в клоне репозитория на macOS 13 или новее. Запуск: .build/release/mcp-server-macos-use, сервер общается по stdio.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Сервер кликает мышью и печатает текст в любом приложении, поэтому агент может отправить письмо, удалить файл или нажать кнопку оплаты
- Права Универсального доступа и записи экрана дают чтение содержимого окон, включая пароли на экране
- Каждый ответ сохраняет на диск скриншот и полное дерево интерфейса
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
mcp-server-macos-use — MCP-сервер на Swift, который работает с окнами macOS через системные API универсального доступа AXUIElement и CGEvent. Пиксели экрана он не сравнивает. Агент открывает приложение, получает дерево элементов интерфейса и действует по нему: кликает, печатает и нажимает клавиши. Сервер общается с клиентом по stdio, а для Claude Desktop и других клиентов MCP подходит одна запись в конфигурации. Инструментов шесть. Первый, macos-use_open_application_and_traverse, открывает или активирует приложение по имени, идентификатору пакета или пути и читает его интерфейс. Остальные принимают идентификатор процесса. Клик задают координатами либо словом из подписи элемента и ролью вроде AXButton, а двойной и правый клик включаются флагами. За один вызов можно кликнуть, ввести текст и нажать клавишу. Отдельные инструменты печатают текст, нажимают клавишу с модификаторами и прокручивают окно, а последний обновляет обход без действия. Каждый ответ содержит краткую сводку и путь к файлу со всем деревом доступности и скриншотом. Агент ищет нужный элемент по этому файлу через Grep и Read, поэтому в контекст не попадает весь экран. Необязательные параметры обходят дерево до и после действия и возвращают только изменения, а обход можно ограничить видимыми элементами.
Для кого. Для разработчиков и пользователей Mac, которым нужно, чтобы Claude Code, Cursor или Claude Desktop управляли обычными приложениями Mac.
Подходит, если
- Нужно автоматизировать приложение, у которого нет API или скриптов, например настройки системы или стороннюю программу
- Агент должен найти кнопку по подписи: Submit, Open, Save
- Нужно открыть приложение, заполнить форму и нажать Return за один вызов
- Вы строите сценарий проверки интерфейса, где важна смена состояния до и после клика
- Нужно, чтобы агент искал элементы в текстовом дереве и не пересылал в модель скриншоты целиком
Не подходит, если
- У вас Windows или Linux: сервер работает только на macOS 13 и новее
- У нужного приложения есть нормальный API или MCP-сервер: прямая интеграция надежнее, чем клики по интерфейсу
- Нужен веб-браузер с DOM: для страниц лучше браузерные инструменты, а сервер видит их как обычное окно
- Нельзя выдавать приложению права универсального доступа: без них сервер не получит дерево и не сможет кликать
Пример запроса к агенту
Открой Калькулятор, посчитай 125 умножить на 8 и скажи, что показывает экранMCP
- Транспорт
- stdio
- Авторизация
- не нужна
Ограничения
- Только macOS 13 и новее, для сборки командой swift build нужны Swift 5.9 и Xcode Command Line Tools.
- Лицензии в репозитории расходятся. Файл LICENSE — Business Source License 1.1: рабочее использование разрешено только в некоммерческих и учебных целях, а 9 апреля 2028 года код перейдет на MIT. В package.json при этом указана MIT, поэтому до коммерческого применения уточните условия у автора.
- Клики и нажатия идут через CGEvent в общий поток событий системы, и приложение не отличает их от ввода живого пользователя.
Как отключить. Удалите запись mcp-server-macos-use из конфигурации клиента, например из claude_desktop_config.json, и перезапустите клиента. Затем уберите приложение из списка Универсального доступа в настройках системы, чтобы закрыть права на управление интерфейсом. Собранный бинарник лежит в .build, его можно удалить вместе с папкой проекта.
Частые вопросы
Как подключить mcp-server-macos-use к Claude Desktop?
Соберите сервер командой `swift build -c release` и добавьте в claude_desktop_config.json блок mcpServers с ключом mcp-server-macos-use и полем command, где указан абсолютный путь к собранному файлу. Затем перезапустите Claude Desktop.
Чем сервер читает интерфейс приложения?
Через API универсального доступа macOS: AXUIElement для элементов и CGEvent для действий. Сервер строит дерево элементов и картинку не распознает. Каждый ответ содержит путь к файлу с деревом и скриншотом, по файлу агент ищет нужный элемент.
Как кликнуть по кнопке с подписью, а не по координатам?
В macos-use_click_and_traverse вместо x и y передайте element с частью подписи без учета регистра, например Open, и при необходимости role, например AXButton. Для двойного и правого клика есть флаги doubleClick и rightClick.
Нужно ли разрешение на запись экрана?
Чтение дерева требует права Универсального доступа. Скриншот приходит с каждым ответом, поэтому на практике может понадобиться и запись экрана. Выдайте разрешения тому приложению, из которого запускается сервер.
Можно ли использовать сервер в коммерческом проекте?
Только с оговорками. Файл LICENSE — BSL 1.1, он разрешает рабочее использование лишь в некоммерческих и учебных целях до перехода на MIT 9 апреля 2028 года. В package.json указана MIT, так что напишите автору на matt@mediar.ai до коммерческого запуска.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыMCP-сервер для macOS: агент двигает мышь, печатает, управляет окнами и снимает экран, когда у приложения нет API
CLI и MCP-сервер для macOS: скриншоты, разбор интерфейса через accessibility и управление приложениями по кликам и вводу
Open Computer Use
open-computer-use
Открытый MCP-сервер для управления рабочим столом: агент читает состояние приложений и кликает, печатает, скроллит на macOS, Linux и Windows
MCP-сервер для AppleScript: агент запускает скрипты и управляет приложениями Mac, от заметок и календаря до файлов
MCP-сервер для управления Windows: агент открывает приложения, кликает и печатает, читает состояние окон и интерфейса, работает с файлами и PowerShell
MCP-сервер дает агенту управлять окнами и приложениями: он читает экран как структуру и действует по имени элемента
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| mcp-server-macos-use (эта запись) | нет | не нужна | 355 | |
| Remote macOS Use — управление удаленным Mac | нет | API-ключ | 490 | показывает экран удаленного Mac по VNC, а этот сервер работает с локальными приложениями |
| Open Computer Use | нет | не нужна | 2 756 | открытый MCP-сервер управления рабочим столом на другой реализации |
Коротко о README
Основная страница короткая и описывает пять инструментов, а полное описание с шестым инструментом для прокрутки и системными требованиями лежит в llms.txt. Под задачи конкретной команды автор предлагает доработать сервер по запросу через issue или почту.