mcp-server-macos-use について
mcp-server-macos-use は Swift で書かれた MCP サーバーで、MacosUseSDK を用いてアクセシビリティ API 経由で macOS アプリケーションを操作します。stdio で MCP クライアントと通信し、デスクトップアプリを操作させたいユーザーに向いています。
主な機能
- 01アクセシビリティ API による macOS アプリ操作
- 02PID によるターゲットアプリの指定
- 03アクセシビリティツリーの走査による UI 状態の取得
- 04クリック、テキスト入力、キー操作のサポート
- 05アニメーションや操作後の遅延の任意設定
活用シーン
- 01エージェントによるローカル macOS アプリの起動と操作
- 02アプリの現在の UI 要素構造の取得
- 03Claude Desktop からのデスクトップ自動化の実行
MCP 対応
本プロジェクトは stdio 経由で MCP コマンドを受け取る MCP サーバーであり、CallTool メソッドを通じて macos-use 系のツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-server-macos-use
公式ウェブサイト:https://macos-use.dev/
Swift 製の Model Context Protocol(MCP)サーバーです。主に MacosUseSDK を通じてアクセシビリティ API を活用し、macOS アプリケーションを操作できます。
Claude Desktop や、互換性のあるその他の MCP クライアントで使用できます。
このサーバーは標準入出力(stdio)経由で MCP コマンドを受け付け、アプリケーションとやり取りするための複数のツールを公開します。
https://github.com/user-attachments/assets/cd203171-bac6-4124-9a58-59947a25be07
https://github.com/user-attachments/assets/f274560a-559f-4140-b133-c0b5c500a02d
利用可能なツール
このサーバーは、MCP の CallTool メソッドを介して以下のツールを公開します。
-
macos-use_open_application_and_traverse- 説明: 指定されたアプリケーションを開くかアクティブにし、その後アクセシビリティツリーをたどります。
- パラメーター:
identifier(String、必須):アプリケーション名、バンドル ID、またはファイルパスです。
-
macos-use_click_and_traverse- 説明: 対象アプリケーション(PID で識別)のウィンドウ内の指定座標でマウスクリックをシミュレートし、その後アクセシビリティツリーをたどります。
- パラメーター:
pid(Number、必須):対象アプリケーションのプロセス ID(PID)です。x(Number、必須):クリックする X 座標です(SDK の動作に応じて、ウィンドウまたは画面を基準とします)。y(Number、必須):クリックする Y 座標です。
-
macos-use_type_and_traverse- 説明: 対象アプリケーション(PID で識別)へのテキスト入力をシミュレートし、その後アクセシビリティツリーをたどります。
- パラメーター:
pid(Number、必須):対象アプリケーションのプロセス ID(PID)です。text(String、必須):入力するテキストです。
-
macos-use_press_key_and_traverse- 説明: PID で指定されたアプリケーションを対象に、修飾キーを任意で押しながら特定のキーボードキー(例:「Enter」、「Tab」、「a」、「B」)を押す操作をシミュレートし、その後アクセシビリティツリーをたどります。
- パラメーター:
pid(Number、必須):対象アプリケーションのプロセス ID(PID)です。keyName(String、必須):キーの名前です(例:Return、Escape、ArrowUp、Delete、a、B)。修飾キーが押されていない場合、英字は大文字と小文字を区別します。modifierFlags(Array、任意):キーを押す間、押し続ける修飾キーの配列です。有効な値:CapsLock(またはCaps)、Shift、Control(またはCtrl)、Option(またはOpt、Alt)、Command(またはCmd)、Function(またはFn)、NumericPad(またはNumpad)、Help。
-
macos-use_refresh_traversal- 説明: 指定されたアプリケーション(PID で識別)のアクセシビリティツリーをたどる処理のみを実行します。操作を行わずに現在の UI 状態を取得する場合に便利です。
- パラメーター:
pid(Number、必須):ツリーをたどるアプリケーションのプロセス ID(PID)です。
共通の任意パラメーター(CallTool 用)
これらは、デフォルトの MacosUseSDK の動作を上書きするため、任意のツール呼び出しの arguments オブジェクトに渡すことができます(コード内の ActionOptions を参照してください)。
traverseBefore(Boolean、任意):主要な操作の前にアクセシビリティツリーをたどります。traverseAfter(Boolean、任意):主要な操作の後にアクセシビリティツリーをたどります(通常、デフォルトは true です)。showDiff(Boolean、任意):該当する場合、ツリーをたどった結果の差分を含めます。onlyVisibleElements(Boolean、任意):ツリーをたどる対象を表示中の要素に限定します。showAnimation(Boolean、任意):操作時に視覚的なフィードバックアニメーションを表示します。animationDuration(Number、任意):フィードバックアニメーションの時間です。delayAfterAction(Number、任意):操作後に遅延を追加します。
依存関係
MacosUseSDK(macOS の制御機能を提供するローカルまたは外部の Swift パッケージを想定)
ビルドと実行
# Example build command (adjust as needed, use 'debug' for development)
swift build -c debug # Or 'release' for production
# Running the server (it communicates via stdin/stdout)
./.build/debug/mcp-server-macos-use
クライアントとの連携(例:Claude Desktop)
ビルドが完了したら、サーバーの実行ファイルの場所をクライアントアプリケーションに知らせる必要があります。たとえば、Claude Desktop を設定するには、次の内容を設定ファイルに追加します。
{
"mcpServers": {
"mcp-server-macos-use": {
"command": "/path/to/your/project/mcp-server-macos-use/.build/debug/mcp-server-macos-use"
}
}
}
/path/to/your/project/ を、mcp-server-macos-use ディレクトリの実際の絶対パスに置き換えてください。
お問い合わせ
[email protected] までご連絡ください。
Discord: m13v_
今後の予定
ご要望に合わせてサーバーを調整できます。お気軽に issue を作成するか、ご連絡ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。