mcp-server-macos-use

MCP-сервер на Swift дает агенту управлять любым приложением macOS: кликать, печатать и читать дерево интерфейса

  • 355 ★ репозитория
  • Последний коммит
MCP-сервер

Широкий доступ

Почему такой уровень

  • Сервер кликает мышью и печатает текст в любом приложении, поэтому агент может отправить письмо, удалить файл или нажать кнопку оплаты
  • Права Универсального доступа и записи экрана дают чтение содержимого окон, включая пароли на экране
  • Каждый ответ сохраняет на диск скриншот и полное дерево интерфейса
Все причины и проверки

mediar-ai/mcp-server-macos-use

Установка

Ручная установка

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

MCP-серверШирокий доступ414Звезды репозитория

CLI и MCP-сервер для macOS: скриншоты, разбор интерфейса через accessibility и управление приложениями по кликам и вводу

MCP-серверШирокий доступ5,4 тыс.Звезды репозитория

Open Computer Use

open-computer-use

Открытый MCP-сервер для управления рабочим столом: агент читает состояние приложений и кликает, печатает, скроллит на macOS, Linux и Windows

MCP-серверШирокий доступ2,8 тыс.Звезды репозитория

MCP-сервер для AppleScript: агент запускает скрипты и управляет приложениями Mac, от заметок и календаря до файлов

MCP-серверШирокий доступ465Звезды репозитория

MCP-сервер для управления Windows: агент открывает приложения, кликает и печатает, читает состояние окон и интерфейса, работает с файлами и PowerShell

MCP-серверШирокий доступ10,7 тыс.Звезды репозитория

Сравнение с похожими

Записи с тем же главным запросом: чем они отличаются.

ЗаписьОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
mcp-server-macos-use (эта запись)нетне нужна355
Remote macOS Use — управление удаленным MacнетAPI-ключ490показывает экран удаленного Mac по VNC, а этот сервер работает с локальными приложениями
Open Computer Useнетне нужна2 756открытый MCP-сервер управления рабочим столом на другой реализации

Коротко о README

Основная страница короткая и описывает пять инструментов, а полное описание с шестым инструментом для прокрутки и системными требованиями лежит в llms.txt. Под задачи конкретной команды автор предлагает доработать сервер по запросу через issue или почту.

Бейдж для README

Сообщить о проблеме

Foxx AImcp-server-macos-use
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.