Swift MCP GUI Server について
Swift MCP GUI Serverは、macOSのデスクトップ操作を必要とするクライアント向けのMCPサーバーです。マウスやキーボード、画面キャプチャ、ピクセル確認、AppleScriptを操作できます。
主な機能
- 01マウスの移動とクリック
- 02キーボードショートカットの送信
- 03上下左右へのスクロール
- 04画面や領域のキャプチャ
- 05画面サイズとピクセル色の取得
- 06AppleScriptコードやファイルの実行
活用シーン
- 01MCPクライアントからのデスクトップ操作の自動化
- 02AIの画像認識向け画面キャプチャ
- 03ピクセルのRGBA色の確認
- 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 を実行します。
ソースからのインストール
- このリポジトリをクローンします。
git clone https://github.com/NakaokaRei/swift-mcp-gui.git
cd swift-mcp-gui
- インストールします。
swift package experimental-install
- 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 ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。