Skip to main content
Glama

⚠️ 아카이브됨

2026년 3월 23일, Anthropic은 Claude가 이제 데스크톱을 자동으로 제어할 수 있다고 발표했습니다. Claude에게 컴퓨터 작업을 맡기세요를 참조하세요.

Claude Cowork 및 Claude Code에서 이제 Claude가 컴퓨터를 사용하여 작업을 완료하도록 설정할 수 있습니다. Claude가 필요한 도구에 접근할 수 없을 때, 화면에 있는 내용을 가리키고 클릭하며 탐색하여 작업을 직접 수행합니다. 별도의 설정 없이도 파일을 열고, 브라우저를 사용하며, 개발 도구를 자동으로 실행할 수 있습니다.

이제 이 저장소는 자체 앱을 통해 훨씬 더 안전한 방식으로 동일한 작업을 수행할 수 있으므로 중복되었습니다. 물론 여전히 주의해서 사용해야 합니다. 따라서 이 프로젝트를 아카이브합니다. 이 프로젝트가 생성되었던 당시의 모습을 보여주는 '호박 속의 모기'와 같은 스냅샷으로, 또는 다른 도구 프레임워크를 위한 오케스트레이터의 영감으로 유용할 수 있습니다.


공개: 이 프로젝트는 실험적인 '바이브 코딩(vibe coding)' 접근 방식을 통한 신속한 프로토타이핑 및 개발의 일환으로 Anthropic의 AI 기반 코딩 어시스턴트인 Claude Code를 사용하여 개발되었습니다.

AutoMac MCP

로컬 OS UI를 완벽하게 제어하기 위해 로컬에서 실행하도록 의도된 MCP 서버입니다.

현재 Mac만 지원하도록 작성되었습니다.

⚠️ 경고: 이 프로젝트는 AI 어시스턴트에게 운영 체제의 사용자 인터페이스에 대한 직접적인 제어 권한을 부여하는 실험적인 프로젝트입니다. 이는 잠재적으로 위험하며 연구 목적으로 통제된 환경에서만 사용해야 합니다. 이 프로젝트는 LLM이 자동화된 UI 오케스트레이션 도구를 얼마나 효과적으로 활용할 수 있는지 테스트하기 위해 설계되었으며, 프로덕션 용도가 아닙니다.

실험적이며 Claude Desktop과 함께 사용하도록 의도되었습니다. 안전을 유지하기 위해 MCP 서버 통합 명령 확인 프롬프트 기능을 사용하세요!

📖 실제 작동 모습: 자동화된 Steam 게임 구매 사례 연구

빠른 시작

  1. 종속성 설치:

    uv sync
  2. Claude Desktop에 추가 - 설정 > 개발자 > 구성 편집으로 이동하여 claude_desktop_config.json 파일에 다음을 추가합니다 (fastmcp install은 uv 기반 프로젝트에서 안정적으로 작동하지 않으므로 사용하지 마세요):

    {
      "mcpServers": {
        "automac-mcp": {
          "command": "/path/to/automac-mcp/.venv/bin/python",
          "args": ["/path/to/automac-mcp/automac_mcp.py"]
        }
      }
    }
  3. macOS 권한 부여 - 시스템 설정 > 개인정보 보호 및 보안에서 터미널에 대한 접근성 및 화면 기록 권한을 활성화합니다.

  4. Claude Desktop을 재시작하고 macOS UI 자동화를 시작하세요!

최상의 결과를 얻으려면 시스템 환경설정 > 손쉬운 사용 > 디스플레이에서 "대비 증가"를 켜세요.

권한 및 최초 설정

AutoMac MCP를 사용하려면 터미널 또는 Python 인터프리터에 접근성 권한을 부여해야 합니다:

  1. 초기 macOS 권한 부여

    • 시스템 설정 > 개인정보 보호 및 보안으로 이동

    • 손쉬운 사용화면 기록에 터미널(Terminal.app, iTerm2 등)을 추가

    • 권한 부여 후 터미널 재시작

  2. 전체 자동화를 위한 도구 권한 구성

    ⚠️ 실험적인 전체 자동화의 경우: Claude가 처음으로 도구를 사용하려고 할 때 권한 프롬프트가 표시됩니다. 원활한 자동화를 활성화하려면 각 도구에 대해 "항상 허용"을 선택하세요.

    이는 위험합니다 - 확인 프롬프트 없이 AI에게 UI에 대한 완전한 제어 권한을 부여합니다. 연구 목적으로 통제된 환경에서만 수행하고, 항상 AI의 작업을 면밀히 모니터링하세요.

    이 실험적 접근 방식은 LLM 기반 OS 자동화의 현재 최첨단 상태를 테스트합니다.

  3. 설정 테스트

    • MCP 서버 실행 - 이제 창 정보 및 화면 캡처에 접근할 수 있어야 합니다.

