tauri-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TAURI_APP_PATH | No | Path to the built Tauri app binary | |
| EDGEDRIVER_PATH | No | Path to msedgedriver executable (optional, default looks in ./bin/msedgedriver.exe) | |
| TAURI_PROJECT_DIR | No | Fallback project directory for app_launch when projectDir/appPath omitted |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| app_launchA | Launch a built Tauri app under WebDriver automation so it can be clicked/typed into like a real user. Pass projectDir to target any local Tauri project (resolves the binary from its src-tauri/Cargo.toml + target/release|debug); defaults to the configured default project. Only one app session runs at a time — call app_close (or app_force_cleanup) before launching another. Errors loudly if the window never renders (usual causes: msedgedriver/WebView2 version mismatch, or a plain |
| app_closeA | Close the running app session started by app_launch and stop tauri-driver. |
| app_statusA | Report whether an app session is currently running, and if so which binary and driver port. |
| app_force_cleanupA | Recovery hatch: kill orphaned tauri-driver/msedgedriver processes and reset session state, for when a crashed run left things half-up and app_launch complains a session is already running. Assumes one session at a time — don't use while another session you care about is live. |
| app_snapshotA | Read the current app window state: page title, visible body text, and every visible interactive element (button/link/input/etc.) with its role, text/aria-label, and a CSS selector. Prefer targeting by the element's |
| app_clickA | Click an element, located by CSS |
| app_click_atA | Click at raw x,y viewport coordinates instead of an element — for canvas/native-drawn UI where no element handle exists. button chooses left (default), right, or middle. |
| app_scrollA | Mouse-wheel scroll by a pixel delta. Positive deltaY scrolls down, negative up; deltaX right/left. Pass a selector to scroll over a specific scrollable pane, otherwise the viewport. |
| app_typeA | Type |
| app_press_keyA | Send raw keyboard input to the running app window, not tied to any element. Every key is reachable: literal characters, plus WebDriver named keys — Enter, Tab, Escape, Backspace, Delete, Space, Home, End, PageUp, PageDown, Insert, ArrowUp/Down/Left/Right, F1-F12, and modifiers Shift/Control/Alt/Meta (Meta = Win/Cmd). Several keys in one array hold modifiers together, so ["Control","a"] is Ctrl+A and ["Control","Shift","k"] is Ctrl+Shift+K; literal text like ["h","i"] just types it. |
| app_hoverA | Move the pointer over an element (by selector or text) to trigger hover-only UI (tooltips, hover menus). |
| app_selectA | Pick an option from a native dropdown. Locate the by selector or text, then choose the option by optionText, optionValue, or optionIndex (exactly one). |
| app_dragA | Drag an element (by selector or text) onto another element, or by a pixel offset — for sliders, range inputs, reordering lists, or canvas handles. Provide |
| app_readA | Read one element's current state: text, live input value (DOM property, so it reflects controlled React inputs), tag, displayed/enabled flags, and optionally one attribute. For verifying a specific label/status/field value without a full app_snapshot or app_execute_js. |
| app_wait_forA | Poll the running app window until a selector appears/disappears, or bodyText contains/loses a substring — for async loading states, toasts, or dialogs closing — instead of manually re-polling app_snapshot. |
| app_console_logsA | Browser console output (console.log/warn/error + uncaught exceptions) captured since app_launch — the only way to see JS errors happening in the app. |
| app_list_windowsA | List open window handles for the running app (Tauri apps can have more than one window) and which one is active. |
| app_switch_windowA | Switch which window subsequent app_* calls operate on. Get handles from app_list_windows. |
| app_screenshotA | Take a PNG screenshot of the running app window, or of a single element if a selector/text target is given (for focused visual diffing of one component). |
| app_windowA | Resize, move, maximize, minimize, or fullscreen the app window, and report its resulting size+position. action "set" uses width/height/x/y (any omitted axis is left unchanged); "maximize"/"minimize"/"fullscreen" ignore those. Useful for consistent screenshots or checking responsive layout. |
| app_reloadA | Reload the webview (like the app's own refresh) to reset front-end state for a clean run. Reloads the web layer only; the Rust backend process keeps its state. |
| app_execute_jsA | Run arbitrary JavaScript in the running app window and return the result. Not limited to clickable elements — read any DOM/JS state, call window functions, dispatch synthetic events, read/write localStorage, or invoke a Tauri backend command directly via |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/FrengkyS1/tauri-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server