Loading...
Loading...
Use the Tauri MCP CLI to start and recover driver sessions, automate Tauri webviews, capture UI state, debug IPC, and work with mobile or remote devices. Use whenever an agent needs to operate a Tauri v2 app from terminal commands.
npx skill4agent add hypothesi/mcp-server-tauri tauri-mcp-clicargo tauri devtauri-plugin-mcp-bridgesrc-tauri/tauri.conf.jsonwithGlobalTauri: truetauri-mcp driver-session start --port 9223
tauri-mcp driver-session status --jsondriver-session startconnected: 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 stoptauri-mcp ...tauri-mcp daemon status
tauri-mcp daemon restart
tauri-mcp driver-session start --port 9223# 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 "hello@example.com"
# 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--window-id--windowId# 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# 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 --jsonidentifier: 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"adb reverse--hosttauri-mcp driver-session start --port 9223
tauri-mcp driver-session status --jsontauri-mcp daemon restart
tauri-mcp driver-session start --port 9223
tauri-mcp driver-session status --jsontauri-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# 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"driver-session status --jsonconnected: true