mac-use-mcp について
mac-use-mcpは、アプリを調査・操作したいAIエージェントや開発者向けのmacOSデスクトップ自動化サーバーです。画面キャプチャ、入力、ウィンドウ、アクセシビリティ要素、クリップボードを扱う18個のツールを備え、ネイティブNode.js依存関係はありません。
主な機能
- 01画面・領域・ウィンドウをキャプチャ
- 02マウスとキーボード入力を操作
- 03ウィンドウ管理とアプリ起動
- 04アクセシビリティ要素を調査
- 05クリップボードのテキストを読み書き
活用シーン
- 01デスクトップのワークフローやフォームを自動化
- 02UIをテストしてコントロールを検証
- 03画面を取得して視覚的に監視
- 04QAのためにアプリのUIを調査
MCP 対応
MCPサーバーはstdio経由で、MCPクライアントに画面、マウス、キーボード、ウィンドウ、アクセシビリティ、クリップボードを扱う18個のツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mac-use-mcp

警告
このツールは、マウス、キーボード、画面を完全に制御できます。 プライバシーを保護し、エージェントによる誤ったデータ損失を防ぐため、サンドボックス環境で使用してください。このツールを通じて実行された操作については、お客様が責任を負います。
MCP 経由で macOS デスクトップを自動化する、ネイティブ依存関係ゼロのツールです。
AI エージェントに macOS 上での目と手を与え、アプリケーションのクリック、入力、スクリーンショットの撮影、調査ができます。
ユースケース
- 自動 UI テスト — ボタンをクリックし、
get_ui_elementsで要素の状態を確認し、screenshotで画面の内容を検証します - デスクトップワークフローの自動化 —
open_applicationでアプリを起動し、type_textでフォームに入力し、click_menuでメニューを操作します - スクリーンショットによる監視 —
screenshotで画面領域を定期的にキャプチャし、視覚的な差分検出やアラートに使用します - アクセシビリティの調査 —
get_ui_elementsで UI 要素ツリーを照会し、QA やコンプライアンスの確認に役立てます - AI エージェントによるコンピューター操作 —
screenshot、click、type_textなどを使って、LLM に macOS 上での目と手を与えます
mac-use-mcp を選ぶ理由
- すぐに使えます —
npx mac-use-mcpを実行し、macOS の権限を 2 つ許可するだけです。node-gyp、Xcode ツール、ビルド手順は必要ありません。 - 1 つのサーバーに 18 個のツール — スクリーンショット、クリック、キー入力、ウィンドウ管理、アクセシビリティの調査、クリップボードに対応します。
- Intel と Apple Silicon の macOS 13 以降に対応 — ネイティブアドオンがなく、アーキテクチャに関する問題もありません。
インストール
要件: macOS 13 以降、Node.js 22 以降。サーバーは stdio トランスポートで通信します。
このパッケージは macOS でのみ動作します。他のオペレーティングシステムではインストールを拒否します。
ビルド手順も、ネイティブ依存関係もありません。実行するだけです。
npx mac-use-mcp
初回実行時、
npxはパッケージをインストールするか確認します。確認を省略するには、npx -y mac-use-mcpを使用してください。
ヒント
モデルの選択は重要です。 デスクトップの自動化では、トークン使用量が積み重なるスクリーンショットと操作のループが発生します。推論能力、優れた視覚認識、信頼性の高いツール呼び出しを備えた高速なモデルをおすすめします。
モデル プロバイダー Gemini 3 Flash Claude Sonnet 4.6 Anthropic GPT-5 mini OpenAI MiniMax-M2.5 MiniMax Kimi K2.5 Moonshot AI Qwen3.5 Alibaba GLM-4.7 Zhipu AI
権限の設定
mac-use-mcp を使用するには、macOS の権限が 2 つ必要です。一度許可すれば、準備完了です。
アクセシビリティ
マウスとキーボードの制御に必要です。
- システム設定 > プライバシーとセキュリティ > アクセシビリティを開きます
- + ボタンをクリックします
- MCP クライアントアプリケーション(Claude Desktop、使用するターミナルエミュレーターなど)を追加します
- トグルが有効になっていることを確認します
画面収録
スクリーンショットの撮影に必要です。
- システム設定 > プライバシーとセキュリティ > 画面収録を開きます
- + ボタンをクリックします
- MCP クライアントアプリケーションを追加します
- トグルが有効になっていることを確認します
- 再起動を求められた場合は、アプリケーションを再起動します
権限の確認
両方の権限を許可し、MCP クライアントを設定した後(次のセクションを参照)、check_permissions ツールを使用して、すべて正常に動作していることを確認します。
> check_permissions
✓ Accessibility: granted
✓ Screen Recording: granted
MCP クライアントの設定
Claude Code
claude mcp add mac-use-mcp -- npx mac-use-mcp
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json に追加します:
{
"mcpServers": {
"mac-use-mcp": {
"command": "npx",
"args": ["mac-use-mcp"]
}
}
}
OpenAI Codex
~/.codex/config.toml に追加します:
[mcp_servers.mac-use]
command = "npx"
args = ["-y", "mac-use-mcp"]
または、CLI から実行します:
codex mcp add mac-use -- npx -y mac-use-mcp
Google Antigravity
~/.gemini/antigravity/mcp_config.json に追加します:
{
"mcpServers": {
"mac-use-mcp": {
"command": "npx",
"args": ["mac-use-mcp"]
}
}
}
Gemini CLI
~/.gemini/settings.json に追加します:
{
"mcpServers": {
"mac-use-mcp": {
"command": "npx",
"args": ["mac-use-mcp"]
}
}
}
VS Code / Copilot
ワークスペースの .vscode/mcp.json に追加します(または、コマンドパレットを開き、グローバル設定の場合は MCP: Open User Configuration を実行します):
{
"servers": {
"mac-use-mcp": {
"command": "npx",
"args": ["mac-use-mcp"]
}
}
}
Cursor
~/.cursor/mcp.json(グローバル)または .cursor/mcp.json(プロジェクト単位)に追加します:
{
"mcpServers": {
"mac-use-mcp": {
"command": "npx",
"args": ["mac-use-mcp"]
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json に追加します:
{
"mcpServers": {
"mac-use-mcp": {
"command": "npx",
"args": ["mac-use-mcp"]
}
}
}
Cline
Cline の MCP 設定を開き(Cline 拡張機能のパネルで MCP サーバーのアイコンをクリック)、次を追加します:
{
"mcpServers": {
"mac-use-mcp": {
"command": "npx",
"args": ["mac-use-mcp"]
}
}
}
Kiro
~/.aws/amazonq/mcp.json に追加します:
{
"mcpServers": {
"mac-use-mcp": {
"command": "npx",
"args": ["mac-use-mcp"]
}
}
}
ツール
この Node.js MCP サーバーは、MCP 互換クライアントでマウス、キーボード、画面を操作するための 18 個のツールを提供します。
画面
| ツール | 説明 |
|---|---|
screenshot | 画面、領域、またはタイトルを指定したウィンドウをキャプチャします(PNG または JPEG) |
get_screen_info | 各ディスプレイの数、解像度、原点、スケール係数を取得します |
get_cursor_position | 現在のカーソル座標を取得します |
入力
| ツール | 説明 |
|---|---|
click | ボタン、クリック回数、修飾キーのオプションを指定して、画面座標をクリックします |
move_mouse | カーソルを指定した位置に移動します |
scroll | 指定した位置で上、下、左、右にスクロールします |
drag | 設定可能な時間をかけて、ある点から別の点までドラッグします |
type_text | カーソル位置にテキストを入力します(Unicode、CJK、絵文字に対応) |
press_key | キーまたはキーの組み合わせを押します(例:"cmd+c"、"Return") |
ウィンドウとアプリ
| ツール | 説明 |
|---|---|
list_windows | 位置とサイズを含む、表示中のすべてのウィンドウを一覧表示します |
focus_window | アプリをアクティブにし、指定したウィンドウを前面に表示します |
open_application | 名前を指定してアプリケーションを起動します |
click_menu | パスで指定したメニューバー項目をクリックします(例:「File > Save As...」) |
アプリ名はあいまい検索に対応しており、"chrome" は "Google Chrome" に、"code" は "Code" に解決されます。
アクセシビリティ
| ツール | 説明 |
|---|---|
get_ui_elements | アクセシビリティ API を介して UI 要素を検索します。ロールやタイトルでボタン、テキストフィールド、その他のコントロールを見つけられます |
クリップボード
| ツール | 説明 |
|---|---|
clipboard_read | 現在のシステムクリップボードの内容をプレーンテキストとして読み取ります |
clipboard_write | テキストをシステムクリップボードに書き込みます |
ユーティリティ
| ツール | 説明 |
|---|---|
wait | 指定した時間(ミリ秒単位、0~10 000、デフォルトは 500)だけ待機します |
check_permissions | アクセシビリティと画面収録へのアクセスを確認します |
例
mac-use-mcp ツールを使用する一般的なワークフローパターン:
特定のウィンドウのスクリーンショットを撮る
1. focus_window({ app: "Safari" })
2. screenshot({ mode: "window", window_title: "Safari" })
ダイアログのボタンをクリックする
1. get_ui_elements({ app: "Finder", role: "AXButton" })
→ finds "OK" button at position (500, 300)
2. click({ x: 500, y: 300 })
メニュー操作を自動化する
1. open_application({ name: "TextEdit" })
2. click_menu({ app: "TextEdit", path: "Format > Make Plain Text" })
アプリ間でテキストをコピーする
1. focus_window({ app: "Safari" })
2. press_key({ key: "cmd+a" }) # select all
3. press_key({ key: "cmd+c" }) # copy
4. focus_window({ app: "Notes" })
5. press_key({ key: "cmd+v" }) # paste
動作の仕組み
- Swift binary がマウス入力(CGEvent)、画面キャプチャ(CGWindowListCreateImage)、ウィンドウの列挙(CGWindowListCopyWindowInfo)、UI 要素のクエリ(Accessibility API)を処理します
- AppleScript がキーボード入力(System Events
key code)、ウィンドウのフォーカス、メニューのクリックを処理します - Node.js MCP server が stdio 経由ですべてを統括し、MCP ツール呼び出しをシステム操作に変換します
- ネイティブの Node.js アドオンはありません — Swift バイナリは事前にコンパイルされ、npm パッケージに同梱されています
- シリアル実行キュー がシステム操作間の競合状態を防ぎます
既知の制限事項
- Sequoia での画面収録の確認プロンプト:macOS 15 では、画面収録へのアクセスを再確認するよう毎月システムプロンプトが表示されます。これは OS レベルの動作であり、抑止できません。
- セキュア入力フィールド:パスワードフィールドなどのセキュアなテキスト入力では、合成キーボードイベントがブロックされます。これは macOS のセキュリティ機能です。
- macOS 26 以降でのキーボード入力:CGEvent によるキーボードイベントの合成は、通知なくブロックされます。回避策として AppleScript(
System Events key code)でキーボード入力を行いますが、一部の例外的なケースでは動作が異なる場合があります。 - システムダイアログ:FileVault のロック解除やログインウィンドウなど、一部のシステムレベルのダイアログは、macOS のセキュリティ制限によりプログラムから操作できません。
- ヘッドレス環境/CI:グラフィカルセッションが必要です。標準の GitHub Actions ランナーなど、ヘッドレスの macOS 環境には対応していません。
トラブルシューティング
アクセス許可の確認プロンプトが何度も表示される
「システム設定」>「プライバシーとセキュリティ」で、ターミナルアプリにアクセシビリティと画面収録のアクセス許可を付与してください。ターミナルの再起動が必要な場合があります。
macOS Sequoia のアクセス許可ダイアログ
macOS 15(Sequoia)では、より厳格なアクセス許可プロンプトが導入されました。プロンプトが表示されたら許可してください。check_permissions ツールで現在のアクセス許可の状態を確認できます。
セキュア入力フィールド
一部のパスワードフィールドやセキュアなテキスト入力では、プログラムによるキーイベントがブロックされます。これは macOS のセキュリティ機能です。回避策として clipboard_write + press_key("cmd+v") を使用してください。
画面収録でスクリーンショットが黒く表示される
ターミナルアプリに画面収録のアクセス許可が付与されていることを確認してください(アクセシビリティのアクセス許可だけでは不十分です)。アクセス許可を付与した後、ターミナルを再起動してください。
関連プロジェクト
- Playwright MCP — アクセシビリティツリーを使ったブラウザー自動化です。Web のみを対象とするタスクで mac-use-mcp を補完します。
- Peekaboo — ScreenCaptureKit を使った macOS の画面自動化です。macOS 15 以降と Swift のビルドが必要です。
- awesome-mcp-servers — エコシステム全体から厳選した MCP サーバーのリストです。
コントリビューション
開発環境のセットアップとガイドラインについては、CONTRIBUTING.md を参照してください。
セキュリティ
脆弱性を報告するには、SECURITY.md を参照してください。
サポート
- バグを見つけましたか? Issue を作成
- 機能のアイデアがありますか? Issue を作成
- このプロジェクトを気に入りましたか? Star を付けてください。他の人が mac-use-mcp を見つけやすくなります。
ライセンス
MIT © 2026 antbotlab
macOS は Apple Inc. の商標であり、米国およびその他の国や地域で登録されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。