mcpField
S
Swift MCP GUI Server

Swift MCP GUI Server

ローカル
github.com/NakaokaRei生産性611 週間前に更新

Swift MCP GUI Server について

Swift MCP GUI Serverは、macOSのデスクトップ操作を必要とするクライアント向けのMCPサーバーです。マウスやキーボード、画面キャプチャ、ピクセル確認、AppleScriptを操作できます。

主な機能

  1. 01マウスの移動とクリック
  2. 02キーボードショートカットの送信
  3. 03上下左右へのスクロール
  4. 04画面や領域のキャプチャ
  5. 05画面サイズとピクセル色の取得
  6. 06AppleScriptコードやファイルの実行

活用シーン

  1. 01MCPクライアントからのデスクトップ操作の自動化
  2. 02AIの画像認識向け画面キャプチャ
  3. 03ピクセルのRGBA色の確認
  4. 04AppleScriptタスクの実行

MCP 対応

マウスやキーボードの入力、画面キャプチャ、AppleScriptの実行など、macOS GUIを操作するツールをMCPクライアントに提供します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

Swift MCP GUI サーバー

SwiftAutoGUI を通じて macOS を操作できる Model Context Protocol(MCP)サーバーです。このサーバーは、MCP クライアントからマウスとキーボードをプログラムで操作するためのツールを提供します。

要件

  • macOS 27.0 以降(SwiftAutoGUI 1.0.0 で必要)
  • Swift 6.2 以降
  • Xcode 27.0 以降

インストール

Homebrew(推奨)

NakaokaRei/tap を使用してインストールします。

brew install NakaokaRei/tap/swift-mcp-gui

次に、インストールしたバイナリを MCP クライアントに指定します。

{
  "mcpServers": {
    "swift-mcp-gui": {
      "command": "/opt/homebrew/bin/swift-mcp-gui"
    }
  }
}

Intel Mac でのパスは /usr/local/bin/swift-mcp-gui です。後でアップグレードするには、 brew upgrade swift-mcp-gui を実行します。

ソースからのインストール
  1. このリポジトリをクローンします。
git clone https://github.com/NakaokaRei/swift-mcp-gui.git
cd swift-mcp-gui
  1. インストールします。
swift package experimental-install
  1. MCP クライアントにコマンドを追加します。
{
  "mcpServers" : {
    "swift-mcp-gui" : {
      "command" : "/Users/USERNAME/.swiftpm/bin/swift-mcp-gui"
    }
  }
}

利用可能なツール

このサーバーは、macOS を操作するための以下のツールを提供します。

1. マウスの移動
  • ツール名:moveMouse
  • 入力:
    • x:数値(x 座標)。整数、小数、または文字列形式で指定できます。
    • y:数値(y 座標)。整数、小数、または文字列形式で指定できます。
  • マウスカーソルを指定した座標に移動します。
2. マウスクリック
  • ツール名:mouseClick
  • 入力:
    • button:文字列("left" または "right")
  • 現在のカーソル位置でマウスをクリックします。
3. キーボード入力
  • ツール名:sendKeys
  • 入力:
    • keys:文字列の配列(キー名)
  • キーボードショートカットやキーの組み合わせを送信します。
  • キーの例:"command"、"control"、"option"、"shift"、"return"、"space"、"a"、"1" など
4. スクロール
  • ツール名:scroll
  • 入力:
    • direction:文字列("up"、"down"、"left"、"right")
    • clicks:数値(スクロールする回数)
  • 指定した方向にスクロールします。
5. 画面サイズ
  • ツール名:getScreenSize
  • メイン画面の寸法(幅と高さ)を返します。
6. ピクセルの色
  • ツール名:getPixelColor
  • 入力:
    • x:数値(x 座標)。整数、小数、または文字列形式で指定できます。
    • y:数値(y 座標)。整数、小数、または文字列形式で指定できます。
  • 指定した座標にあるピクセルの RGBA 色値(0~255)を返します。
7. 画面のキャプチャ
  • ツール名:captureScreen
  • 入力:
    • quality:数値(任意、0.0~1.0、デフォルト:0.5)。JPEG 圧縮品質
    • scale:数値(任意、0.1~1.0、デフォルト:0.25)。画像サイズの拡大縮小率
    • output:文字列(任意、"path" または "image"、デフォルト:"path")。出力形式
  • output: "path"(デフォルト):一時ファイルに保存し、寸法とともにファイルパスを返します。トークン消費量を抑えます。
  • output: "image":AI の視覚機能(例:Claude)向けに、画像コンテンツをインラインで返します。
8. 領域のキャプチャ
  • ツール名:captureRegion
  • 入力:
    • x:数値(領域の x 座標)
    • y:数値(領域の y 座標)
    • width:数値(領域の幅)
    • height:数値(領域の高さ)
    • quality:数値(任意、0.0~1.0、デフォルト:0.5)。JPEG 圧縮品質
    • scale:数値(任意、0.1~1.0、デフォルト:0.25)。画像サイズの拡大縮小率
    • output:文字列(任意、"path" または "image"、デフォルト:"path")。出力形式
  • output: "path"(デフォルト):一時ファイルに保存し、寸法とともにファイルパスを返します。トークン消費量を抑えます。
  • output: "image":AI の視覚機能(例:Claude)向けに、画像コンテンツをインラインで返します。
9. スクリーンショットを保存
  • ツール名:saveScreenshot
  • 入力:
    • filename:文字列(スクリーンショットの保存先パス)
    • x:数値(任意、領域の x 座標)
    • y:数値(任意、領域の y 座標)
    • width:数値(任意、領域の幅)
    • height:数値(任意、領域の高さ)
    • quality:数値(任意、0.0-1.0、デフォルト:0.1)- JPEG の圧縮品質
    • scale:数値(任意、0.1-1.0、デフォルト:0.25)- 画像サイズの拡大縮小率
  • 画面全体または領域をキャプチャし、ファイルに保存します
  • ファイル形式はファイル名の拡張子(.jpg、.jpeg、.png)によって決まります
  • 品質パラメーターは JPEG ファイルにのみ適用されます
10. AppleScript を実行
  • ツール名:executeAppleScript
  • 入力:
    • script:文字列(実行する AppleScript コード)
  • AppleScript コードを直接実行し、結果を返します
  • スクリプトが値を返す場合は、"AppleScript Result: " を返します
  • スクリプトが値を返さずに完了した場合は、"AppleScript executed successfully (no result returned)" を返します
11. AppleScript ファイルを実行
  • ツール名:executeAppleScriptFile
  • 入力:
    • path:文字列(AppleScript ファイルのパス)
  • ファイルから AppleScript を実行し、結果を返します
  • スクリプトが値を返す場合は、"AppleScript Result: " を返します
  • スクリプトが値を返さずに完了した場合は、"AppleScript file executed successfully (no result returned): " を返します

セキュリティに関する考慮事項

このサーバーでマウスとキーボードを操作するには、「システム設定」でフルアクセシビリティ権限が必要です。実行時は注意し、信頼できる MCP クライアントのみを接続してください。

ライセンス

MIT ライセンス

コメント

MCP は初めてですか?

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

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