mcpField
M
mcp-server-macos-use

mcp-server-macos-use

ローカル
macos-use.dev生産性3554 週間前に更新

mcp-server-macos-use について

mcp-server-macos-use は Swift で書かれた MCP サーバーで、MacosUseSDK を用いてアクセシビリティ API 経由で macOS アプリケーションを操作します。stdio で MCP クライアントと通信し、デスクトップアプリを操作させたいユーザーに向いています。

主な機能

  1. 01アクセシビリティ API による macOS アプリ操作
  2. 02PID によるターゲットアプリの指定
  3. 03アクセシビリティツリーの走査による UI 状態の取得
  4. 04クリック、テキスト入力、キー操作のサポート
  5. 05アニメーションや操作後の遅延の任意設定

活用シーン

  1. 01エージェントによるローカル macOS アプリの起動と操作
  2. 02アプリの現在の UI 要素構造の取得
  3. 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 メソッドを介して以下のツールを公開します。

  1. macos-use_open_application_and_traverse

    • 説明: 指定されたアプリケーションを開くかアクティブにし、その後アクセシビリティツリーをたどります。
    • パラメーター:
      • identifier(String、必須):アプリケーション名、バンドル ID、またはファイルパスです。
  2. macos-use_click_and_traverse

    • 説明: 対象アプリケーション(PID で識別)のウィンドウ内の指定座標でマウスクリックをシミュレートし、その後アクセシビリティツリーをたどります。
    • パラメーター:
      • pid(Number、必須):対象アプリケーションのプロセス ID(PID)です。
      • x(Number、必須):クリックする X 座標です(SDK の動作に応じて、ウィンドウまたは画面を基準とします)。
      • y(Number、必須):クリックする Y 座標です。
  3. macos-use_type_and_traverse

    • 説明: 対象アプリケーション(PID で識別)へのテキスト入力をシミュレートし、その後アクセシビリティツリーをたどります。
    • パラメーター:
      • pid(Number、必須):対象アプリケーションのプロセス ID(PID)です。
      • text(String、必須):入力するテキストです。
  4. 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。
  5. 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 を作成するか、ご連絡ください。

コメント

MCP は初めてですか?

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

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