MCPサーバ - Tauri

提供: MochiuWiki : SUSE, EC, PCB

概要

Tauri MCP Server (@hypothesi/mcp-server-tauri) は、Model Context Protocol (MCP) を通じてAIアシスタント (Claude、Cursor、Windsurf等) に
Tauri v2アプリケーションの構築、テスト、デバッグ機能を提供するMCPサーバである。
実行中のアプリからスクリーンショット、DOM状態、コンソールログを取得し、AIが豊富なコンテキストを得られる。

対応クライアントは、Claude Desktop、Claude Code、Cursor、Windsurf、VS Code、Cline等である。
対応OSは、Windows、MacOS、Linux、Android、iOSである。

ライセンスはMITであり、最新バージョンはv0.9.0である。

このサーバのリポジトリはモノレポ構成となっており、以下に示すパッケージで構成される。

  • @hypothesi/tauri-mcp-server
    MCPサーバのTypeScript実装
  • @hypothesi/tauri-plugin-mcp-bridge
    Tauriプラグイン (RustおよびJavaScriptバインディング)
  • test-app
    テスト用Tauriアプリケーション


主な機能は以下の通りである。

  • UI自動化 (スクリーンショット、クリック、テキスト入力、スクロール、要素検出)
  • IPC監視 (Tauri IPC呼び出しのリアルタイム追跡)
  • モバイル対応 (iOSシミュレータとAndroidエミュレータの検出)
  • ログ管理 (コンソール、Android logcat、iOS、システムログのストリーミング)



Tauri MCP Serverの機能

Tauri MCP Serverは、セットアップ、UI自動化、IPC・バックエンド連携、ログ・診断、デバイス管理、ウインドウ管理の各カテゴリで合計17個のツールを提供する。

セットアップツール

下表に、MCPBridgeプラグインの設定・更新に関するツールを示す。

セットアップツールの一覧
ツール 説明
tauri_get_setup_instructions MCPBridgeプラグインの設定・更新手順を取得する。


UI自動化ツール

下表に、アプリケーションのUI操作・検証に関するツールを示す。

UI自動化ツールの一覧
ツール 説明
tauri_driver_session Tauri WebDriverセッションの管理 (start/stop/status) を行う
tauri_webview_screenshot 実行中のアプリケーションのスクリーンショットを撮影する (PNG/JPEG)
tauri_webview_find_element CSSセレクタ、XPath、テキストマッチングでDOM要素を検出する
tauri_webview_interact クリック、ダブルクリック、ロングプレス、スクロール、スワイプ、フォーカスなどのUI操作を実行する
tauri_webview_keyboard テキスト入力、キー押下などのキーボード操作を実行する
tauri_webview_wait_for 指定された要素やテキスト、IPCイベントの出現を待機する
tauri_webview_get_styles 要素の計算済みCSSスタイルを取得する
tauri_webview_execute_js WebviewコンテキストでJavaScriptコードを実行する


IPC・バックエンド連携ツール

下表に、Tauri IPCコマンドおよびバックエンドとの連携に関するツールを示す。

IPC・バックエンド連携ツールの一覧
ツール 説明
tauri_ipc_execute_command Tauri IPCコマンドを実行し、Rustバックエンド関数を呼び出す。
tauri_ipc_monitor IPC監視を開始・停止し、リアルタイムでIPC呼び出しを追跡する。
tauri_ipc_get_captured キャプチャしたIPCコマンドとイベントデータを取得する。
tauri_ipc_emit_event カスタムTauriイベントを発行する。
tauri_ipc_get_backend_state アプリメタデータ、Tauriバージョン、環境データを取得する。


ログ・診断ツール

下表に、アプリケーションのログ取得・診断に関するツールを示す。

ログ・診断ツールの一覧
ツール 説明
tauri_read_logs コンソール、Android logcat、iOS、システムログを取得する。


デバイス管理ツール

下表に、接続デバイスの管理に関するツールを示す。

デバイス管理ツールの一覧
ツール 説明
tauri_list_devices 接続中のAndroidエミュレータとiOSシミュレータを一覧表示する。


ウインドウ管理ツール

下表に、アプリケーションウインドウの管理に関するツールを示す。

ウインドウ管理ツールの一覧
ツール 説明
tauri_manage_window ウインドウ情報の取得、リサイズ、一覧表示を行う。



動作要件

共通の要件

OS問わず共通して必要な要件を以下に示す。

  • Node.js 20以上
    npx コマンドを使用して、Tauri MCP Serverを実行するために必要
  • npm
    パッケージ管理ツール
  • RustとCargo
    Tauriアプリケーションのビルドおよびプラグインのコンパイルに必要
  • Tauri CLI
    npm install -g @tauri-apps/cli@next でインストールする。


Windowsの要件

  • Windows 10 / 11
  • Microsoft Visual Studio C++ Build Tools
    Rustのコンパイルに必要なC++ビルドツール
  • WebView2
    Windows 10では手動インストールが必要


MacOSの要件

  • MacOS 10.15 (Catalina) 以降
  • Xcode Command Line Tools
    xcode-select --install でインストールする
  • Intel / Apple Silicon 両対応


Linuxの要件

  • 主要ディストリビューション (RHEL、SUSE等) に対応
  • webkit2gtk、libappindicator等の開発ライブラリ
    各ディストリビューションのパッケージマネージャでインストールする。



インストール

MCPサーバのインストール

npx コマンドを使用してTauri MCP Serverをインストールする。

npx -y install-mcp @hypothesi/tauri-mcp-server --client claude-code


--client オプションには、使用するMCPクライアントを指定する。
指定可能な値は、claude-codecursorwindsurfvscodecline 等である。

Tauriプラグインのインストール

Cargoを使用してTauriプラグインをインストールする場合は、以下のコマンドを実行する。