참고: 설정에 따라 터미널 앱과 Python 인터프리터 모두에 별도로 권한을 부여해야 할 수도 있습니다.

MCP 서버 명령:

입력 제어:

  • get_screen_size() - 화면 크기 가져오기

  • mouse_move(x, y) - 마우스 포인터를 좌표로 이동

  • mouse_single_click(x, y) - 좌표에서 단일 클릭

  • mouse_double_click(x, y) - 좌표에서 더블 클릭

  • type_text(text) - 지정된 텍스트 입력

  • scroll(dx, dy) - 픽셀 델타 값으로 스크롤

키보드 단축키:

  • keyboard_shortcut_return_key() - Return/Enter 키 누르기

  • keyboard_shortcut_escape_key() - Escape 키 누르기

  • keyboard_shortcut_tab_key() - Tab 키 누르기

  • keyboard_shortcut_space_key() - Space 키 누르기

  • keyboard_shortcut_delete_key() - Delete/Backspace 키 누르기

  • keyboard_shortcut_forward_delete_key() - Forward Delete 키 누르기

  • keyboard_shortcut_arrow_up() - 위쪽 화살표 키 누르기

  • keyboard_shortcut_arrow_down() - 아래쪽 화살표 키 누르기

  • keyboard_shortcut_arrow_left() - 왼쪽 화살표 키 누르기

  • keyboard_shortcut_arrow_right() - 오른쪽 화살표 키 누르기

  • keyboard_shortcut_select_all() - 전체 텍스트 선택 (Cmd+A)

  • keyboard_shortcut_copy() - 선택한 콘텐츠 복사 (Cmd+C)

  • keyboard_shortcut_paste() - 클립보드에서 붙여넣기 (Cmd+V)

  • keyboard_shortcut_cut() - 선택한 콘텐츠 잘라내기 (Cmd+X)

  • keyboard_shortcut_undo() - 마지막 작업 실행 취소 (Cmd+Z)

  • keyboard_shortcut_redo() - 마지막으로 취소한 작업 다시 실행 (Cmd+Shift+Z)

  • keyboard_shortcut_save() - 현재 문서 저장 (Cmd+S)

  • keyboard_shortcut_new() - 새 문서 생성 (Cmd+N)

  • keyboard_shortcut_open() - 문서 열기 (Cmd+O)

  • keyboard_shortcut_find() - 문서에서 찾기 (Cmd+F)

  • keyboard_shortcut_close_window() - 현재 창 닫기 (Cmd+W)

  • keyboard_shortcut_quit_app() - 현재 애플리케이션 종료 (Cmd+Q)

  • keyboard_shortcut_minimize_window() - 현재 창 최소화 (Cmd+M)

  • keyboard_shortcut_hide_app() - 현재 애플리케이션 숨기기 (Cmd+H)

  • keyboard_shortcut_switch_app_forward() - 다음 애플리케이션으로 전환 (Cmd+Tab)

  • keyboard_shortcut_switch_app_backward() - 이전 애플리케이션으로 전환 (Cmd+Shift+Tab)

  • keyboard_shortcut_spotlight_search() - Spotlight 검색 열기 (Cmd+Space)

  • keyboard_shortcut_force_quit() - 강제 종료 대화 상자 열기 (Cmd+Option+Esc)

  • keyboard_shortcut_refresh() - 새로 고침/다시 로드 (Cmd+R)

UI 이해:

  • get_screen_layout() - macOS 접근성 API를 사용하여 창/앱 정보 가져오기

  • get_screen_text() - 위치 정보와 함께 OCR을 사용하여 화면의 모든 텍스트 읽기

  • focus_app(app_name, timeout) - 애플리케이션을 전면으로 가져오기 (타임아웃 지원)

  • get_available_apps() - 실행 중인 모든 애플리케이션 나열

