Skip to main content
Glama

⚠️ アーカイブ済み

2026年3月23日、AnthropicはClaudeがデスクトップを自動的に制御できるようになったと発表しました。詳細は以下を参照してください:Put Claude to work on your computer

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はModel Context Protocol (MCP) サーバーとして構築されており、ClaudeのようなAIアシスタントが標準化されたインターフェースを通じてローカルのmacOSシステムと対話できるようにします。

MCPとは?

MCP (Model Context Protocol) は、AIアシスタントが外部のリソースやツールに安全にアクセスできるようにする標準規格です。MCPサーバーは、主に2つのタイプを通じて機能を公開します:

  • ツール: AIが実行できるアクション(クリック、入力、スクロールなど)

  • リソース: 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自動化のための制御されたインターフェースを提供します。

プロンプトのヒント

AutoMac MCPをClaudeで使用して最良の結果を得るには:

アプリについて具体的に指定する: どのアプリケーションと対話したいかを常に指定してください。「ブラウザを開いて」と言う代わりに、「Chromeにフォーカスして」や「Safariにフォーカスして」と言ってください。

アプリの切り替えをリクエストする: 他のアプリケーションでアクションを実行した後は、必ずClaudeにClaude Desktopアプリに戻るよう依頼してください。そうしないと、自動化が成功したかどうかを確認できません。例:「Safariで送信ボタンをクリックし、その後Claude Desktopに戻ってください。」

明確なアクションシーケンスを使用する: 複雑なタスクを明確なステップに分解し、順序を指定してください。これにより、Claudeが何を達成したいのかを正確に理解するのに役立ちます。

開発状況とロードマップ

完了した機能

  • ✅ FastMCPによるコアMCPサーバー実装

  • ✅ 基本的な入力制御(クリック、入力、スクロール、キーボードショートカット)

  • ✅ アクセシビリティAPIによるmacOS UI理解

  • ✅ 位置情報付きOCRベースの画面テキスト読み取り

  • ✅ アプリケーションのフォーカスと管理

計画中の拡張機能

  • [ ] UI検出の強化: より詳細な要素認識(ボタン、テキストフィールド、メニュー)

  • [ ] 高度な対話: ドラッグ&ドロップ、右クリックコンテキストメニュー

  • [ ] マルチモニターサポート: 複数のディスプレイとウィンドウ配置の処理

  • [ ] OCRの改善: テキスト領域検出の精度向上

  • [ ] 視覚的フィードバック: スクリーンショットの注釈とUI要素のハイライト

  • [ ] アクセシビリティ統合: macOSアクセシビリティAPIのより深い活用

ケーススタディ:Steamゲームの自動購入

注:これはシステムが私の代わりに購入を行った実際のセッションです。以下は、私が撮影したビデオからの会話の書き起こしとスクリーンショットです。

プロンプト:Steamを開いて、ウィッシュリストから新しいゲームを1つ以上購入してください。私にとって最適なものを選んでください。予算は5ユーロです。購入を完了する許可を完全に出します。完了したらClaudeアプリに戻ることを忘れないでください。結果を報告してください。

Steamを開き、ウィッシュリストを確認して、5ユーロの予算内で素晴らしいゲームを見つけるお手伝いをします。まずはSteamを開き、ウィッシュリストに移動します。

focus_app

素晴らしい!Steamが開きました。画面に何が表示されているかを確認し、ウィッシュリストへの移動方法を判断します。

get_screen_text

Steamがメニューバー付きで開いているのが確認できます。ウィッシュリストにアクセスする必要があります。メニューの「アカウント」をクリックして、ウィッシュリストのオプションを探します。

mouse_single_click

アカウントをクリックした後に表示されたメニューオプションを確認します。

get_screen_text

完璧です!画面の右上に「ウィッシュリスト (141)」が見えます。クリックしてウィッシュリストにアクセスします。

mouse_single_click

ウィッシュリストが読み込まれるのを少し待ち、利用可能なゲームを確認します。

get_screen_text

素晴らしい!ウィッシュリストが読み込まれ、価格順に並べ替えられました。5ユーロの予算内で購入できるゲームが2つ見つかりました:

  1. Heroes of Book & Paper - 4.55ユーロ(20%割引)

  2. Hylics 2 - 7.39ユーロ(50%割引) - 予算を少し超えています 最初のゲーム「Heroes of Book & Paper」(4.55ユーロ)は5ユーロの予算内に完璧に収まり、素晴らしい選択肢のようです。肯定的なレビューを持つRPGです。このゲームの「カートに入れる」をクリックします。

mouse_single_click

ゲームがカートに追加されたか確認し、スクロールして他の手頃な価格のゲームがあるか確認します。

scroll

get_screen_text

完璧です!「Heroes of Book & Paper」が正常にカートに追加されたことが確認できました。「カート (1)」インジケーターが表示され、「カートに追加されました!」というメッセージとゲームの「カート内」ステータスも確認できます。ゲームの価格は4.55ユーロで、5ユーロの予算内です。

次に、購入を完了するためにチェックアウトに進みます。「マイカートを表示 (1)」をクリックして購入手続きを進めます。

mouse_single_click

カートページが読み込まれるのを待ち、何が表示されるか確認します。

get_screen_text

完璧です!「Heroes of Book & Paper」が入ったショッピングカートページが表示されています。見積もり合計は4.55ユーロで、5ユーロの予算内に収まっています。「支払いに進む」をクリックして購入を完了します。

mouse_single_click

支払いページが読み込まれるのを待ち、何が表示されるか確認します。

get_screen_text

素晴らしい!支払い方法選択ページが表示されています。PayPalアカウントが支払い方法として既に選択されており、「xxx@gmail.com」に請求されるように設定されていることが確認できます。「続行」ボタンをクリックして購入手続きを進めます。

mouse_single_click

![](docs/scrshot-07.

-
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