cargo add tauri-plugin-mcp-bridge


または、Cargo.tomlファイル に以下の内容を追記する。

 [dependencies]
 tauri-plugin-mcp-bridge = "0.2"


TypeScriptバインディングが必要な場合は、以下のコマンドでオプションのパッケージを追加インストールする。

npm install --save-exact @hypothesi/tauri-plugin-mcp-bridge



設定

設定ファイルの場所

各MCPクライアントの設定ファイルの場所は以下の通りである。

Claude Desktopの設定ファイルを以下に示す。

  • Linux
    ~/.config/Claude/claude_desktop_config.json
  • MacOS
    ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows
    %APPDATA%\Claude\claude_desktop_config.json


Claude Codeの設定ファイルを以下に示す。

  • Linux
    ~/.config/claude/settings.json
  • MacOS
    ~/Library/Application Support/claude/settings.json
  • Windows
    %APPDATA%\claude\settings.json


OpenCodeの設定ファイルを以下に示す。

  • $HOME/.opencode.json
  • $XDG_CONFIG_HOME/opencode/.opencode.json
  • ./.opencode.json (ローカルディレクトリ)


Claude Desktopでの設定

Claude Desktopの設定ファイルに以下に示す内容を追記する。

 {
   "mcpServers": {
     "tauri-mcp": {
       "command": "npx",
       "args": ["-y", "@hypothesi/tauri-mcp-server"]
     }
   }
 }


設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。

Claude Codeでの設定

Claude Codeでは、claude mcp add コマンドを使用してMCPサーバを追加できる。

claude mcp add tauri-mcp npx -y @hypothesi/tauri-mcp-server


または、設定ファイルに以下に示す内容を記述する。

 {
   "mcpServers": {
     "tauri-mcp": {
       "command": "npx",
       "args": ["-y", "@hypothesi/tauri-mcp-server"]
     }
   }
 }


OpenCodeでの設定

.opencode.json に以下に示す内容を記述する。

 {
   "mcpServers": {
     "tauri-mcp": {
       "type": "stdio",
       "command": "npx",
       "args": ["-y", "@hypothesi/tauri-mcp-server"],
       "env": []
     }
   }
 }


Tauriプラグインの設定

src-tauri/src/main.rsファイル にプラグインを登録する。

基本的な登録方法を以下に示す。

 #[cfg(debug_assertions)]
 let builder = builder.plugin(tauri_plugin_mcp_bridge::init());


バインドアドレスをローカルホストのみに限定するカスタム設定を以下に示す。

 use tauri_plugin_mcp_bridge::Builder;
 
 #[cfg(debug_assertions)]
 let builder = builder
    .plugin(
       Builder::new()
          .bind_address("127.0.0.1")
          .build()
    );


WebSocketサーバーの動作仕様を以下に示す。

  • デフォルトポート: 9223
    使用中の場合は9223〜9322の範囲内で次の利用可能なポートを自動選択する
  • デフォルトバインドアドレス: 0.0.0.0 (すべてのインターフェース)


セキュリティに関する注意事項を以下に示す。

  • #[cfg(debug_assertions)] でガードされており、デバッグビルドでのみ有効となる。
  • 本番環境では、バインドアドレスを 127.0.0.1 に明示的に設定すること。
  • リモートデバイス開発が必要な場合のみ、ネットワークアクセスを許可すること。



使用方法

スラッシュコマンド

Tauri MCP Serverは、下表に示すスラッシュコマンドを提供する。

スラッシュコマンドの一覧
コマンド 機能
/setup MCP Bridgeプラグインの設定・更新を行う。
プロジェクト構造を検査して必要な変更を自動提示する。
/fix-webview-errors JavaScriptエラーをコンソールから検出し、エラー内容を解析して修正案を提示する。
/select ビジュアル要素ピッカーで要素をマウス選択し、要素メタデータ (ID、クラス、セレクタ等) を取得する。


UIテストのワークフロー

UIテストを実行する際の基本的なワークフローを以下に示す。

  1. tauri_webview_screenshot でスクリーンショットを取得する。
  2. tauri_webview_find_element でテスト対象要素を検出する。
  3. tauri_webview_interact でクリック操作を実行する。
  4. 結果を tauri_webview_screenshot で検証する。


IPC通信の検証

IPC通信の動作を検証する際のワークフローを以下に示す。

  1. tauri_ipc_monitor を実行してIPC監視を開始する。
  2. UI操作を実行してバックエンド呼び出しをトリガーする。
  3. tauri_ipc_get_captured でキャプチャしたIPCデータを確認する。
  4. 期待通りのコマンド・パラメータが送信されたことを検証する。



その他

推奨される事柄

Tauri MCP Serverを効果的に活用するため、推奨される事柄を以下に示す。

  • IPC監視はパフォーマンスに影響するため、必要時のみ有効化する。
    tauri_ipc_monitor の使用は、検証が完了したら速やかに停止すること。
  • UI自動化ツール (スクリーンショット、クリック等) は、テスト・デバッグ用途に最適化されている。
  • 複数デバイス開発時は tauri_list_devices で事前に接続状態を確認する。
  • ポート競合時は自動的に9223〜9322番の範囲内で次の利用可能ポートを使用するため、手動での変更は不要


セキュリティに関する注意事項

Tauri MCP Serverのセキュリティに関する注意事項を以下に示す。

  • MCPBridgeプラグインは、デフォルトで #[cfg(debug_assertions)] により、デバッグビルドのみに制限されている。
    本番ビルドにMCPBridgeプラグインが含まれないことを確認すること。
  • 本番環境ではWebSocketサーバーのバインドアドレスを 127.0.0.1 に限定すること。
  • リモートデバイス開発時のみ、0.0.0.0 バインドを許可すること。