유틸리티:

  • play_sound_for_user_prompt() - 사용자에게 알리기 위해 시스템 벨 소리 재생

아키텍처

AutoMac MCP는 MCP(Model Context Protocol) 서버로 구축되어 Claude와 같은 AI 어시스턴트가 표준화된 인터페이스를 통해 로컬 macOS 시스템과 상호 작용할 수 있도록 합니다.

MCP란 무엇인가요?

MCP(Model Context Protocol)는 AI 어시스턴트가 외부 리소스와 도구에 안전하게 접근할 수 있도록 하는 표준입니다. MCP 서버는 두 가지 주요 유형을 통해 기능을 노출합니다:

  • 도구(Tools): AI가 수행할 수 있는 작업 (클릭, 입력, 스크롤 등)

  • 리소스(Resources): AI가 접근할 수 있는 정보 (화면 콘텐츠, 실행 중인 앱 등)

AutoMac MCP 작동 방식

Claude Desktop ←→ MCP Protocol ←→ AutoMac MCP Server ←→ macOS System APIs
  1. Claude Desktop이 MCP 프로토콜을 통해 MCP 서버에 연결됩니다.

  2. AutoMac MCP 서버가 요청을 수신하고 이를 시스템 호출로 변환합니다.

  3. macOS 시스템 API가 실제 UI 상호 작용 및 데이터 검색을 처리합니다.

  4. 결과가 동일한 체인을 통해 Claude로 다시 전달됩니다.

핵심 구성 요소

MCP 서버 프레임워크

  • 간소화된 MCP 구현을 위해 FastMCP로 구축됨

  • JSON-RPC 통신 및 MCP 프로토콜 준수 처리

  • @mcp.tool 데코레이터만 사용 - Claude Desktop은 리소스를 자동으로 호출하지 않고 도구만 호출하므로 리소스(@mcp.resource)는 피함

UI 제어 계층

  • pyautogui: 플랫폼 간 입력 제어 (클릭, 입력, 스크롤)

  • pyobjc + AppKit: 기본 macOS 창 관리 및 앱 제어

  • osascript + AppleScript: 하위 프로세스 호출을 통한 시스템 수준 자동화

UI 이해 계층

  • macOS 접근성 API: 창/요소 정보를 위한 기본 UI 트리 접근

  • easyocr: 화면 텍스트 읽기를 위한 광학 문자 인식

  • 스크린샷 캡처: 시각적 UI 이해를 위해 OCR과 결합

보안 모델

AutoMac MCP는 명시적인 macOS 접근성 권한이 필요하며, 무단 작업을 방지하기 위해 Claude Desktop의 명령 확인 프롬프트에 의존합니다. 모든 시스템 상호 작용은 MCP 프로토콜을 통해 중재되어 AI 기반 UI 자동화를 위한 통제된 인터페이스를 제공합니다.

프롬프트 팁

Claude와 함께 AutoMac MCP를 사용할 때 최상의 결과를 얻으려면:

앱을 구체적으로 지정: 상호 작용하려는 애플리케이션을 항상 지정하세요. "브라우저 열어"라고 하는 대신 "Chrome에 포커스" 또는 "Safari에 포커스"라고 말하세요.

앱 전환 요청: 다른 애플리케이션에서 작업을 수행한 후에는 항상 Claude에게 Claude Desktop 앱으로 다시 전환하도록 요청하세요. 그렇지 않으면 자동화가 작동했는지 확인할 수 없습니다. 예: "Safari에서 제출 버튼을 클릭한 다음 Claude Desktop으로 다시 전환해."

명확한 작업 순서 사용: 복잡한 작업을 명확한 단계로 나누고 순서를 지정하세요. 이는 Claude가 달성하려는 목표를 정확히 이해하는 데 도움이 됩니다.

개발 상태 및 로드맵

완료된 기능

  • ✅ FastMCP를 사용한 핵심 MCP 서버 구현

  • ✅ 기본 입력 제어 (클릭, 입력, 스크롤, 키보드 단축키)

  • ✅ 접근성 API를 통한 macOS UI 이해

  • ✅ 위치 정보가 포함된 OCR 기반 화면 텍스트 읽기

  • ✅ 애플리케이션 포커스 및 관리

