MCPサーバ - Tauri
概要
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操作・検証に関するツールを示す。
| ツール | 説明 |
|---|---|
| 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コマンドおよびバックエンドとの連携に関するツールを示す。
| ツール | 説明 |
|---|---|
| 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-code、cursor、windsurf、vscode、cline 等である。
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テストを実行する際の基本的なワークフローを以下に示す。
- tauri_webview_screenshot でスクリーンショットを取得する。
- tauri_webview_find_element でテスト対象要素を検出する。
- tauri_webview_interact でクリック操作を実行する。
- 結果を tauri_webview_screenshot で検証する。
IPC通信の検証
IPC通信の動作を検証する際のワークフローを以下に示す。
tauri_ipc_monitorを実行してIPC監視を開始する。- UI操作を実行してバックエンド呼び出しをトリガーする。
tauri_ipc_get_capturedでキャプチャしたIPCデータを確認する。- 期待通りのコマンド・パラメータが送信されたことを検証する。
その他
推奨される事柄
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 バインドを許可すること。