tauri-mcp
A Tauri plugin that lets AI agents (Claude Code, Cursor, etc.) interact with your Tauri app through screenshots, DOM inspection, and input simulation using the Model Context Protocol (MCP).
Features
- Screenshots — capture the app window on macOS, Linux, and Windows
- DOM access — read the full HTML of any webview window
- Element interaction — click, type, drag, hover via simulated input
- JavaScript execution — run arbitrary JS in the webview context
- Element position — find elements by id, class, tag, or text content
Installation
# Cargo.toml
[dependencies]
tauri-plugin-mcp = { git = "https://github.com/DonsWayo/tauri-mcp", optional = true }
Register the plugin in your Tauri app:
// src-tauri/src/lib.rs
#[cfg(feature = "mcp-e2e")]
app.plugin(tauri_plugin_mcp::init())?;
The plugin opens a Unix domain socket at /tmp/<app-name>-mcp.sock that MCP clients connect to.
macOS Screenshots
The plugin uses screencapture -l <CGWindowID> instead of xcap. This means:
- No Screen Recording permission required for the Tauri app itself
- Only Terminal (or your terminal emulator) needs Screen Recording access
- Works with unsigned debug builds without code signing entitlements
- Avoids a crash in
xcap::Window::all()triggered by certain system windows on recent macOS versions
Linux Screenshots
Uses xcap for X11 window capture with multi-pass window matching by app name and title.
Usage with Claude Code
Add to .mcp.json:
{
"mcpServers": {
"nucel-e2e": {
"type": "stdio",
"command": "node",
"args": ["path/to/mcp-server/build/index.js", "/tmp/your-app-mcp.sock"]
}
}
}
This project started as a fork of P3GLEG/tauri-plugin-mcp and has since diverged significantly.
License
MIT