Integrates Tauri v2 applications with AI assistants through a Node.js MCP server and Rust plugin. Once configured, your AI can take screenshots, click elements, type input, execute JavaScript, and monitor IPC calls in your running Tauri app. The server exposes 21 tools across UI automation (webview_screenshot, webview_interact, webview_find_element), IPC inspection (ipc_execute_command, ipc_monitor), and log streaming (console, Android logcat, iOS). Ships with slash commands like /setup and /select for common workflows. Communication happens over stdio for MCP and WebSocket for the driver session. Helpful if you're building Tauri apps with AI coding assistants and want the AI to see and interact with your running application state rather than just editing source files.
Give your AI assistant superpowers for Tauri development
A Model Context Protocol (MCP) server that enables AI assistants like Claude, Cursor, and Windsurf to build, test, and debug Tauri® v2 applications. Screenshots, DOM state, and console logs from your running app give the AI rich context to understand what's happening—and tools to interact with it.
| Category | Capabilities |
|---|---|
| 🎯 UI Automation | Screenshots, clicks, typing, scrolling, element finding, visual element picker |
| 🔍 IPC Monitoring | Capture and inspect Tauri IPC calls in real-time |
| 📱 Mobile Dev | List iOS simulators & Android emulators |
| 📋 Logs | Stream console, Android logcat, iOS, and system logs |
Disclaimer: This MCP was developed using agentic coding tools. It may contain bugs.
npm install -g @tauri-apps/cli@nextUse install-mcp to add the server to your AI assistant:
npx -y install-mcp @hypothesi/tauri-mcp-server --client claude-code
Supported clients: claude-code, cursor, windsurf, vscode, cline, roo-cline, claude, zed, goose, warp, codex
npx -y install-mcp @hypothesi/tauri-mcp-server --client claude-code
npx -y install-mcp @hypothesi/tauri-mcp-server --client cursor
npx -y install-mcp @hypothesi/tauri-mcp-server --client vscode
npx -y install-mcp @hypothesi/tauri-mcp-server --client windsurf
npx -y install-mcp @hypothesi/tauri-mcp-server --client cline
Restart your AI assistant after adding the configuration.
If you want to call the tools directly from a terminal instead of from an MCP client:
npm install -g @hypothesi/tauri-mcp-cli
tauri-mcp driver-session start --port 9223
tauri-mcp webview-screenshot --file screenshot.png
The CLI uses MCPorter keep-alive support so driver_session state survives across separate commands.
Ask your AI assistant to help configure your Tauri app:
"Help me set up the Tauri MCP Bridge plugin"
Your AI will:
That's it! The AI handles all the setup details while keeping you in control. 🎉
If you prefer to set up manually, see the Getting Started guide or the plugin documentation.
| Command | Description |
|---|---|
/setup | Set up or update the MCP bridge plugin in your Tauri project |
/fix-webview-errors | Find and fix JavaScript errors in your webview |
/select | Visually select an element in your app — returns metadata and screenshot |
Just type the command in your AI assistant to start a guided workflow.
| Tool | Description |
|---|---|
get_setup_instructions | Get setup/update instructions for the MCP Bridge plugin |
| Tool | Description |
|---|---|
driver_session | Start/stop/status automation session |
webview_find_element | Find elements by selector |
read_logs | Read console, Android, iOS, or system logs |
webview_interact | Click, scroll, swipe, focus, long-press |
webview_screenshot | Capture webview screenshots |
webview_keyboard | Type text or send key events |
webview_wait_for | Wait for elements, text, or events |
webview_get_styles | Get computed CSS styles |
webview_execute_js | Execute JavaScript in webview |
webview_dom_snapshot | Get structured accessibility tree snapshot |
webview_select_element | Visual element picker — user clicks an element, returns metadata + screenshot |
webview_get_pointed_element | Get metadata for element user Alt+Shift+Clicked |
manage_window | List windows, get info, or resize |
Multi-Window Support: All webview tools accept an optional
windowIdparameter to target specific windows. Usemanage_windowwithaction: "list"to discover available windows.
| Tool | Description |
|---|---|
ipc_execute_command | Execute Tauri IPC commands |
ipc_get_backend_state | Get app metadata and state |
ipc_monitor | Start/stop IPC monitoring |
ipc_get_captured | Get captured IPC traffic |
ipc_emit_event | Emit custom events |
| Tool | Description |
|---|---|
list_devices | List Android devices and iOS simulators |
┌─────────────────────────────────────────────────────────────────┐
│ AI Assistant │
│ (Claude, Cursor, Windsurf) │
└─────────────────────────┬───────────────────────────────────────┘
│ MCP Protocol (stdio)
▼
┌─────────────────────────────────────────────────────────────────┐
│ MCP Server (Node.js) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
│ │ Manager │ │ Driver │ │ Monitor │ │
│ │ CLI/Config │ │ UI Automation│ │ Logs/IPC Events │ │
│ └──────────────┘ └──────┬───────┘ └──────────────────────┘ │
└─────────────────────────────┼───────────────────────────────────┘
│ WebSocket (port 9223)
▼
┌─────────────────────────────────────────────────────────────────┐
│ Tauri Application │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ MCP Bridge Plugin (Rust) │ │
│ │ IPC Commands • Events • Backend State │ │
│ └──────────────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Webview (DOM/UI) │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
Why this approach?
# Clone and install
git clone https://github.com/hypothesi/mcp-server-tauri.git
cd mcp-server-tauri
npm install
# Build all packages
npm run build
# Run tests
npm test
# Development mode
npm run dev -w @hypothesi/tauri-mcp-server
mcp-server-tauri/
├── packages/
│ ├── mcp-server/ # MCP server (TypeScript)
│ ├── tauri-plugin-mcp-bridge/ # Tauri plugin (Rust + JS bindings)
│ └── test-app/ # Test Tauri application
├── docs/ # VitePress documentation
└── specs/ # Architecture specs
# Release plugin (Cargo + npm)
npm run release:plugin patch
# Release server (npm only)
npm run release:server patch
See specs/releasing.md for details.
Contributions are welcome! Please:
npm test and npm run standards passThis project is tested with BrowserStack.
MIT © hypothesi
TAURI® is a registered trademark of The Tauri Programme within the Commons Conservancy. https://tauri.app/
This project is not affiliated with, endorsed by, or sponsored by The Tauri Programme within the Commons Conservancy.