By DaveDev42
Tauri desktop app test automation via MCP. Launch, inspect, interact with, and test Tauri v2 apps using accessibility tree snapshots and DOM manipulation.
Debugging Tauri app issues during MCP sessions. Use when encountering errors, app not responding, bridge failures, empty snapshots, or session start failures.
QA testing orchestration for Tauri desktop apps. Use when the user asks to test, QA, verify, or check if a Tauri app feature works.
Admin access level
Server config contains admin-level keywords
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
This plugin requires configuration values that are prompted when the plugin is enabled. Sensitive values are stored in your system keychain.
tauri_app_dirPath to Tauri app directory relative to project root (e.g., '.', 'apps/desktop', 'packages/app')
${user_config.tauri_app_dir}No model invocation
Executes directly as bash, bypassing the AI model
No model invocation
Executes directly as bash, bypassing the AI model
Cross-platform Tauri test automation plugin via MCP (Model Context Protocol).
Enables AI assistants like Claude to interact with your Tauri desktop app for testing and automation.
This repo doubles as a Claude Code plugin. Three steps to a fully working setup:
1. Add the marketplace and install the plugin
/plugin marketplace add DaveDev42/tauri-plugin-mcp
/plugin install tauri-mcp
During installation you'll be prompted for:
. for single-app repos, apps/desktop for monorepos).2. Run the installer command
/tauri-mcp:install
This auto-edits your Tauri project: Cargo.toml, src-tauri/src/lib.rs, capabilities, package.json, the frontend entry (main.tsx/main.ts), and .gitignore. Every write is previewed as a diff and requires your confirmation first.
3. Restart Claude Code
The tauri-mcp MCP server registers on restart. Verify with /mcp — it should show tauri-mcp as connected. You can now call start_session, snapshot, click, etc.
MCP servers are registered at Claude Code startup. Installing the plugin or changing tauri_app_dir both require a restart to take effect.
The MCP server ships as a self-contained single-file bundle (packages/tauri-mcp/dist/index.js) with all dependencies inlined — no node_modules needed on the target machine, so installation works identically on macOS, Linux, and Windows.
What's included:
| Component | Description |
|---|---|
| MCP Server | Self-contained tauri-mcp bundle (14 tools for app lifecycle, UI interaction, screenshots, logging) |
/tauri-mcp:install command | One-shot installer that edits your Tauri project to wire up the plugin |
tauri-qa skill | QA orchestration — prepares test scenarios, delegates to QA agent, validates results |
tauri-debug skill | Diagnostic decision trees for common MCP session issues |
qa-tester agent | Testing agent (haiku) that executes test scenarios using MCP tools |
| QA validation hook | Verifies QA PASS results include actual tool call evidence |
src-tauri/Cargo.tomlpnpm add github:DaveDev42/tauri-plugin-mcp#mainsrc-tauri/src/lib.rsmcp:default permissionmain.tsx.mcp.json for Claude Code[dependencies]
tauri-plugin-mcp = { git = "https://github.com/DaveDev42/tauri-plugin-mcp" }
pnpm add github:DaveDev42/tauri-plugin-mcp#main
The MCP server binary (tauri-mcp) is automatically available after installation. No additional setup required.
pub fn run() {
tauri::Builder::default()
.plugin(tauri_plugin_mcp::init())
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
Option A: In tauri.conf.json or config/*.json5 (recommended)
{
"security": {
"capabilities": [{
"identifier": "main-capability",
"windows": ["main"],
"permissions": ["core:default", "mcp:default"]
}]
}
}
Option B: Separate file (src-tauri/capabilities/default.json)
{
"$schema": "../gen/schemas/desktop-schema.json",
"identifier": "default",
"windows": ["main"],
"permissions": ["core:default", "mcp:default"]
}
// Initialize MCP bridge for E2E testing (dev mode only)
if (import.meta.env.DEV) {
import('tauri-plugin-mcp').then(({ initMcpBridge }) => {
initMcpBridge().catch(err => {
console.warn('[MCP] Bridge initialization failed:', err);
});
});
}
The basic setup above includes MCP in all builds. For production apps, you likely want MCP only in development and completely stripped from release binaries.
This approach uses Cargo's optional dependency feature so the plugin is compiled in only when explicitly requested.
npx claudepluginhub davedev42/tauri-plugin-mcp --plugin tauri-mcpExpo/React Native app automation — QA testing, UI automation, and Maestro integration. Run /expo-mcp:install afterward to verify setup.
Agent Skills for automating and testing Tauri v2 applications
Tauri v2 desktop and mobile app development with Rust backend, IPC, capabilities, and security
MCP server + skill for Linux KDE Plasma 6 Wayland GUI automation. Provides 30 MCP tools (mouse, keyboard, touch, clipboard, screenshot, AT-SPI2 accessibility tree, window mgmt, D-Bus passthrough) plus the kwin-desktop-automation skill that guides session-mode selection, observation/action sequencing, and platform pitfalls.
Give Claude eyes and hands — screen capture and interaction for full-auto workflows
Safe cross-OS desktop & browser control for Claude Code — the fallback execution layer for when APIs, CLIs, and direct integrations aren't available. Registers the clawdcursor MCP server in compact mode and bundles its usage skill (the SKILL.md at the repo root). Requires Node.js 20+; the MCP server launches via npx, which fetches clawdcursor on demand (or uses your global install if present) — no separate install step.
Desktop App Dev subagent