mcpField
M
mcp-mac-control

mcp-mac-control

ローカル
github.com/dockndevai生産性03 日前に更新

mcp-mac-control について

mcp-mac-controlは、ファイル、シェル、AppleScript、プロセス、GUIを通じてAIエージェントがMacを操作・観察するMCPサーバーです。広範なデスクトップ制御を必要とするエージェント向けで、初期状態はadminモードですが、設定で安全制御を有効にできます。

主な機能

  1. 01画面キャプチャとウィンドウ確認
  2. 02マウスとキーボードの操作
  3. 03ファイルの読み書き
  4. 04コマンドとAppleScriptの実行
  5. 05アプリとプロセスの管理
  6. 06アクセス制限と確認の設定

活用シーン

  1. 01MacのGUI操作の自動化
  2. 02画面やアプリの状態確認
  3. 03スクリプト対応アプリでのAppleScript実行
  4. 04高リスク操作の制限や監査

MCP 対応

MCPクライアントにMacの観察・操作ツールを提供します。stdioで動作し、設定に応じてMCP elicitationによる人間の承認に対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"dockndevai-mcp-mac-control": {
"command": "npx",
"args": [
"-y",
"@dockndevai/mcp-mac-control"
],
"env": {
"MACCTL_SAFE_MODE": "<MACCTL_SAFE_MODE>",
"MACCTL_MODE": "<MACCTL_MODE>",
"MACCTL_CONFIRM": "<MACCTL_CONFIRM>",
"MACCTL_PATH_ALLOWLIST": "<MACCTL_PATH_ALLOWLIST>",
"MACCTL_PROTECTED_PATHS": "<MACCTL_PROTECTED_PATHS>"
}
}
}
}
起動コマンドnpx -y @dockndevai/mcp-mac-control
設定が必要な環境変数
MACCTL_SAFE_MODESet true to invert to safe-by-default: read-only, all powers gated, confirmations on. Default false (full control).
MACCTL_MODEAccess mode: read-only | read-write | admin. Defaults to admin (or read-only in safe mode).
MACCTL_CONFIRMSet true to require human approval (via MCP elicitation) on destructive ops. Default off in full control.
MACCTL_PATH_ALLOWLISTComma-separated path roots the agent may touch (empty = anywhere).
MACCTL_PROTECTED_PATHSComma-separated path roots that may be read but never modified/deleted (empty by default in full control).

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@dockndevai/mcp-mac-control0.3.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-mac-control

npm CI licence

AI エージェントにMac を人が操作しているかのように完全に制御させる、Model Context Protocol サーバーです。シェル、AppleScript、ファイル、プロセス、そして人間のような GUI 操作に対応しています。移動、クリック、ダブルクリック/右クリック、ドラッグ、スクロール、文字入力、キーの組み合わせの押下が可能で、スクリーンショットとウィンドウ/画面サイズを認識するループを備えています。

⚠️ このサーバーはデフォルトで完全な制御権を持ちます。 起動時は admin モードで、コマンドの実行、削除、GUI 入力がすべて有効になっています。強力である一方、危険でもあります。エージェントが読み取る内容(ウェブページ、メール、ファイルなど)にプロンプトインジェクションが含まれていると、Mac 上で任意のコードが実行される可能性があります。信頼できるエージェントとコンテンツにのみ接続してください。MACCTL_SAFE_MODE=true を設定すると、すべてをデフォルトでセーフモードに切り替えられます。デフォルトで安全な設定をお望みの場合は、代わりに姉妹プロジェクトの @dockndevai/mcp-macos をお使いください。

dockndevai MCP サーバースイートの一部です。

エージェントが利用できる機能(26 個のツール)

認識 — screenshot、get_screen_size、list_windows、get_frontmost_app、list_apps、system_info、list_directory、read_file、list_processes、get_clipboard

人間のようにデスクトップを操作 — move_mouse、click(左/右/ダブル)、drag、scroll、type_text、key_press(⌘/⌥/⌃/⇧を使用)、activate_app、quit_app、open、set_clipboard、notify、write_file

