Tauri Plugin MCP
Inspect, drive and debug a running Tauri desktop app during development from an MCP client
Inspect, drive and debug a running Tauri v2 app's webview, windows and IPC from an AI assistant
By hypothesi TypeScript Local · stdio Developer toolsTesting
69 popularity score ★ 334 ↓ 11k/wk
Opens the app, which asks before it adds the server.
claude mcp add tauri -- npx -y @hypothesi/tauri-mcp-server{
"mcpServers": {
"tauri": {
"command": "npx",
"args": [
"-y",
"@hypothesi/tauri-mcp-server"
]
}
}
}{
"mcpServers": {
"tauri": {
"command": "npx",
"args": [
"-y",
"@hypothesi/tauri-mcp-server"
]
}
}
}{
"servers": {
"tauri": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@hypothesi/tauri-mcp-server"
]
}
}
}[mcp_servers.tauri]
command = "npx"
args = ["-y", "@hypothesi/tauri-mcp-server"]gemini mcp add --scope user tauri npx -- -y @hypothesi/tauri-mcp-serverMCP_BRIDGE_HOST |
Optional: Host of the app's bridge plugin; falls back to TAURI_DEV_HOST, then localhost. |
|---|---|
MCP_BRIDGE_PORT |
Optional: WebSocket port of the bridge plugin; 9223 by default. |
MCP_BRIDGE_CWD |
Optional: Directory used to route calls to the right app when several are connected; defaults to the server's working directory. |
MCP Server Tauri connects an AI assistant to a Tauri v2 application while it runs in development. The server is a Node.js process that talks over stdio to the client and over a WebSocket (port 9223 by default) to a companion Rust plugin, tauri-plugin-mcp-bridge, which you add to the app. Without that plugin in the app, only the setup and device-listing tools do anything.
Once a session is open, the assistant can take screenshots of the webview, query elements by CSS, XPath or text, read an accessibility-tree snapshot, click, scroll, type, wait for elements or events, run JavaScript inside the page, and list, resize, focus or minimise windows. On the Rust side it can call the app's IPC commands, emit Tauri events, record IPC traffic between frontend and backend, and read app metadata. It can also read console, Android logcat, iOS simulator and desktop system logs, and list connected Android devices and booted iOS simulators. Several apps can be connected at once, each on its own port. It also ships three prompts: /setup, /fix-webview-errors and /select.
The README counts 21 tools and lists webview_get_styles, but the tool registry at v0.13.1 (tools-registry.ts) registers 19; computed styles are returned through webview_find_element instead. The authors note the project was written with agentic coding tools and may contain bugs. It is a community project and not affiliated with the Tauri Programme.
| Runtime | Node.js 20+ |
|---|
Node.js 20 or later with npx. A Tauri v2 app you can rebuild, with the Rust crate tauri-plugin-mcp-bridge added (cargo add tauri-plugin-mcp-bridge), the plugin registered, withGlobalTauri set to true in tauri.conf.json and the mcp-bridge:default permission added to its capabilities. The plugin at this version needs Tauri 2.12.2 or a later 2.12 patch and Rust 1.90+. The app must be running (for example cargo tauri dev). For mobile work: Xcode on macOS or the Android SDK.
Works only with Tauri v2 apps that include the MCP Bridge plugin; it does not drive Electron apps or ordinary browsers. Screenshots capture only the visible viewport. The focus, minimize and maximize window actions need tauri-plugin-mcp-bridge 0.13.0 or later and return a version error on older plugins. Console logs need an active driver_session. The README's tool count (21) and its webview_get_styles entry do not match the 19 tools registered in v0.13.1. The authors warn it may contain bugs.
Suits Tauri v2 developers who want an assistant to look at and operate their app during development, check UI changes with screenshots and DOM snapshots, or debug the IPC layer between the frontend and Rust backend, on desktop or on iOS and Android emulators. It runs locally and needs no account, but it does need a change to the app's code (the bridge plugin), so it is not for inspecting a Tauri app you cannot rebuild. For web pages in a normal browser or for Electron apps it is the wrong tool; its own tool descriptions point to Chrome DevTools MCP for browser work.
get_setup_instructionslist_devicesdriver_sessionwebview_find_elementread_logswebview_interactwebview_screenshotwebview_keyboardwebview_wait_forwebview_execute_jswebview_dom_snapshotwebview_select_elementwebview_get_pointed_elementipc_execute_commandipc_monitoripc_get_capturedipc_emit_eventipc_get_backend_statemanage_window