mcpField
M
mcp-ios

mcp-ios

ローカル
github.com/dockndevai開発ツール02 週間前に更新

mcp-ios について

mcp-iosは、AppiumとWebDriverAgentを介してiPhoneやiPadを操作するMCPサーバーです。デバイスの確認やUI自動化を行うエージェント向けで、権限モードやアプリ制限、確認手順により操作範囲を既定で抑えます。

主な機能

  1. 01画面、アプリ、要素ツリーの確認
  2. 02MCP画像としてのスクリーンショット取得
  3. 03タップ、スワイプ、文字入力、アプリ起動
  4. 04ユーザー定義のShortcutsの実行
  5. 05モードによる書き込み・管理ツールの制限
  6. 06保護対象操作の監査記録

活用シーン

  1. 01エージェントによるiPhone画面の確認
  2. 02アプリの移動や文字入力の自動化
  3. 03デバイス未接続時のShortcut実行

MCP 対応

iOSの確認、UI操作、Shortcut、アプリ管理のツールをMCPクライアントに公開します。Appiumを介してデバイス上のWebDriverAgentに接続します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"dockndevai-mcp-ios": {
"command": "npx",
"args": [
"-y",
"@dockndevai/mcp-ios"
],
"env": {
"IOS_APPIUM_URL": "<IOS_APPIUM_URL>",
"IOS_UDID": "<IOS_UDID>",
"IOS_MODE": "<IOS_MODE>"
}
}
}
}
起動コマンドnpx -y @dockndevai/mcp-ios
設定が必要な環境変数
IOS_APPIUM_URLBase URL of the running Appium server (default http://127.0.0.1:4723).
IOS_UDIDTarget device UDID.
IOS_MODEAccess mode: read-only | read-write | admin.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@dockndevai/mcp-ios0.1.0

ツール

6

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

mcp-ios

CI CodeQL License: MIT npm

iPhone/iPad を操作する Model Context Protocol サーバーです。mcp-android に対応する iOS 版です。まずお読みください:iOS は Android や macOS よりも根本的に制限が厳しいため、このサーバーは実際の UI を制御する唯一の正規ルートを採用しています。

現状について

標準状態の iPhone では、Android のユーザー補助サービス(または macOS)のように、バックグラウンドアプリが他のアプリを表示・操作することはできません。Apple のサンドボックスがこれを禁止しています。そのため、Mac や Android 向けのもののような、デバイス上で動作する「iOS 操作」エージェントは存在しません。利用可能な方法を、機能の高い順に示します。

方法制御レベル必要なもの備考
Appium + WebDriverAgent (XCUITest) ✅ (このサーバー)UI 全般:タップ、入力、スワイプ、要素の読み取り、スクリーンショット、アプリの起動Xcode を搭載した Mac、USB(または同一ネットワーク)で接続した iPhone、デバイス用に署名された WDA本格的な「スマートフォン操作」です。自動化/QA 向けに構築されており、自分のデバイスで使う個人用エージェントに最適です。
Shortcutsユーザー定義アクションの実行(アラームの設定、メッセージの送信、切り替え)Shortcuts アプリ、URL/x-callback ブリッジ任意の UI 操作はできませんが、安全で特定の操作に適しています。ここでは run_shortcut 経由で公開されています。
MDMポリシー/構成、アプリのインストール登録デバイス管理用であり、対話的な制御には使えません。

このサーバーは Appium/WDA ルートを実装しています。Mac 上で動作し、ローカルの Appium サーバーを介して、テザリングされた iPhone 上の WebDriverAgent を操作します。また、スイート内の他のサーバーと同じ、安全性をデフォルトとする MCP の構成を公開します。デバイスがテザリングされていない場合は、set_alarm のような操作も Shortcuts(run_shortcut)経由で実行できます。

何も接続せずに iPhone 自体から 操作したい場合、iOS ではできません。その使い方には Fold 7 で mcp-android を使用するか、ここで提供される Shortcuts の機能をお使いください。

セットアップ(Appium ルート)

brew install node
npm i -g appium
appium driver install xcuitest
# Xcode + command line tools installed; sign WebDriverAgent to your device once (Xcode)
# Connect the iPhone by USB, Trust the Mac, enable Developer Mode on the device
appium        # starts the Appium server (default http://127.0.0.1:4723)

サーバーは最初のツール呼び出し時に 遅延して XCUITest セッションを作成します。そのため、Appium やデバイスが起動する前でもサーバーを開始できます。デバイスが必要な最初の呼び出しで接続できない場合は、「appium を起動/WDA に署名/デバイスを接続」という明確なメッセージが返されます。

セキュリティモデル

懸念事項フラグデフォルト効果
サーバーで何ができますか?IOS_MODEread-onlyread-only では検査のみが可能です。read-write では UI 操作が追加され、admin ではアプリ管理が追加されます。モードの権限を超えるツールは登録されません。
対象となるアプリはどれですか?IOS_APP_ALLOWLIST(すべて)設定すると、ほかのバンドル ID の起動や管理は拒否されます。
常に読み取り専用となるアプリはどれですか?IOS_PROTECTED_APPScom.apple.Preferences, com.apple.springboard検査や起動はできますが、終了、リセット、アンインストールはできません。
アプリのインストール/終了/リセットはできますか?IOS_ALLOW_MANAGEfalse管理ツールにはこの設定と admin モードの両方が必要です。そうでない場合、ツールは公開すらされません。
インタラクティブな確認(自動)—terminate_app と reset_app の実行前に、MCP エリシテーションを通じて、対象のバンドル ID を人間が承認するよう求めます。エリシテーションに対応していないクライアントでは、代わりに IOS_ALLOW_MANAGE のゲートが適用されます。
デバイスに触れずにプレビューするIOS_DRY_RUNfalse書き込み/管理ツールは検証して意図をログに記録し、その後に戻ります。
監査証跡IOS_AUDIT_LOGtrue保護対象の操作ごとに JSON の行を stderr に出力します。

接続設定:IOS_APPIUM_URL(デフォルトは http://127.0.0.1:4723)、IOS_UDID(対象デバイス)、IOS_BUNDLE_ID(任意のデフォルトアプリ)。すべての変数については .env.example を、クライアントごとの詳細なインストールガイドについては docs/CLIENTS.md を参照してください。

ツール

読み取り(read-only 以上):list_targets、device_info、screenshot、page_source(要素ツリー)、current_app、list_apps

書き込み(read-write 以上):tap、swipe、input_text、press_button(ホーム/音量)、launch_app、open_url、run_shortcut(ショートカット経由)

管理(admin + IOS_ALLOW_MANAGE):install_app、terminate_app、reset_app(後者の2つはエリシテーションで確認します。保護対象アプリは拒否されます)

screenshot は MCP の画像コンテンツブロックを返すため、エージェントは操作する前に画面を確認できます。

クイックスタート — エージェントに追加する

npm で @dockndevai/mcp-ios として公開されています。クローンやビルドは不要です。MCP クライアントが npx を使って必要に応じて実行します。Appium サーバーが稼働している Mac 上で実行する必要があります。まずは read-only モードで開始してください。

Claude Code(CLI)

claude mcp add ios -e IOS_APPIUM_URL="http://127.0.0.1:4723" -e IOS_MODE="read-only" -- npx -y @dockndevai/mcp-ios

Claude Desktop · Cursor · Windsurf — 同じブロックを claude_desktop_config.json、.cursor/mcp.json、または ~/.codeium/windsurf/mcp_config.json に追加します。

{
  "mcpServers": {
    "ios": {
      "command": "npx",
      "args": [
        "-y",
        "@dockndevai/mcp-ios"
      ],
      "env": {
        "IOS_APPIUM_URL": "http://127.0.0.1:4723",
        "IOS_MODE": "read-only"
      }
    }
  }
}

VS Code(GitHub Copilot、Agent モード) — .vscode/mcp.json に追加します。

{
  "servers": {
    "ios": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@dockndevai/mcp-ios"
      ],
      "env": {
        "IOS_APPIUM_URL": "http://127.0.0.1:4723",
        "IOS_MODE": "read-only"
      }
    }
  }
}

プロンプトの例

  • 「スマートフォンのスクリーンショットを撮って、画面に何が表示されているか教えてください。」
  • 「Safari を開いて、news.ycombinator.com に移動してください。」(read-write が必要です)
  • 「『おはよう』ショートカットを実行してください。」(read-write が必要です)

ソースから実行する(開発)

npm install
npm run build
node dist/index.js   # with the environment variables set, and `appium` running

開発

npm run dev
npm test          # security policy + elicitation confirmation (pure; no device needed)
npm run typecheck

ポリシーとエリシテーションのテストは純粋なテストで、どこでも実行できます。Mac + Xcode + 署名済み WDA + 接続された iPhone がなければ、デバイスを操作する経路のスモークテストはできないため、実際のデバイス環境を使って開発します。

公開

このサーバーには、公式 MCP レジストリ用の server.json と、npm の所有権検証用の mcpName が含まれています。npm への公開、および MCP レジストリ、Smithery、Glama、Cursor、PulseMCP への掲載については、PUBLISHING.md を参照してください。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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