Skip to main content
Glama

macos-ui-mcp

Инструмент в стиле Playwright, который позволяет Claude осматривать и управлять интерфейсом нативного macOS-приложения, пока вы его создаёте — без разрешения на запись экрана.

Вместо захвата экрана приложение отрисовывает само себя. Крошечный debug-only Swift-пакет (swift-harness/) предоставляет дерево представлений приложения и внутрипроцессный PNG-рендерер через localhost HTTP; MCP-сервер (src/) превращает это в инструменты, которые может вызывать Claude: list_windows, get_ui_tree, screenshot, click, type, wait_for, invoke_action.

См. IDEA.md с обоснованием дизайна, сравнением архитектур и целями проекта.

Claude Code ──MCP(stdio)──> macos-ui-mcp server ──HTTP──> AppMCPHarness (in your app, DEBUG only)

Структура

Путь

Что это

src/

MCP-сервер (TypeScript)

src/contract.ts

формат HTTP-протокола harness (типы + zod-схемы)

test/

набор vitest + in-memory mock harness; e2e.test.ts управляет реальным приложением

swift-harness/

готовый эталонный harness для macOS-приложения

showcase/

минимальное AppKit-приложение, подключающее harness — используется в e2e-тесте

Related MCP server: Desktop Pilot MCP

Использование

1. Добавьте harness в ваше macOS-приложение (только DEBUG-сборки)

См. swift-harness/README.md. Одна строка в вашем AppDelegate:

#if DEBUG
AppMCP.start()   // opens http://127.0.0.1:8787
#endif

2. Соберите MCP-сервер

npm install
npm run build

3. Зарегистрируйте его в Claude Code

// .mcp.json
{
  "mcpServers": {
    "macos-ui-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/macos-ui-mcp/dist/index.js"],
      "env": { "MACOS_UI_MCP_HARNESS_URL": "http://127.0.0.1:8787" }
    }
  }
}

Теперь, когда ваше приложение запущено в debug-сборке, попросите Claude вызвать get_ui_tree или screenshot — без запроса на запись экрана.

Разработка

npm test           # 38 unit tests, no real app needed (mock harness); e2e is skipped
npm run typecheck
npm run dev         # run the server against a live harness

npm run test:e2e    # builds showcase/, launches it, runs the real tools against the
                    # real Swift harness. Needs a logged-in macOS GUI session.

npm run test:e2e — доказательство целей: он проверяет, что get_ui_tree видит элементы управления, screenshot возвращает настоящий внутрипроцессный PNG, а click / type изменяют живой интерфейс — без разрешения на запись экрана.

Грамматика селекторов

Используется в click, type, screenshot, wait_for:

Форма

Совпадения

#save

узел, чей id равен save (задаётся через .accessibilityIdentifier("save") в приложении)

Button "Save"

роль button и метка Save

"Save"

любой узел с меткой Save

Button

любой узел с ролью button

click / type отклоняют неоднозначные селекторы (более одного совпадения) и сообщают id кандидатов.

Статус

  • v0.1 — macOS / AppKit. Реализованы все 7 инструментов. 38 модульных тестов + end-to-end тест из 5 сценариев, который управляет приложением showcase/ через реальный Swift harness. Проверено: дерево, внутрипроцессный PNG-снимок, нажатие, установка текста, хуки действий — запись экрана выключена.

  • Ещё нет — нативное дерево SwiftUI (пока только интроспекция AppKit), адаптер для Windows, инспекция сторонних приложений через Accessibility API.

Лицензия

MIT © 2026 Thang Duong

macos-ui-mcp

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

View all related MCP servers

Related MCP Connectors

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

  • Live browser debugging for AI assistants — DOM, console, network via MCP.

  • Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.

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/thangduonghuu/macos-ui-mcp'

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