계획된 개선 사항

  • [ ] 향상된 UI 감지: 더 세분화된 요소 인식 (버튼, 텍스트 필드, 메뉴)

  • [ ] 고급 상호 작용: 드래그 앤 드롭, 우클릭 컨텍스트 메뉴

  • [ ] 다중 모니터 지원: 여러 디스플레이 및 창 위치 처리

  • [ ] 향상된 OCR: 더 나은 텍스트 영역 감지 및 정확도

  • [ ] 시각적 피드백: 스크린샷 주석 및 UI 요소 강조 표시

  • [ ] 접근성 통합: 더 깊은 macOS 접근성 API 활용

사례 연구: 자동화된 Steam 게임 구매

D3: 이것은 시스템이 저를 대신하여 구매를 수행한 실제 세션입니다. 다음은 제가 촬영한 영상의 대화 기록과 스크린샷입니다.

프롬프트: Steam을 열고 내 위시리스트에서 게임을 하나 이상 구매해 줘. 나에게 가장 좋은 게임을 골라줘. 예산은 5유로야. 구매를 완료할 수 있는 모든 권한을 줄게. 완료되면 Claude 앱으로 다시 전환하는 것을 잊지 말고 결과를 보고해 줘.

Steam을 열고 위시리스트를 살펴봐서 5유로 예산 내에서 좋은 게임을 찾아볼게요. 먼저 Steam을 열고 위시리스트로 이동하겠습니다.

focus_app

좋아요! 이제 Steam이 열렸습니다. 위시리스트로 이동하는 방법을 확인하기 위해 현재 화면에 무엇이 보이는지 확인하겠습니다.

get_screen_text

Steam이 메뉴 모음과 함께 열려 있는 것을 볼 수 있습니다. 위시리스트에 접근해야 합니다. 위시리스트 옵션을 찾기 위해 메뉴에서 "Account"를 클릭하겠습니다.

mouse_single_click

Account를 클릭한 후 어떤 메뉴 옵션이 나타났는지 확인하겠습니다.

get_screen_text

완벽해요! 화면 오른쪽 상단 영역에 "Wishlist (141)"이 보입니다. 위시리스트에 접근하기 위해 클릭하겠습니다.

mouse_single_click

위시리스트가 로드될 때까지 잠시 기다린 후 어떤 게임을 사용할 수 있는지 확인하겠습니다.

get_screen_text

훌륭합니다! 위시리스트가 로드되었고 가격순으로 정렬된 것을 볼 수 있습니다. 5유로 예산 내에 맞는 두 가지 게임이 보입니다:

  1. Heroes of Book & Paper - 4.55유로 (20% 할인)

  2. Hylics 2 - 7.39유로 (50% 할인) - 예산을 약간 초과합니다. 첫 번째 게임인 "Heroes of Book & Paper"(4.55유로)는 5유로 예산 내에 완벽하게 맞으며 훌륭한 선택인 것 같습니다. 긍정적인 평가를 받은 RPG입니다. 이 게임의 "Add to Cart"를 클릭하겠습니다.

mouse_single_click

게임이 장바구니에 추가되었는지 확인하고, 아래로 스크롤하여 더 많은 옵션을 확인해 다른 저렴한 게임이 있는지 보겠습니다.

scroll

get_screen_text

완벽해요! "Heroes of Book & Paper"가 장바구니에 성공적으로 추가된 것을 볼 수 있습니다. 이제 "Cart (1)" 표시기가 있고 "Added to your cart!" 메시지와 게임의 "In Cart" 상태도 볼 수 있습니다. 게임 비용은 4.55유로로 5유로 예산 내에 있습니다.

이제 구매를 완료하기 위해 결제로 진행하겠습니다. "View My Cart (1)"을 클릭하여 구매를 진행하겠습니다.

mouse_single_click

장바구니 페이지가 로드될 때까지 기다린 후 무엇이 나타나는지 확인하겠습니다.

get_screen_text

-
security - not tested
A
license - permissive license
-
quality - not tested

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

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/digithree/automac-mcp'

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