macOS MCP Server について
macOS MCP Serverは、アクセシビリティ情報とシステム制御を通じて、コンピュータービジョンなしでAIエージェントによるmacOSデスクトップ操作を可能にします。デスクトップツールに端末ポリシー検査、ネットワーク送信先の制限、改ざん検知可能な監査記録を組み合わせています。Appleシリコン搭載でmacOS 27以降が必要です。
主な機能
- 01アクセシビリティツリーによるUI認識
- 02マウス、キーボード、画面、ウィンドウ操作
- 03アプリ、シェル、ファイル、プロセスのツール
- 04端末状態に基づくポリシー検査
- 05送信先許可リストと監査記録
活用シーン
- 01macOSデスクトップワークフローの自動化
- 02記録付きUIテストジャーニーの実行
- 03エージェント操作へのポリシー適用
MCP 対応
ローカルのMCPクライアントに、stdio経由でデスクトップ操作ツール、リソース、プロンプトを提供するMCPサーバーです。ツール呼び出しやリソース、プロンプトへのアクセスはポリシー評価と監査を経ます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
macos-mcp-server
AI エージェントと macOS デスクトップをつなぐ Model Context Protocol サーバーです。アクセシビリティツリー、マウスとキーボードの合成入力、スクリーンショット、ウィンドウとアプリケーションの制御、シェル、 環境設定、launchd、プロセス、ファイルシステム、ウェブスクレイピングに対応しています。コンピュータービジョンモデルは不要です。エージェントは支援技術と同じように、アクセシビリティツリーを通じて UI を認識します。
windows-mcp-server の macOS 版です。同じ 35 個のツール、ツールセット、ペルソナ、ポリシードキュメント、ジャーニーを備えています。両者が単純な自動化ブリッジと異なるのは、エージェントのすべてのアクションがデバイスのリアルタイムの状態に基づいて制御され、エージェントのネットワークへの送信が制限され、さらにその両方が、エージェントには無効化できない改ざん検知可能な監査チェーンに記録される点です。
- デバイスポリシーエンジン:すべてのツール呼び出し、リソースの読み取り、プロンプトの取得は、実行前にデバイスのリアルタイム信号(MDM 登録、Platform SSO、ブートセキュリティ、FileVault、SIP、Sealed System Volume)に照らして評価され、ポリシーにより拒否、警告、または制限されます。ルールはツール、ツールセット、またはアノテーションに基づいて適用されるため、スクリーンショットとシェルコマンドに同じ制御が適用されることはありません。 → ポリシーの設定
- 送信先の許可リスト:ループバックプロキシは、指定したドメインのみを許可します。必要に応じて pf ルールと連携させることで、コンソールユーザーやマシン全体がプロキシを迂回できないようにできます。 → 送信制御
- 改ざん検知可能な透明性:ハッシュチェーン式監査ログ(鍵で保護され、統合ログにアンカーされます)、ハートビート、ラグプル検知、セッション全体の記録、証拠バンドル、帯域外の段階的キルスイッチを備えています。これらはいずれもエージェントには無効化できません。 → セキュリティアーキテクチャ
Shell、LaunchExecutable、Defaults、LaunchdJob、FileSystem、Process、App などの一部のツールは、サンドボックスなしでユーザーレベルのシステムに完全にアクセスできます。 これは意図した設計です。信頼できないワークロードはゲスト環境で実行してください。VM による分離を参照し、脆弱性としての対象範囲については SECURITY.md をお読みください。
Apple silicon 搭載の macOS 27 以降が必要です。 Apple は macOS 27 で Intel Mac をサポートしていません。
クイックスタート
brew install deploymenttheory/tap/macos-mcp-server
macos-mcp-server permissions request # grant Accessibility and Screen Recording once
SERVER="$(command -v macos-mcp-server)"
codex mcp add macos -- "$SERVER" stdio --persona business-user
# Or, for Claude Code:
claude mcp add --scope user macos -- "$SERVER" stdio --persona business-user
Claude Desktop の場合は、最新の GitHub リリースから .mcpb をダウンロードし、Settings > Extensions > Advanced settings > Install Extension からインストールしてください。署名済みのサーバーバイナリが含まれており、初回起動時に必要な macOS の許可を求めます。
その他のローカル MCP クライアントでは、stdio サブコマンドを使ってバイナリを起動できます。
{
"mcpServers": {
"macos": {
"command": "/absolute/path/from/command-v/macos-mcp-server",
"args": ["stdio", "--persona", "first-line-support"]
}
}
}
→ はじめに では、Claude Code、Cursor、Codex CLI、Claude Desktop の使用方法と、大切なマシンに接続する前にすべきことを説明します。→ アクセス許可 では、プライバシーに関する許可と署名 ID が重要な理由を説明します。
ご自身の用途に合うかどうか分からない場合は、フリートへの導入を承認する必要がある場合、導入の判断をお読みください。作業の目的が決まっている場合は、UI 回帰テストスイートまたは一次サポートキューの手順をご覧ください。
機能
| 概要 | ガイド | |
|---|---|---|
| デスクトップ自動化 | 13 のツールセットにまたがる 35 個のツール:アクセシビリティツリーの認識、AX アクション、合成入力、スクリーンショット、アプリ、ウィンドウ、シェル、環境設定、ファイルシステム、プロセス、launchd、統合ログ、ネットワーク、パッケージ、スクレイピング、計画と適用 | ツールセットとペルソナ |
| ペルソナ | ツールセットを選択し、ワークフローのガイダンスも注入するプリセット | ツールセットとペルソナ |
| 認証情報 | エージェントには秘密情報を一切知らせることなく、アプリやサイトにサインインできます。Credentials ツールには読み取りモードがなく、注入にはセキュアなテキストフィールドが必要で、キーチェーン項目はすべての終了経路で削除されます | 認証情報 |
| セッション録画 | transparency.recording_dir を設定すると、タイムラインマーカー付きでセッション全体が 1 つの .mov に保存されます | セッション録画 |
| ジャーニー | オフラインで検証され、プランナーを通じて実行され、人間のセッションから記録される宣言型 UI ジャーニー | ジャーニー |
| キルスイッチ | 帯域外の段階的な封じ込め:録画を確定し、認証情報を失効させた後、隔離(pf)、プロセスの終了、ロック、シャットダウンを実行します | セキュリティアーキテクチャ |
| MCP 準拠 | 公開済みの最新仕様に照らしたプロトコル動作の検証を、すべての PR で実施します | MCP 準拠状況 |
ツール
| ツールセット | デフォルト | ツール |
|---|---|---|
| screen | はい | Snapshot、Screenshot、DisplayInventory、Recording |
| interaction | はい | Click、Type、Invoke、GetText、Scroll、Move、Shortcut、Wait、WaitFor、MultiSelect、MultiEdit |
| apps | はい | App |
| system | はい | Clipboard、Process、Notification |
| system-admin | Defaults、LaunchdJob | |
| shell | Shell、LaunchExecutable | |
| filesystem | FileSystem | |
| web | Scrape | |
| diagnostics | SystemInfo、Service、UnifiedLog、Network | |
| packages | Package | |
| credentials | --credentials-file で有効化される Credentials | |
| testing | Assert、CaptureEvidence | |
| planning | Plan、Apply | |
| always | GuardrailStatus、Kill |
Windows サーバーとは、異なるサブシステムを指すために名前が異なるものが 4 つあります。Defaults(Registry)、Shell(PowerShell)、LaunchdJob
(ScheduledTask)、UnifiedLog(EventLog)です。ジャーニーの用語を含め、それ以外はすべて同じです。
リソース:macos://desktop/snapshot、macos://desktop/displays、
macos://session/recording、macos://system/info。プロンプト:rpa-journey、
triage-support-issue、capture-evidence。
macos-mcp-server personas # first-line-support, qa-test-engineer, business-user
macos-mcp-server stdio --persona qa-test-engineer
macos-mcp-server stdio --toolsets screen,interaction,apps --read-only
設計上、自動化できないもの
ログインウィンドウ、ロック画面、Touch ID とパスワードのシート、TCC の同意ダイアログ、セキュアなテキストフィールドの内容です。これらはシステム独自の信頼境界であり、サーバーはこれを越えようとしません。
セキュリティ
📐 セキュリティアーキテクチャ · 📄 ポリシー設定 · 🔎 セキュリティ評価
MCP クライアントとツールの間には、ポリシーエンジンが配置されています。
MCP client ──▶ audit ──▶ rug-pull ──▶ policy engine ──▶ tool handler
│
device signals
macos-mcp-server stdio --policy-config "/Library/Application Support/MacOSMCP/policy.json"
--policy-config を指定しない場合は、組み込みのデフォルト設定が適用されます。エンジンは有効で、宣言されたすべてのシグナルが評価され、すべての判定が記録されますが、拒否は行われません。ポリシーを作成する前にエンジンを導入しても、稼働中のデプロイメントに支障はありません。
on_fail | 効果 |
|---|---|
allow | 続行します。失敗は記録されます |
warn | 続行し、警告は結果とともに返されるため、モデルが確認できます |
hold | 帯域外の人間による承認を待ち、承認されない場合は失敗します |
deny | この呼び出しは拒否され、次回に再評価されます |
kill | キルスイッチが作動し、封じ込めの段階的措置が実行されます |
macos-mcp-server policy validate --policy-config policy.json # document + signal ids; exit 1
macos-mcp-server policy check --policy-config policy.json # this device now; exit 2 if not admitted
macos-mcp-server policy explain --policy-config policy.json --tool Shell
macos-mcp-server policy test policy/examples/tests/*.json # fixtures, in CI
macos-mcp-server audit verify "/Library/Application Support/MacOSMCP/audit"
macos-mcp-server evidence bundle --dir ... --session 20261007-120000
policy/examples/ には、7 つの初期設定例が用意されています。audit.json(最初に導入するための設定。何も拒否しません)、secure.json、enterprise.json、locked-down.json、egress.json、dual-control.json、evidence-export.json です。
信頼モデル
ローカルデバイスのシグナルは、監査可能な多層防御であり、強固な境界ではありません。root はこれらのシグナルを偽装でき、プライバシー許可はバイナリのハッシュではなく署名 ID に紐付けられています。封じ込めレイヤーは、セッション中の侵害にかかるコストを高め、その記録を残します。MDM、Gatekeeper と公証、Platform SSO と Conditional Access、FileVault と併用してください。macOS 固有の点として、セキュリティ態勢を信頼する前に知っておくべきことが 2 つあります。pf はソケットの所有者に基づいてフィルタリングするため、「スコープ付き」エグレス階層が制限する対象は、名前付きアプリケーションではなくコンソールユーザーです。また、セキュリティ態勢のシグナルは Windows 向けの名称ですが、文書化された macOS での解釈があります。詳しくは評価に記載されています。
MCP 準拠
すべての PR で、最新の公開済み MCP リビジョンに対する必須の MCP 仕様ゲートが実行されます。このゲートでは、製品が実際に公開しているサーフェスと生のワイヤーレスポンスを取得し、定義と安全なメソッド呼び出しを公開済みスキーマに照らして検証します。また、新しいリビジョンに評価が必要な場合は失敗します。このチェックは、このサーバーが実装する機能を対象とし、実装していない任意機能について割合を算出することはありません。MCP 仕様ゲートを参照してください。
アーキテクチャ
cmd/macos-mcp-server cobra/viper CLI (stdio transport; conformance-serve only behind a tag)
internal/macmcp RunStdio orchestration, probes, credentials, permissions, policy ops
internal/macdesktop the engine: accessibility tree, CGEvent input, ScreenCaptureKit
screenshots, screencapture recording, keychain, launchd, log, network
internal/macguard pf egress enforcer, networksetup system proxy, containment actuator
internal/clirunner argv-only process runner with a rebuilt environment
internal/acceptance the tart-lab acceptance suite (MACOS_MCP_ACC=1)
pkg/macos tool definitions, toolsets, personas, resources, prompts
mcp-server-core (imported) inventory, toolkit, surface, guardrail runtime, journeys,
schema loader, conformance fixtures and host
agentweave-harness (imported) policy engine, audit chain, rug-pull, kill switch, egress proxy
policy/examples starting-point policy documents, with fixtures under tests/
schema/ vendored MCP protocol schemas, one directory per revision
アクセシビリティ、イベント、AppKit に関するすべての処理は、Desktop.Do を通じてプロセスのメインスレッドで実行されます。ツールハンドラーは、受信ミドルウェアを通じてリクエストコンテキストから依存関係を受け取ります。
開発
make check # vet, test, lint
make sign-dev # a stable local signing identity so TCC grants survive rebuilds
make conformance # validate the implemented product behavior
make release-snapshot # goreleaser dry run, unsigned
リリースは release-please によって作成され、release.yml によってビルドされます。tarball と Claude Desktop .mcpb に、Developer ID 署名と公証を受けた arm64 バイナリが 1 つ含まれます。また、リリースには CycloneDX SBOM と鍵不要の cosign 署名が含まれ、テスト済みの cask は deploymenttheory/homebrew-tap に公開されます。アセットの検証に合格するまで、リリースはドラフトのままです。インストールとアップグレードについては、はじめにを参照してください。
ドキュメント
docs/:セットアップと設定のガイド、セキュリティアーキテクチャと評価、ジャーニーの用語集、準拠レポートが含まれています。
ライセンス
MIT。詳しくはLICENSEを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。