mcpField
T
tauri-mcp-cli

tauri-mcp-cli

github.com/hypothesi開発329106 回インストール6 日前に更新
リポジトリ

tauri-mcp-cli について

`tauri-mcp`を使ってTauriアプリを操作するコマンドラインワークフローのスキルです。ドライバーセッション、Webviewの操作と検査、IPCコマンド、デバイス操作に加え、セッションやデーモンのトラブルシューティングを扱います。

主な機能

  1. 01ドライバーセッションの開始と確認
  2. 02Webviewの操作と検査
  3. 03スクリーンショット撮影とJavaScript実行
  4. 04バックエンドIPCコマンドの実行と状態確認
  5. 05デバイス一覧とモバイル接続への対応
  6. 06セッションとデーモンの問題解決

活用シーン

  1. 01実行中のTauriアプリのWebviewを自動操作
  2. 02スクリーンショット撮影とページ内容の確認
  3. 03バックエンドコマンドの実行と状態確認
  4. 04AndroidまたはiOSのテスト対象への接続

MCP 対応

`tauri-mcp`を通じてTauri MCP bridgeプラグインにアクセスします。コマンドラインのワークフローでドライバーセッションを開始し、コマンドからWebview、IPC、デバイスを操作します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/hypothesi/mcp-server-tauri --skill tauri-mcp-cli

インストール後、Claude Code で/tauri-mcp-cliを入力して読み込まれたか確認します。

詳細

Tauri MCP CLI

CLI ワークフロー全体でこのスキルを使用してください。このパッケージには、エージェントが重複する分野別スキルから選ぶ必要がないよう、単一のバンドル済みスキルが意図的に含まれています。

前提条件

  • アプリが開発モードで実行されています。通常は cargo tauri dev を使用します。
  • tauri-plugin-mcp-bridge プラグインがインストールされ、登録されています。
  • src-tauri/tauri.conf.json で withGlobalTauri: true が設定されています。

基本ルール

ほかのほとんどのツールを呼び出す前に、ドライバーセッションを開始するか、開始済みであることを確認してください。

tauri-mcp driver-session start --port 9223
tauri-mcp driver-session status --json

driver-session start はアプリに接続できない場合でも成功することがあるため、ステータス出力で connected: true を必ず確認してください。

セッションとデーモンのライフサイクル

# Start a session
tauri-mcp driver-session start --port 9223

# Run one or more commands in separate shell invocations
tauri-mcp webview-screenshot --file before.png
tauri-mcp webview-interact --action click --selector "#submit-btn"
tauri-mcp webview-screenshot --file after.png

# End the session
tauri-mcp driver-session stop

CLI は MCPorter のキープアライブモードを使用するため、バックグラウンドデーモンは個別の tauri-mcp ... コマンド間でセッション状態を保持します。

バックグラウンドプロセス自体に問題がある場合に限り、デーモンコマンドを使用してください。

tauri-mcp daemon status
tauri-mcp daemon restart
tauri-mcp driver-session start --port 9223

UI 操作

# Click or focus an element
tauri-mcp webview-interact --action click --selector "#submit-btn"
tauri-mcp webview-interact --action focus --selector "#search"

# Type into a field
tauri-mcp webview-keyboard --action type --selector "#email" --text "[email protected]"

# Wait before interacting with async UI
tauri-mcp webview-wait-for --type selector --value "#success-msg" --timeout 5000
tauri-mcp webview-interact --action click --selector "#success-msg"

# Keyboard shortcuts and scrolling
tauri-mcp webview-keyboard --action press --key "s" --modifiers '["Control"]'
tauri-mcp webview-interact --action scroll --selector ".content" --scroll-y 300

CLI のすべてのフラグは camelCase ではなく kebab-case です。たとえば、--windowId ではなく --window-id を使用してください。

調査とキャプチャ

# Screenshots always write files to disk
tauri-mcp webview-screenshot --file shot.png
tauri-mcp webview-screenshot --format jpeg --quality 80 --file shot.jpg
tauri-mcp webview-screenshot --json

# Run JavaScript in the webview
tauri-mcp webview-execute-js --script "document.title"
tauri-mcp webview-execute-js --script "(() => { return document.querySelectorAll('li').length; })()"

# Find elements and inspect styles
tauri-mcp webview-find-element --selector "#hero"
tauri-mcp webview-get-styles --selector "#hero" --properties '["color","font-size"]'

# Read logs and inspect windows
tauri-mcp read-logs --source console --filter "error" --lines 100
tauri-mcp manage-window --action list --json

コンテンツが画面外にある場合は、スクリーンショットを撮る前にスクロールして表示してください。CLI は base64 形式の画像データを標準出力に返しません。

IPC とバックエンド

# Verify the bridge plugin is active
tauri-mcp driver-session status --json

# Run backend commands
tauri-mcp ipc-execute-command --command "greet" --args '{"name":"World"}'
tauri-mcp ipc-get-backend-state --json

# Capture IPC traffic around an interaction
tauri-mcp ipc-monitor --action stop
tauri-mcp ipc-monitor --action start
tauri-mcp webview-interact --action click --selector "#refresh"
tauri-mcp ipc-get-captured --json
tauri-mcp ipc-monitor --action stop

# Emit synthetic events
tauri-mcp ipc-emit-event --event-name "user-action" --payload '{"action":"button-clicked"}'

driver-session status --json が identifier: null を返す場合は、ブリッジプラグインが存在しないか、無効になっているものとして扱ってください。

モバイルとリモートデバイス

# List targets
tauri-mcp list-devices --json

# Android emulator or iOS simulator
tauri-mcp driver-session start --port 9223

# Real Android device
adb reverse tcp:9223 tcp:9223
tauri-mcp driver-session start --port 9223

# Real iOS device or direct network connection
tauri-mcp driver-session start --host 192.168.1.101 --port 9223

# Mobile logs
tauri-mcp read-logs --source android --filter "com.myapp"
tauri-mcp read-logs --source ios --filter "MyApp"

実機の Android デバイスでは、adb reverse または明示的な --host を指定しない限り、localhost が使えると想定しないでください。

重大な障害パターン

アクティブなセッションがない
tauri-mcp driver-session start --port 9223
tauri-mcp driver-session status --json
古いデーモンまたはアプリの再起動
tauri-mcp daemon restart
tauri-mcp driver-session start --port 9223
tauri-mcp driver-session status --json
ポートの誤り
tauri-mcp driver-session start --port 9225
スクリーンショットの誤用
# Wrong: captures a file path string, not image bytes
IMG=$(tauri-mcp webview-screenshot)

# Right
tauri-mcp webview-screenshot --file shot.png
JavaScript の戻り値の形式
# Wrong: returns null
tauri-mcp webview-execute-js --script "() => { return document.title; }"

# Right
tauri-mcp webview-execute-js --script "document.title"
テキスト入力にセレクターが指定されていない
# Wrong
tauri-mcp webview-keyboard --action type --text "hello"

# Right
tauri-mcp webview-keyboard --action type --selector "#email" --text "hello"

確認事項

操作する前に、以下を確認してください。

  1. アプリが実行中であること。
  2. driver-session status --json に connected: true が表示されていること。
  3. コマンドで kebab-case のフラグを使用していること。
  4. 結果が重要な場合、スクリーンショットコマンドで明示的なファイルパスを指定していること。
  5. モバイルのワークフローで、正しい接続方法とログソースを指定していること。

コメント