すべての機能 — run_command(任意のプログラムを実行。シェルは指定しない限り使用しません)、run_applescript(AppleScript/JXA — スクリプト制御可能なあらゆるアプリを操作)、delete_path(→ ゴミ箱)、kill_process

基本的な操作ループ:screenshot → 判断 → click/type/drag/scroll → 再び screenshot。

インストール

npx -y @dockndevai/mcp-mac-control

macOS 専用です。各機能を初めて使う際に、ホストアプリ(Terminal、使用する IDE、Claude Desktop など)に macOS の権限を付与する必要があります。

  • 画面収録 → screenshot 用
  • アクセシビリティ → GUI 入力(click、type_text、drag、scroll、key_press)および list_windows 用
  • オートメーション → AppleScript/アプリの制御用
  • マウス操作には cliclick を使用します:brew install cliclick

設定(Claude Code)

claude mcp add mac-control -- npx -y @dockndevai/mcp-mac-control

これで完了です。デフォルトで完全な制御権を持ちます。利用範囲を制限するには、環境変数フラグを追加してください(以下を参照)。Claude Desktop/Cursor/Codex/VS Code/Windsurf の設定については docs/CLIENTS.md を、すべての変数については .env.example をご覧ください。

制御を強める、または弱める

設定は不要で、すべてを制御できます。以下はすべて、制限するための設定です。

変数デフォルト効果
MACCTL_SAFE_MODEfalsetrue → 読み取り専用になり、すべての強力な操作が制限され、確認が有効になります(デフォルトで安全)
MACCTL_MODEadminread-only / read-write / admin — 登録されるツールを制限します
MACCTL_ALLOW_EXECtrueシェル / AppleScript / kill
MACCTL_ALLOW_DELETEtrueゴミ箱への削除
MACCTL_ALLOW_INPUTtrueGUI 入力(マウス/キーボード)
MACCTL_CONFIRMfalsetrue → 破壊的な操作は MCP のエリシテーションを通じて人間の承認を得るまで一時停止します
MACCTL_PATH_ALLOWLIST(空 = どこでも)ファイル操作をこれらのルートに限定します
MACCTL_PROTECTED_PATHS(空)読み取りはできますが、変更や削除はできないルート
MACCTL_COMMAND_ALLOWLIST(空 = 任意)run_command をこれらのプログラムに限定します
MACCTL_DRY_RUNfalse書き込みを実行せずに検証してログに記録します
MACCTL_AUDIT_LOGtrue保護対象の操作ごとに JSON 監査行を stderr に出力します

ポリシーエンジン(src/security.ts)は、スイートのほかの部分と同じ段階的なモデルを採用しています。このサーバーでは、デフォルトで制限がありません。SECURITY.md を参照してください。

AI リスクガード(任意)

静的ルールに加えて、リスクの高いツール(run_command、run_applescript、delete_path)の実行前に、このサーバーはローカルの laya-guard デーモンに問い合わせることができます。ガードは、実際のコマンドを 決定論的なパターンとローカルの判断モデルで分類し、allow / confirm / block のいずれかを返します。これは決定論的なポリシーの後に実行され、制限を強める(確認の追加またはブロック)ことしかできず、許可を与えることはありません。

変数デフォルト効果
MACCTL_GUARD_MODEoffmonitor(実行した場合の動作を記録) / enforce(ブロックまたは確認を要求)
MACCTL_GUARD_URLhttp://127.0.0.1:8799ローカルの laya-guard デーモン
MACCTL_GUARD_TIMEOUT_MS2000チェックごとのタイムアウト
MACCTL_GUARD_FAIL_CLOSEDconfirmenforce モードでデーモンに接続できない場合:confirm または allow

pipx install laya-guard && laya-guard でデーモンを起動します。まず monitor で検出内容を確認してから、 enforce に切り替えてください。

開発

npm install
npm run build
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | node dist/index.js   # list tools
npm test

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。